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;
 }
Example #3
0
 /**
  * @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);
     }
 }