Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/vendor/mageworx/module-seoall/Helper/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/mageworx/module-seoall/Helper/Layer.php
<?php
/**
 * Copyright © 2016 MageWorx. All rights reserved.
 * See LICENSE.txt for license details.
 */

namespace MageWorx\SeoAll\Helper;

/**
 * Class Layer
 */
class Layer extends \Magento\Framework\App\Helper\AbstractHelper
{
    /**
     * @var \Magento\Catalog\Model\Layer\Category
     */
    protected $catalogLayer;

    /**
     * @var \Magento\Catalog\Model\Layer\Resolver
     */
    protected $layerResolver;

    /**
     * Layer constructor.
     * @param \Magento\Catalog\Model\Layer\Resolver $layerResolver
     * @param \Magento\Framework\App\Helper\Context $context
     */
    public function __construct(
        \Magento\Catalog\Model\Layer\Resolver $layerResolver,
        \Magento\Framework\App\Helper\Context $context
    ) {
    
        $this->layerResolver = $layerResolver;
        parent::__construct($context);
    }

    public function getCatalogLayer()
    {
        if ($this->catalogLayer) {
            return $this->catalogLayer;
        }
        return $this->catalogLayer = $this->layerResolver->get();
    }

    /**
     * @return string
     */
    public function getMultipleValueSeparator()
    {
        return '_';
    }

    /**
     * @return array
     */
    public function getCurrentLayeredFilters()
    {
        $this->catalogLayer = $this->getCatalogLayer();

        if (is_object($this->catalogLayer)
            && is_object($this->catalogLayer->getState())
            && is_array($this->catalogLayer->getState()->getFilters())
        ) {
            return $this->catalogLayer->getState()->getFilters();
        }
        return [];
    }

    /**
     * @return boolean
     */
    public function isCategoryFilterActive()
    {
        $items = $this->getCurrentLayeredFilters();
        if ($items) {
            foreach ($items as $item) {
                if ($item->getFilter()->getRequestVar() == 'cat') {
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * @return bool
     */
    public function isUsedMultipleSelectionInLayer()
    {
        $filtersData = $this->getLayeredNavigationFiltersData();

        if ($filtersData) {
            foreach ($filtersData as $data) {
                if (!empty($data['is_multiple_value'])) {
                    return $data['is_multiple_value'];
                }
            }
        }
        return false;
    }

    /**
     * Retrieve specific filters data as array (use for canonical url)
     * @return array|false
     */
    public function getLayeredNavigationFiltersData()
    {
        $filterData     = [];

        $this->catalogLayer = $this->getCatalogLayer();
        $appliedFilters = $this->catalogLayer->getState()->getFilters();

        if (is_array($appliedFilters) && count($appliedFilters) > 0) {

            /** @var \Magento\Catalog\Model\Layer\Filter\Item $item */
            foreach ($appliedFilters as $item) {
                if (!$item->getFilter()->getData('attribute_model')) {
                    $attributeId = null;
                    //Ex: If $item->getFilter()->getRequestVar() == 'cat'
                    $use_in_canonical = 0;
                    $position         = 0;
                } else {
                    $attributeModel = $item->getFilter()->getAttributeModel();
                    $attributeId    = $attributeModel->getAttributeId();

                    $use_in_canonical = $item->getFilter()->getAttributeModel()->getLayeredNavigationCanonical();
                    $position         = $item->getFilter()->getAttributeModel()->getPosition();
                }

                $isMultipleValue = false;

                if (method_exists($item->getFilter(), 'getAttributeValues')) {
                    if (count($item->getFilter()->getAttributeValues()) > 1) {
                        $isMultipleValue = true;
                    }
                }

                $filterData[$attributeId] = [
                    'attribute_id'     => $attributeId,
                    'name'             => $item->getName(),
                    'is_multiple_value'=> $isMultipleValue,
                    'label'            => $item->getLabel(),
                    'code'             => $item->getFilter()->getRequestVar(),
                    'value'            => $this->_getRequest()->getParam($item->getFilter()->getRequestVar()),
                    'use_in_canonical' => $use_in_canonical,
                    'position'         => $position
                ];
            }
        }

        return (count($filterData) > 0) ? $filterData : false;
    }

    /**
     * Retrieve list of current filter codes
     *
     * @return array
     */
    public function getLayeredNavigationFiltersCode()
    {
        $filterCodes    = [];

        $this->catalogLayer = $this->getCatalogLayer();
        $appliedFilters = $this->catalogLayer->getState()->getFilters();

        if (is_array($appliedFilters) && count($appliedFilters) > 0) {
            foreach ($appliedFilters as $item) {
                $filterCodes[] = $item->getFilter()->getRequestVar();
            }
        }
        return $filterCodes;
    }
}

Spamworldpro Mini