12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\LayeredNavigation\Block\Navigation;
- use Magento\Framework\View\Element\Template;
- /**
- * Layered navigation state
- *
- * @api
- * @since 100.0.2
- */
- class State extends \Magento\Framework\View\Element\Template
- {
- /**
- * @var string
- */
- protected $_template = 'Magento_LayeredNavigation::layer/state.phtml';
- /**
- * Catalog layer
- *
- * @var \Magento\Catalog\Model\Layer
- */
- protected $_catalogLayer;
- /**
- * @param \Magento\Framework\View\Element\Template\Context $context
- * @param \Magento\Catalog\Model\Layer\Resolver $layerResolver
- * @param array $data
- */
- public function __construct(
- \Magento\Framework\View\Element\Template\Context $context,
- \Magento\Catalog\Model\Layer\Resolver $layerResolver,
- array $data = []
- ) {
- $this->_catalogLayer = $layerResolver->get();
- parent::__construct($context, $data);
- }
- /**
- * Retrieve active filters
- *
- * @return array
- */
- public function getActiveFilters()
- {
- $filters = $this->getLayer()->getState()->getFilters();
- if (!is_array($filters)) {
- $filters = [];
- }
- return $filters;
- }
- /**
- * Retrieve Clear Filters URL
- *
- * @return string
- */
- public function getClearUrl()
- {
- $filterState = [];
- foreach ($this->getActiveFilters() as $item) {
- $filterState[$item->getFilter()->getRequestVar()] = $item->getFilter()->getCleanValue();
- }
- $params['_current'] = true;
- $params['_use_rewrite'] = true;
- $params['_query'] = $filterState;
- $params['_escape'] = true;
- return $this->_urlBuilder->getUrl('*/*/*', $params);
- }
- /**
- * Retrieve Layer object
- *
- * @return \Magento\Catalog\Model\Layer
- */
- public function getLayer()
- {
- if (!$this->hasData('layer')) {
- $this->setLayer($this->_catalogLayer);
- }
- return $this->_getData('layer');
- }
- }
|