_catalogLayer = $layerResolver->get(); $this->filterList = $filterList; $this->visibilityFlag = $visibilityFlag; $this->_productListHelper = $productListHelper; $this->_helper = $helper; parent::__construct($context, $layerResolver, $filterList, $visibilityFlag, $data); } public function AjaxEnabled() { return $this->_helper->AjaxEnabled(); } public function isCategoryFilter($filter) { return ($filter->getRequestVar() == 'cat') ? true : false; } public function getFilterButtonHtml() { return $this->_helper->getFilterButtonStyle(); } public function getActiveFilters() { $filters = $this->getFilters(); $activeFilters = []; $ctr = 0; foreach ($filters as $k => $filter) { if ($filter->getRequestVar() == 'cat') { if ($filter->getItemsCount()) { $ctr++; } continue; } else { if ($filter->getItemsCount()) { $attributeId = $filter->getAttributeModel()->getAttributeId(); if ($attributeId) { //$activeFilters[] = $ctr; } $ctr++; } } } $activeFiltersStr = implode(' ', $activeFilters); return $activeFiltersStr; } /** * Retrieve widget options in json format * * @param array $customOptions Optional parameter for passing custom selectors from template * @return string */ public function getWidgetOptionsJson(array $customOptions = []) { $defaultMode = $this->_productListHelper->getDefaultViewMode($this->getModes()); $options = [ 'mode' => Toolbar::MODE_PARAM_NAME, 'direction' => Toolbar::DIRECTION_PARAM_NAME, 'order' => Toolbar::ORDER_PARAM_NAME, 'limit' => Toolbar::LIMIT_PARAM_NAME, 'modeDefault' => $defaultMode, 'directionDefault' => $this->_direction ?: ProductList::DEFAULT_SORT_DIRECTION, 'orderDefault' => $this->getOrderField(), 'limitDefault' => $this->_productListHelper->getDefaultLimitPerPageValue($defaultMode), 'url' => $this->getPagerUrl(), ]; $options = array_replace_recursive($options, $customOptions); return json_encode(['productListToolbarForm' => $options]); } protected function getOrderField() { if ($this->_orderField === null) { $this->_orderField = $this->_productListHelper->getDefaultSortField(); } return $this->_orderField; } public function getPagerUrl($params = []) { $urlParams = []; $urlParams['_current'] = true; $urlParams['_escape'] = false; $urlParams['_use_rewrite'] = true; $urlParams['_query'] = $params; return $this->getUrl('*/*/*', $urlParams); } }