Files
esun3d/app/code/WeltPixel/LayeredNavigation/Block/Navigation/State.php
T
2026-09-15 10:35:56 +08:00

100 lines
2.6 KiB
PHP
Executable File

<?php
/**
* @category WeltPixel
* @package WeltPixel_LayeredNavigation
* @copyright Copyright (c) 2018 Weltpixel
* @author Weltpixel TEAM
*/
namespace WeltPixel\LayeredNavigation\Block\Navigation;
/**
* Layered navigation state
*
* @api
* @since 100.0.2
*/
class State extends \Magento\LayeredNavigation\Block\Navigation\State
{
/**
* @var array
*/
protected $ratesStep = [
'0-20' => 1,
'21-40' => 2,
'41-60' => 3,
'61-80' => 4,
'81-100' => 5,
];
/**
* Catalog layer
*
* @var \Magento\Catalog\Model\Layer
*/
protected $_catalogLayer;
/**
* @var \WeltPixel\LayeredNavigation\Helper\Data
*/
protected $_wpHelper;
/**
* @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,
\WeltPixel\LayeredNavigation\Helper\Data $wpHelper,
array $data = []
) {
$this->_catalogLayer = $layerResolver->get();
$this->_wpHelper = $wpHelper;
parent::__construct($context,$layerResolver, $data);
if($this->_wpHelper->isEnabled()) {
$this->_template = 'WeltPixel_LayeredNavigation::layer/state.phtml';
}
}
/**
* @param $filter
* @return string
*/
public function getRateFilterLabel($filter) {
$selectedValue = $filter->getValue();
$countStars = 1;
if(is_array($selectedValue)) {
$val = $selectedValue[0].'-'.$selectedValue[1];
$countStars = $this->ratesStep[$val];
} else {
$valArr = explode('-', $selectedValue);
$val = $valArr[0].'-'.$valArr[1];
$countStars = $this->ratesStep[$val];
}
$label = '<div class="rating-summary" style="display: inline-block;margin-top: -5px;">
<div class="rating-result" title="up to '.$countStars*20 .'%"">
<span style="width:'.$countStars*20 .'%"></span>
</div>
</div>';
return $label;
}
/**
* @return string
*/
public function getCategoryParamLabel() {
return $this->_wpHelper->getCategoryParamLabel();
}
/**
* @return string
*/
public function getRatingParamLabel() {
return $this->_wpHelper->getRatingParamLabel();
}
}