mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 17:27:36 +00:00
89 lines
2.1 KiB
PHP
89 lines
2.1 KiB
PHP
<?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');
|
|
}
|
|
}
|