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

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

php,magento,

58

Ответов: 4


142 принят
$configValue = Mage::getStoreConfig('sectionName/groupName/fieldName');

имя раздела , Groupname и FIELDNAME присутствуют в и т.д. / System.XML файл вашего модуля.

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

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

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

22

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

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

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

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


17

Magento 1.x

(пример примера magento 2)

имя раздела , Groupname и FIELDNAME присутствуют в и т.д. / 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'));
?>

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

Magento 2.x

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

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

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

Если класс (и ни один из его родителей) не вводит MagentoFrameworkAppConfigScopeConfigInterfaceчерез конструктор, вам придется добавить его в свой класс.

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

/**
 * @var MagentoFrameworkAppConfigScopeConfigInterface
 */
protected $_scopeConfig;

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

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

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

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


2

например, если вы хотите получить 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);
PHP, Magento,
Похожие вопросы