Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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

$storeId = 2; // ID of the store you want to fetch the value of
$configValue = Mage::getStoreConfig('sectionName/groupName/fieldName', $storeId);

Ответ 2

вы должны использовать следующий код

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

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

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

Ответ 3

Magento 1.x

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

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

Синтаксис PHP:

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

В редакторе администратора, например, на странице CMS или в статическом блоке; описание/краткое описание категории каталога, продукта каталога и т.д.

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

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

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

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

Magento 2.x

Из любого класса блока, который расширяет \Magento\Framework\View\Element\AbstractBlock

$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

Ответ 4

например, если вы хотите получить EMAIL ADDRESS из config- > сохранить адреса электронной почты. Вы можете указать, из какого магазина вам нужен адрес:

$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);