如何从Magento系统configuration中获取数据
我只是徘徊在如何获得我的自定义模块的configuration数据。 configuration可以从pipe理system->configuration
以及如何将其拉入前端?
$configValue = Mage::getStoreConfig('sectionName/groupName/fieldName');
sectionName , groupName和fieldName存在于你的模块的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示例)
sectionName , groupName和fieldName存在于模块的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/generation
& var/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);