![]() 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-seo/Model/SeoOptionsModifier/ |
<?php declare(strict_types=1); /** * @author Amasty Team * @copyright Copyright (c) Amasty (https://www.amasty.com) * @package Shop by Seo for Magento 2 (System) */ namespace Amasty\ShopbySeo\Model\SeoOptionsModifier; use Amasty\ShopbyBase\Api\Data\OptionSettingInterface; use Amasty\ShopbySeo\Helper\Data; class HardcodedAliases { /** * @var UniqueBuilder */ private $uniqueBuilder; /** * @var \Amasty\ShopbyBase\Model\ResourceModel\OptionSetting */ private $optionSettingResource; /** * @var \Amasty\ShopbySeo\Model\ConfigProvider */ private $configProvider; /** * @var Data */ private $seoHelper; public function __construct( UniqueBuilder $uniqueBuilder, \Amasty\ShopbyBase\Model\ResourceModel\OptionSetting $optionSettingResource, \Amasty\ShopbySeo\Model\ConfigProvider $configProvider, Data $seoHelper ) { $this->uniqueBuilder = $uniqueBuilder; $this->optionSettingResource = $optionSettingResource; $this->configProvider = $configProvider; $this->seoHelper = $seoHelper; } /** * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function modify(array &$optionsSeoData, int $storeId, array &$attributeIds = []): void { $hardcodedAliases = $this->loadHardcodedAliases($storeId); foreach ($hardcodedAliases as $row) { $attributeCode = $row[OptionSettingInterface::ATTRIBUTE_CODE]; $alias = $this->uniqueBuilder->execute( (string) $row[OptionSettingInterface::URL_ALIAS], (string) $row[OptionSettingInterface::VALUE] ); $optionsSeoData[$storeId][$attributeCode][$row[OptionSettingInterface::VALUE]] = $alias; } } private function loadHardcodedAliases(int $storeId): array { $aliases = []; if ($this->configProvider->isSeoUrlEnabled($storeId)) { $aliases = $this->optionSettingResource->getHardcodedAliases( $storeId, $this->seoHelper->getSeoSignificantAttributeCodes() ); } return $aliases; } }