如何从Magento系统configuration中获取数据

我只是徘徊在如何获得我的自定义模块的configuration数据。 configuration可以从pipe理system->configuration以及如何将其拉入前端?

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

sectionNamegroupNamefieldName存在于你的模块的etc / system.xml文件中。

上面的代码会自动获取当前查看的商店的configuration值。

如果要获取除当前查看的存储之外的任何其他存储的configuration值,则可以将store ID指定为getStoreConfig函数的第二个参数,如下所示:

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

你应该使用下面的代码

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

Mage::app()->getStore()这将添加商店代码在提取值,以便您可以得到正确的configuration值为当前商店这将避免不正确的商店的价值,因为magento也用于多个商店/视图,所以必须添加存储代码来获取magento中的任何东西。

如果我们有多个商店或多个视图configuration,那么这将确保我们获得当前商店的价值

Magento 1.x

(下面提供的magento 2示例)

sectionNamegroupNamefieldName存在于模块的etc / system.xml文件中。

PHP语法:

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

从pipe理员的编辑器中,例如CMS页面或静态块的内容; 目录类别,目录产品等的描述/简短描述

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

对于“在编辑器中”的方法来说,字段值必须通过一个filter来parsing出{{…}}的内容。 开箱即用,Magento将为此类别和产品描述以及CMS页面和静态块做到这一点。 但是,如果要在自己的自定义视图脚本中输出内容,并希望parsing出这些variables,则可以这样做:

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

标识符 / 名称replace为要加载的模型的适当值,并使用要输出的属性的名称(可能包含需要parsing的{{…}}个事件的字段

Magento 2.x

从任何扩展\ Magento \ Framework \ View \ Element \ AbstractBlock的Block类

 $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... 

一旦将它注入到类中,现在可以使用上面给出的与块类相同的语法示例来获取存储configuration值。

请注意,修改任何类的__construct()参数列表后,您可能必须清除生成的类以及依赖项注入目录: var/generationvar/di

例如,如果你想从configuration – >存储电子邮件地址获得EMAIL地址。 你可以指定从最好的商店,你会想要的地址:

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