59 lines
1.4 KiB
PHP
Executable File
59 lines
1.4 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* @author Amasty Team
|
|
* @copyright Copyright (c) Amasty (https://www.amasty.com)
|
|
* @package Elastic Search Base for Magento 2
|
|
*/
|
|
|
|
namespace Amasty\ElasticSearch\Plugin\Search\Request;
|
|
|
|
use Amasty\ElasticSearch\Model\Config;
|
|
use Magento\Catalog\Block\Product\ProductList\Toolbar;
|
|
use Magento\Framework\View\LayoutInterface;
|
|
|
|
class Binder
|
|
{
|
|
public const ALL_TOOLBAR_OPTION = 'all';
|
|
|
|
/**
|
|
* @var Toolbar
|
|
*/
|
|
protected $toolbar;
|
|
|
|
/**
|
|
* @var Config
|
|
*/
|
|
protected $configProvider;
|
|
|
|
public function __construct(
|
|
Toolbar $toolbar,
|
|
Config $configProvider
|
|
) {
|
|
$this->toolbar = $toolbar;
|
|
$this->configProvider = $configProvider;
|
|
}
|
|
|
|
/**
|
|
* Fix all products toolbar option on Magento version > 2.3.2
|
|
* @param \Magento\Framework\Search\Request\Binder $subject
|
|
* @param array $resultData
|
|
* @param array $requestData
|
|
* @param array $bindData
|
|
* @return array
|
|
*/
|
|
public function afterBind(
|
|
\Magento\Framework\Search\Request\Binder $subject,
|
|
array $resultData,
|
|
array $requestData,
|
|
array $bindData
|
|
) {
|
|
if ($this->toolbar && $this->toolbar->getLimit() === self::ALL_TOOLBAR_OPTION
|
|
&& !$resultData['size'] && $this->configProvider->isElasticEngine()
|
|
) {
|
|
$resultData['size'] = $requestData['size'];
|
|
}
|
|
|
|
return $resultData;
|
|
}
|
|
}
|