24 private $dataProvider;
39 \
Magento\Catalog\Model\Layer\Filter\ItemFactory $filterItemFactory,
41 \
Magento\Catalog\Model\Layer $layer,
43 \
Magento\Framework\Escaper $escaper,
44 \
Magento\Catalog\Model\Layer\Filter\
DataProvider\CategoryFactory $categoryDataProviderFactory,
54 $this->escaper = $escaper;
55 $this->_requestVar =
'cat';
56 $this->dataProvider = $categoryDataProviderFactory->create([
'layer' => $this->
getLayer()]);
67 $categoryId =
$request->getParam($this->_requestVar) ?:
$request->getParam(
'id');
68 if (empty($categoryId)) {
72 $this->dataProvider->setCategoryId($categoryId);
74 $category = $this->dataProvider->getCategory();
78 if ($request->getParam(
'id') !=
$category->getId() && $this->dataProvider->isValid()) {
91 return $this->dataProvider->getResetValue();
101 return __(
'Category');
114 $category = $this->dataProvider->getCategory();
122 && isset($optionsFacetedData[
$category->getId()])
125 $this->itemDataBuilder->addItemData(
126 $this->escaper->escapeHtml(
$category->getName()),
128 $optionsFacetedData[
$category->getId()][
'count']
133 return $this->itemDataBuilder->build();
_createItem($label, $value, $count=0)
__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)
isOptionReducesResults($optionCount, $totalSize)