![]() 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/Plugin/Elasticsearch/Model/Adapter/ |
<?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\Plugin\Elasticsearch\Model\Adapter; class AdditionalDataMapper { /** * @var DataMapperInterface[] */ private $dataMappers = []; /** * AdditionalDataMapper constructor. * @param array $dataMappers */ public function __construct(array $dataMappers = []) { $this->dataMappers = $dataMappers; } /** * Prepare index data for using in search engine metadata. * * @SuppressWarnings(PHPMD.UnusedFormalParameter) * @param $subject * @param callable $proceed * @param $productId * @param array $indexData * @param $storeId * @param array $context * @return array */ public function aroundMap( $subject, callable $proceed, $productId, array $indexData, $storeId, $context = [] ): array { $document = $proceed($productId, $indexData, $storeId, $context); $context['document'] = $document; foreach ($this->dataMappers as $mapper) { if ($mapper instanceof DataMapperInterface && $mapper->isAllowed() && !isset($document[$mapper->getFieldName()]) ) { // @codingStandardsIgnoreLine $document = array_merge($document, $mapper->map($productId, $indexData, $storeId, $context)); } } return $document; } }