我只是想知道如何获取自定义模块的配置数据。可以从admin system->configuration
设置配置以及如何在前端提取它?
答案 0 :(得分:150)
$configValue = Mage::getStoreConfig('sectionName/groupName/fieldName');
模块的 etc / system.xml 文件中包含sectionName , groupName 和 fieldName 。< / p>
以上代码将自动获取当前查看的商店的配置值。
如果要获取当前查看的商店之外的任何其他商店的配置值,则可以将商店ID指定为getStoreConfig
功能的第二个参数,如下所示:
$store = Mage::app()->getStore(); // store info
$configValue = Mage::getStoreConfig('sectionName/groupName/fieldName', $store);
答案 1 :(得分:23)
您应该使用以下代码
$configValue = Mage::getStoreConfig(
'sectionName/groupName/fieldName',
Mage::app()->getStore()
);
Mage::app()->getStore()
这将在获取值中添加商店代码,以便您可以获得当前商店的正确配置值,这将避免不正确的商店值,因为magento也用于多个商店/视图,因此必须添加商店代码以获取magento中的任何东西。
如果我们配置了多个商店或多个视图,那么这将确保我们获得当前商店的价值
答案 2 :(得分:19)
(下面提供的magento 2示例)
sectionName , groupName 和 fieldName 出现在模块的etc / system.xml文件中。
PHP语法:
Mage::getStoreConfig('sectionName/groupName/fieldName');
来自管理员的编辑器,例如CMS页面或静态块的内容;目录类别,目录产品等的描述/简短描述
{{config path="sectionName/groupName/fieldName"}}
对于&#34;在编辑器中#34;工作方法,必须通过过滤器传递字段值,以便解析出{{...}}内容。开箱即用,Magento将针对类别和产品描述以及CMS页面和静态块执行此操作。但是,如果要在自己的自定义视图脚本中输出内容并希望解析这些变量,则可以这样做:
<?php
$example = Mage::getModel('identifier/name')->load(1);
$filter = Mage::getModel('cms/template_filter');
echo $filter->filter($example->getData('field'));
?>
将标识符 / 名称替换为您要加载的模型的适当值,将字段替换为您想要的属性名称输出,可能包含需要解析的{{...}}次出现。
来自扩展的任何Block类\ 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
&amp; var/di
答案 3 :(得分:2)
例如,如果您想从config-&gt;存储电子邮件地址获取EMAIL ADDRESS。 您可以从wich商店指定您需要的地址:
$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);