/** * Append virtual rule and sorting product data. * * @param CategoryDataProvider $dataProvider Data provider. * @param \Closure $proceed Original method. * * @return array */ public function aroundGetData(CategoryDataProvider $dataProvider, \Closure $proceed) { $data = $proceed(); $currentCategory = $dataProvider->getCurrentCategory(); if ($currentCategory->getId() === null || $currentCategory->getLevel() < 2) { $data[$currentCategory->getId()]['use_default']['is_virtual_category'] = true; } $data[$currentCategory->getId()]['sorted_products'] = $this->getProductSavedPositions($currentCategory); $data[$currentCategory->getId()]['product_sorter_load_url'] = $this->getProductSorterLoadUrl($currentCategory); $data[$currentCategory->getId()]['price_format'] = $this->localeFormat->getPriceFormat(); return $data; }
/** * @param \Magento\Catalog\Model\Category\DataProvider $subject * @param array $result * * @return array */ public function afterGetAttributesMeta(\Magento\Catalog\Model\Category\DataProvider $subject, $result) { /** @var \Magento\Catalog\Model\Category $category */ $category = $subject->getCurrentCategory(); if (isset($result['url_key'])) { if ($category && $category->getId()) { if ($category->getLevel() == 1) { $result['url_key_group']['componentDisabled'] = true; } else { $result['url_key_create_redirect']['valueMap']['true'] = $category->getUrlKey(); $result['url_key_create_redirect']['value'] = $category->getUrlKey(); $result['url_key_create_redirect']['disabled'] = true; } } else { $result['url_key_create_redirect']['visible'] = false; } } return $result; }