Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions
Category Class Reference
Inheritance diagram for Category:
AbstractFilter DataObject FilterInterface

Public Member Functions

 __construct (\Magento\Catalog\Model\Layer\Filter\ItemFactory $filterItemFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Catalog\Model\Layer $layer, \Magento\Catalog\Model\Layer\Filter\Item\DataBuilder $itemDataBuilder, \Magento\Framework\Escaper $escaper, \Magento\Catalog\Model\Layer\Filter\DataProvider\CategoryFactory $categoryDataProviderFactory, array $data=[])
 
 apply (\Magento\Framework\App\RequestInterface $request)
 
 getResetValue ()
 
 getName ()
 
- Public Member Functions inherited from AbstractFilter
 __construct (\Magento\Catalog\Model\Layer\Filter\ItemFactory $filterItemFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Catalog\Model\Layer $layer, \Magento\Catalog\Model\Layer\Filter\Item\DataBuilder $itemDataBuilder, array $data=[])
 
 setRequestVar ($varName)
 
 getRequestVar ()
 
 getResetValue ()
 
 getCleanValue ()
 
 apply (\Magento\Framework\App\RequestInterface $request)
 
 getItemsCount ()
 
 getItems ()
 
 setItems (array $items)
 
 getLayer ()
 
 setAttributeModel ($attribute)
 
 getAttributeModel ()
 
 getName ()
 
 getStoreId ()
 
 setStoreId ($storeId)
 
 getWebsiteId ()
 
 setWebsiteId ($websiteId)
 
 getClearLinkText ()
 
- Public Member Functions inherited from DataObject
 __construct (array $data=[])
 
 addData (array $arr)
 
 setData ($key, $value=null)
 
 unsetData ($key=null)
 
 getData ($key='', $index=null)
 
 getDataByPath ($path)
 
 getDataByKey ($key)
 
 setDataUsingMethod ($key, $args=[])
 
 getDataUsingMethod ($key, $args=null)
 
 hasData ($key='')
 
 toArray (array $keys=[])
 
 convertToArray (array $keys=[])
 
 toXml (array $keys=[], $rootName='item', $addOpenTag=false, $addCdata=true)
 
 convertToXml (array $arrAttributes=[], $rootName='item', $addOpenTag=false, $addCdata=true)
 
 toJson (array $keys=[])
 
 convertToJson (array $keys=[])
 
 toString ($format='')
 
 __call ($method, $args)
 
 isEmpty ()
 
 serialize ($keys=[], $valueSeparator='=', $fieldSeparator=' ', $quote='"')
 
 debug ($data=null, &$objects=[])
 
 offsetSet ($offset, $value)
 
 offsetExists ($offset)
 
 offsetUnset ($offset)
 
 offsetGet ($offset)
 

Additional Inherited Members

- Data Fields inherited from AbstractFilter
const ATTRIBUTE_OPTIONS_ONLY_WITH_RESULTS = 1
 
- Protected Member Functions inherited from AbstractFilter
 _getItemsData ()
 
 _initItems ()
 
 _createItem ($label, $value, $count=0)
 
 _getFilterEntityIds ()
 
 _getBaseCollectionSql ()
 
 getOptionText ($optionId)
 
 getAttributeIsFilterable ($attribute)
 
 isOptionReducesResults ($optionCount, $totalSize)
 
- Protected Member Functions inherited from DataObject
 _getData ($key)
 
 _underscore ($name)
 
- Protected Attributes inherited from AbstractFilter
 $_requestVar
 
 $_items
 
 $_catalogLayer
 
 $_storeManager
 
 $_filterItemFactory
 
 $itemDataBuilder
 
- Protected Attributes inherited from DataObject
 $_data = []
 
- Static Protected Attributes inherited from DataObject
static $_underscoreCache = []
 

Detailed Description

Layer category filter

Definition at line 14 of file Category.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( \Magento\Catalog\Model\Layer\Filter\ItemFactory  $filterItemFactory,
\Magento\Store\Model\StoreManagerInterface  $storeManager,
\Magento\Catalog\Model\Layer  $layer,
\Magento\Catalog\Model\Layer\Filter\Item\DataBuilder  $itemDataBuilder,
\Magento\Framework\Escaper  $escaper,
\Magento\Catalog\Model\Layer\Filter\DataProvider\CategoryFactory  $categoryDataProviderFactory,
array  $data = [] 
)

Category constructor.

Parameters
\Magento\Catalog\Model\Layer\Filter\ItemFactory$filterItemFactory
\Magento\Store\Model\StoreManagerInterface$storeManager
\Magento\Catalog\Model\Layer$layer
\Magento\Catalog\Model\Layer\Filter\Item\DataBuilder$itemDataBuilder
\Magento\Framework\Escaper$escaper
\Magento\Catalog\Model\Layer\Filter\DataProvider\CategoryFactory$categoryDataProviderFactory
array$data
Exceptions

Definition at line 38 of file Category.php.

46  {
47  parent::__construct(
48  $filterItemFactory,
50  $layer,
52  $data
53  );
54  $this->escaper = $escaper;
55  $this->_requestVar = 'cat';
56  $this->dataProvider = $categoryDataProviderFactory->create(['layer' => $this->getLayer()]);
57  }
$storeManager

Member Function Documentation

◆ apply()

Apply category filter to product collection

Parameters
\Magento\Framework\App\RequestInterface$request
Returns
$this

Implements FilterInterface.

Definition at line 65 of file Category.php.

66  {
67  $categoryId = $request->getParam($this->_requestVar) ?: $request->getParam('id');
68  if (empty($categoryId)) {
69  return $this;
70  }
71 
72  $this->dataProvider->setCategoryId($categoryId);
73 
74  $category = $this->dataProvider->getCategory();
75 
76  $this->getLayer()->getProductCollection()->addCategoryFilter($category);
77 
78  if ($request->getParam('id') != $category->getId() && $this->dataProvider->isValid()) {
79  $this->getLayer()->getState()->addFilter($this->_createItem($category->getName(), $categoryId));
80  }
81  return $this;
82  }

◆ getName()

getName ( )

Get filter name

Returns
\Magento\Framework\Phrase

Implements FilterInterface.

Definition at line 99 of file Category.php.

100  {
101  return __('Category');
102  }
__()
Definition: __.php:13

◆ getResetValue()

getResetValue ( )

Get filter value for reset current filter state

Returns
mixed|null

Implements FilterInterface.

Definition at line 89 of file Category.php.

90  {
91  return $this->dataProvider->getResetValue();
92  }

The documentation for this class was generated from the following file: