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/amasty/shopby/ViewModel/Navigation/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/amasty/shopby/ViewModel/Navigation/Toolbar.php
<?php

declare(strict_types=1);

/**
 * @author Amasty Team
 * @copyright Copyright (c) Amasty (https://www.amasty.com)
 * @package Improved Layered Navigation Base for Magento 2
 */

namespace Amasty\Shopby\ViewModel\Navigation;

use Magento\Catalog\Block\Product\ProductList\Toolbar as ToolbarBlock;
use Magento\Framework\Registry;

class Toolbar
{
    private const PRODUCT_LISTING_SEARCH_BLOCK = 'search.result';
    private const PRODUCT_LISTING_TOOLBAR_BLOCK = 'product_list_toolbar';
    private const SEARCH_SORTING = 'amsorting_search';
    
    /**
     * @var Registry
     */
    private $registry;

    /**
     * @param Registry $registry Used Deprecated class because of legacy compatibility.
     */
    public function __construct(Registry $registry)
    {
        $this->registry = $registry;
    }

    /**
     * Is current layout are Search then prepare the product list toolbar.
     */
    public function resolveSearchLayoutToolbar(\Magento\Framework\View\LayoutInterface $layout): void
    {
        // determine is it a search result layout
        if (!$layout->getBlock(self::PRODUCT_LISTING_SEARCH_BLOCK)) {
            return;
        }
        $toolbarBlock = $layout->getBlock(self::PRODUCT_LISTING_TOOLBAR_BLOCK);

        if ($toolbarBlock && $toolbarBlock instanceof ToolbarBlock) {
            $this->prepareSearchToolbar($toolbarBlock);
        }
    }

    /**
     * Replace position order by relevance.
     */
    private function prepareSearchToolbar(ToolbarBlock $toolbarBlock): void
    {
        $toolbarBlock->setData('_current_grid_order', null);
        $toolbarBlock->setData('_current_grid_direction', null);
        $orders = $toolbarBlock->getAvailableOrders();
        unset($orders['position']);
        $orders['relevance'] = __('Relevance');
        $toolbarBlock->setAvailableOrders(
            $orders
        )->setDefaultDirection(
            'desc'
        );

        if (!$this->isAdvancedSorting()) {
            $toolbarBlock->setDefaultOrder('relevance');
        }
    }

    /**
     * Is Advanced Sorting are applied to toolbar collection.
     *
     * Advanced Sorting - provided by extension Amasty_Sorting
     */
    public function isAdvancedSorting(): bool
    {
        return (bool) $this->registry->registry(self::SEARCH_SORTING);
    }
}

Spamworldpro Mini