![]() 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/Ecombricks/InventoryConfig/Plugin/Model/Config/ |
<?php /** * Copyright © eComBricks. All rights reserved. * See COPYING.txt for license details. */ namespace Ecombricks\InventoryConfig\Plugin\Model\Config; /** * Configuration loader plugin */ class Loader { /** * Configuration data collection factory * * @var \Magento\Config\Model\ResourceModel\Config\Data\CollectionFactory */ protected $configDataCollectionFactory; /** * @param \Magento\Config\Model\ResourceModel\Config\Data\CollectionFactory $configDataCollectionFactory */ public function __construct(\Magento\Config\Model\ResourceModel\Config\Data\CollectionFactory $configDataCollectionFactory) { $this->configDataCollectionFactory = $configDataCollectionFactory; } /** * Around get configuration by path * * @param \Magento\Config\Model\Config\Loader $subject * @param \Closure $proceed * @param string $path * @param string $scope * @param string $scopeId * @param bool $full * @return array */ public function aroundGetConfigByPath( \Magento\Config\Model\Config\Loader $subject, \Closure $proceed, $path, $scope, $scopeId, $full = true ) { $configDataCollection = $this->configDataCollectionFactory->create(); $configDataCollection->addScopeFilter($scope, $scopeId, $path); $sourceCode = $subject->getSourceCode(); if ($sourceCode) { $configDataCollection->addFieldToFilter('source_code', $sourceCode); } else { $configDataCollection->addFieldToFilter('source_code', ['null' => 'null']); } $configDataCollection->load(); $config = []; foreach ($configDataCollection->getItems() as $configData) { $path = $configData->getPath(); if ($full) { $config[$path] = [ 'path' => $configData->getPath(), 'value' => $configData->getValue(), 'config_id' => $configData->getConfigId(), ]; } else { $config[$path] = $configData->getValue(); } } return $config; } }