Как получить данные из конфигурации системы Magento


Я просто размышляю о том, как я могу получить данные конфигурации для своего пользовательского модуля. Конфигурацию можно задать от администратора system->configuration и как ее вытащить во внешний интерфейс?

 59
Author: Josua Marcel Chrisano, 2011-05-05

4 answers

$configValue = Mage::getStoreConfig('sectionName/groupName/fieldName');

Название раздела, Имя группы и Имя поля присутствуют в etc/system.xml файл вашего модуля.

Приведенный выше код автоматически извлекает значение конфигурации текущего просматриваемого хранилища.

Если вы хотите получить значение конфигурации любого другого магазина, кроме просматриваемого в данный момент, вы можете указать идентификатор магазина в качестве второго параметра функции getStoreConfig, как показано ниже:

$store = Mage::app()->getStore(); // store info
$configValue = Mage::getStoreConfig('sectionName/groupName/fieldName', $store);
 145
Author: Mukesh Chapagain, 2018-04-23 10:10:02

Вам следует использовать следующий код

$configValue = Mage::getStoreConfig(
                   'sectionName/groupName/fieldName',
                   Mage::app()->getStore()
               ); 

Mage::app()->getStore() это добавит код магазина в значения выборки, чтобы вы могли получить правильные значения конфигурации для текущего магазина. это позволит избежать неправильных значений магазина, потому что magento также используется для нескольких магазинов/представлений, поэтому необходимо добавить код магазина, чтобы получить что-либо в magento.

Если у нас настроено более одного хранилища или несколько представлений, это гарантирует, что мы получим значения для текущего хранилища

 22
Author: , 2013-02-19 06:45:39

Magento 1.x

( пример magento 2 приведен ниже)

Название раздела, Имя группы и Имя поля присутствуют в etc/system.xml файл модуля.

Синтаксис PHP:

Mage::getStoreConfig('sectionName/groupName/fieldName');

Из редактора в администраторе, например, содержимое страницы CMS или статического блока; описание/краткое описание Категории каталога, Продукта каталога и т. Д.

{{config path="sectionName/groupName/fieldName"}}

Для подхода "Внутри редактора" к работе, значение поля должно быть передано через фильтр для {{... }} содержимое, подлежащее анализу. Из коробки Magento сделает это для описания категорий и продуктов, а также страниц CMS и статических блоков. Однако, если вы выводите содержимое в своем собственном пользовательском сценарии просмотра и хотите, чтобы эти переменные были проанализированы, вы можете сделать это следующим образом:

<?php
    $example = Mage::getModel('identifier/name')->load(1);
    $filter  = Mage::getModel('cms/template_filter');
    echo $filter->filter($example->getData('field'));
?>

Замена идентификатора / имя с соответствующими значениями a для загружаемой модели и поле с именем атрибута, который вы хотите вывести, которое может содержать {{... }} случаи, которые необходимо проанализировать.

Magento 2.x

Из любого класса блоков, который расширяет \Magento\Framework\Представление\Элемент\Абстрактный блок

$this->_scopeConfig->getValue('sectionName/groupName/fieldName');

Любой другой класс PHP:

Если класс (и ни один из его родителей) не вводит \Magento\Framework\App\Config\ScopeConfigInterface через конструктор, вам придется добавить его в свой класс.

// ... Remaining class definition above...

/**
 * @var \Magento\Framework\App\Config\ScopeConfigInterface
 */
protected $_scopeConfig;

/**
 * Constructor
 */
public function __construct(
    \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
    // ...any other injected classes the class depends on...
) {
  $this->_scopeConfig = $scopeConfig;
  // Remaining constructor logic...
}

// ...remaining class definition below...

Как только вы введете его в свой класс теперь вы можете извлекать значения конфигурации хранилища с помощью того же примера синтаксиса, приведенного выше для классов блоков.

Обратите внимание, что после изменения списка параметров __construct() любого класса может потребоваться очистить созданные классы, а также каталог внедрения зависимостей: var/generation & var/di

 18
Author: Darren Felton, 2017-07-21 20:27:19

Например, если вы хотите получить АДРЕС электронной ПОЧТЫ из конфигурации ->хранить адреса электронной почты. Вы можете указать, в каком магазине вам нужен адрес:

$store=Mage::app()->getStore()->getStoreId(); 
/* Sender Name */
Mage::getStoreConfig('trans_email/ident_general/name',$store); 
/* Sender Email */
Mage::getStoreConfig('trans_email/ident_general/email',$store);
 2
Author: claudio, 2016-10-14 12:20:33