Example #1
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 getIsActive()
 {
     $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getIsActive');
     if (!$pluginInfo) {
         return parent::getIsActive();
     } else {
         return $this->___callPlugins('getIsActive', func_get_args(), $pluginInfo);
     }
 }
Example #3
0
 /**
  * Enter description here...
  *
  * @param Category $category
  * @return string
  */
 public function drawOpenCategoryItem($category)
 {
     $html = '';
     if (!$category->getIsActive()) {
         return $html;
     }
     $html .= '<li';
     if ($this->isCategoryActive($category)) {
         $html .= ' class="active"';
     }
     $html .= '>' . "\n";
     $html .= '<a href="' . $this->getCategoryUrl($category) . '">' . '<span>' . $this->escapeHtml($category->getName()) . '</span></a>' . "\n";
     if (in_array($category->getId(), $this->getCurrentCategoryPath())) {
         $children = $category->getChildren();
         $hasChildren = $children && $children->count();
         if ($hasChildren) {
             $htmlChildren = '';
             foreach ($children as $child) {
                 $htmlChildren .= $this->drawOpenCategoryItem($child);
             }
             if (!empty($htmlChildren)) {
                 $html .= '<ul>' . "\n" . $htmlChildren . '</ul>';
             }
         }
     }
     $html .= '</li>' . "\n";
     return $html;
 }
Example #4
0
 /**
  * Validate category for be using as filter
  *
  * @param  \Magento\Catalog\Model\Category $category
  * @return mixed
  */
 protected function _isValidCategory($category)
 {
     if ($category->getId()) {
         while ($category->getLevel() != 0) {
             if (!$category->getIsActive()) {
                 return false;
             }
             $category = $category->getParentCategory();
         }
         return true;
     }
     return false;
 }