/** * Get applied to layer filter items * * @return Item[] */ public function getFilters() { try { if ($this->bxHelperData->isFilterLayoutEnabled($this->_layer)) { $category = $this->_categoryViewBlock->getCurrentCategory(); if ($category != null && $category->getDisplayMode() == \Magento\Catalog\Model\Category::DM_PAGE) { return parent::getFilters(); } $filters = array(); $facets = $this->p13nHelper->getFacets(); if ($facets) { foreach ($this->bxHelperData->getAllFacetFieldNames() as $fieldName) { if ($facets->isSelected($fieldName)) { $filter = $this->objectManager->create("Boxalino\\Intelligence\\Model\\LayerFilterItem"); $filter->setFacets($facets); $filter->setFieldName($fieldName); $filters[] = $filter; } } } return $filters; } return parent::getFilters(); } catch (\Exception $e) { $this->bxHelperData->setFallback(true); $this->_logger->critical($e); return parent::getFilters(); } }
/** * @param \Magento\Catalog\Model\Layer $layer * @return array|\Magento\Catalog\Model\Layer\Filter\AbstractFilter[] */ public function getFilters(\Magento\Catalog\Model\Layer $layer) { try { if ($this->bxHelperData->isFilterLayoutEnabled($layer) && $this->bxHelperData->isLeftFilterEnabled()) { $filters = array(); $facets = $this->getBxFacets(); if ($facets) { foreach ($this->bxHelperData->getLeftFacetFieldNames() as $fieldName) { $attribute = $this->objectManager->create("Magento\\Catalog\\Model\\ResourceModel\\Eav\\Attribute"); $filter = $this->objectManager->create("Boxalino\\Intelligence\\Model\\Attribute", ['data' => ['attribute_model' => $attribute], 'layer' => $layer]); $filter->setFacets($facets); $filter->setFieldName($fieldName); $filters[] = $filter; } } return $filters; } else { return parent::getFilters($layer); } } catch (\Exception $e) { $this->bxHelperData->setFallback(true); $this->_logger->critical($e); return parent::getFilters($layer); } }
/** * @param string $label * @param $value * @param int $count * @param null $selected * @param null $type */ public function addItemData($label, $value, $count, $selected = null, $type = null) { if ($this->bxDataHelper->isFilterLayoutEnabled($this->_layer)) { $this->_itemsData[] = ['label' => $label, 'value' => $value, 'count' => $count, 'selected' => $selected, 'type' => $type]; } else { parent::addItemData($label, $value, $count); } }
/** * @return AbstractCollection|mixed */ public function _getProductCollection() { try { $layer = $this->getLayer(); if ($this->bxHelperData->isFilterLayoutEnabled($layer)) { if (count($this->_productCollection) && !$this->p13nHelper->areThereSubPhrases()) { return $this->_productCollection; } if ($layer instanceof \Magento\Catalog\Model\Layer\Category) { if ($this->categoryViewBlock->isContentMode()) { return parent::_getProductCollection(); } } if ($this->p13nHelper->areThereSubPhrases()) { $this->queries = $this->p13nHelper->getSubPhrasesQueries(); $entity_ids = $this->p13nHelper->getSubPhraseEntitiesIds($this->queries[self::$number]); $entity_ids = array_slice($entity_ids, 0, $this->bxHelperData->getSubPhrasesLimit()); } else { $entity_ids = $this->p13nHelper->getEntitiesIds(); } if (count($entity_ids) == 0) { $entity_ids = array(0); } $this->_setupCollection($entity_ids); return $this->_productCollection; } else { return parent::_getProductCollection(); } } catch (\Exception $e) { $this->bxHelperData->setFallback(true); $this->_logger->critical($e); return parent::_getProductCollection(); } }
/** * @param string $label * @param mixed $value * @param int $count * @param null $selected * @param null $type * @return \Magento\Catalog\Model\Layer\Filter\Item */ public function _createItem($label, $value, $count = 0, $selected = null, $type = null) { if ($this->bxDataHelper->isFilterLayoutEnabled($this->_layer)) { return $this->_filterItemFactory->create()->setFilter($this)->setLabel($label)->setValue($value)->setCount($count)->setSelected($selected)->setType($type); } return parent::_createItem($label, $value, $count); }
/** * @return array */ public function getTopFilters() { try { if ($this->bxHelperData->isFilterLayoutEnabled($this->layer) && $this->isTopFilterEnabled()) { $facets = $this->p13nHelper->getFacets(); if ($facets) { $fieldName = $this->bxHelperData->getTopFacetFieldName(); $attribute = $this->objectManager->create("Magento\\Catalog\\Model\\ResourceModel\\Eav\\Attribute"); $filter = $this->objectManager->create("Boxalino\\Intelligence\\Model\\Attribute", ['data' => ['attribute_model' => $attribute], 'layer' => $this->layer]); $filter->setFacets($facets); $filter->setFieldName($fieldName); return $filter->getItems(); } } } catch (\Exception $e) { $this->bxHelperData->setFallback(true); $this->_logger->critical($e); } return array(); }