/** * Return parent category of current category with own custom design settings * * @param \Magento\Catalog\Model\Category $category * @return \Magento\Catalog\Model\Category */ public function getParentDesignCategory($category) { $pathIds = array_reverse($category->getPathIds()); $collection = clone $category->getCollection(); $collection->setMainTable($this->getMainStoreTable($category->getStoreId()))->addFieldToSelect('*')->addFieldToFilter('entity_id', ['in' => $pathIds])->addFieldToFilter('custom_use_parent_settings', [['eq' => 0], ['null' => 0]])->addFieldToFilter('level', ['neq' => 0])->setOrder('level', 'DESC')->load(); return $collection->getFirstItem(); }
/** * Return child categories * * @param \Magento\Catalog\Model\Category $category * @return \Magento\Catalog\Model\Resource\Category\Collection */ public function getChildrenCategories($category) { $collection = $category->getCollection(); /* @var $collection \Magento\Catalog\Model\Resource\Category\Collection */ $collection->addAttributeToSelect('url_key')->addAttributeToSelect('name')->addAttributeToSelect('all_children')->addAttributeToSelect('is_anchor')->addAttributeToFilter('is_active', 1)->addIdFilter($category->getChildren())->setOrder('position', \Magento\Framework\DB\Select::SQL_ASC)->joinUrlRewrite()->load(); return $collection; }
/** * {@inheritdoc} */ public function getCollection() { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getCollection'); if (!$pluginInfo) { return parent::getCollection(); } else { return $this->___callPlugins('getCollection', func_get_args(), $pluginInfo); } }