public function testGetAllChildren() { $this->_model->load(4); $this->assertEquals('4,5', $this->_model->getAllChildren()); $this->_model->load(5); $this->assertEquals('5', $this->_model->getAllChildren()); }
/** * Get current category * * @param \Magento\Catalog\Model\Category $category * * @return Category */ public function isActive($category) { $activeCategory = $this->_coreRegistry->registry('current_category'); $activeProduct = $this->_coreRegistry->registry('current_product'); if (!$activeCategory) { // Check if we're on a product page if ($activeProduct !== null) { return in_array($category->getId(), $activeProduct->getCategoryIds()); } return false; } // Check if this is the active category if ($this->categoryFlatConfig->isFlatEnabled() && $category->getUseFlatResource() and $category->getId() == $activeCategory->getId()) { return true; } // Check if a subcategory of this category is active $childrenIds = $category->getAllChildren(true); if (!is_null($childrenIds) and in_array($activeCategory->getId(), $childrenIds)) { return true; } // Fallback - If Flat categories is not enabled the active category does not give an id return $category->getName() == $activeCategory->getName() ? true : false; }
/** * @param Category $category * @return Metadata */ public function createDataFromModel(Category $category) { $builder = $this->builder->populateWithArray($category->getData())->setCategoryId($category->getId())->setActive($category->getIsActive())->setChildren($category->getAllChildren(true)); return $builder->create(); }
/** * {@inheritdoc} */ public function getAllChildren($asArray = false) { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getAllChildren'); if (!$pluginInfo) { return parent::getAllChildren($asArray); } else { return $this->___callPlugins('getAllChildren', func_get_args(), $pluginInfo); } }