在Observer中获取magento模块配置数据

时间:2010-07-09 09:30:51

标签: magento

我使用事件挂钩'sales_order_shipment_save_after'创建了一个带销售模块观察者的模块,

我的模块有以下文件

  1. 公司/ MODULENAME的/ etc / config.xml中
  2. 公司/ MODULENAME的/ etc /的system.xml
  3. 公司/ MODULENAME /型号/ Observer.php
  4. 模块管理配置字段中有四个字段 我想在Observer类中获取这些已保存的数据。

    使用 $ this-> getConfigData('password'); 给出

      

    调用未定义的方法

    错误 有什么建议?

3 个答案:

答案 0 :(得分:38)

Magento在全局Mage应用程序对象上使用静态方法来获取配置值

$config = Mage::getStoreConfig('section_name/group/field'); //value
$config = Mage::getStoreConfig('section_name/group'); //array

答案 1 :(得分:3)

Alan完全正确答案的修正案。

path作为第一个参数外,getStoreConfig还接受storeid作为第二个参数(可选)。

嗯,当您想要检索存储值时,这非常有用。

艾伦已经在他自己的tutorial中提到了这一点。我想,他这里没有提到,只是因为OP在他的问题中没有提到这个要求。

请参阅this

答案 2 :(得分:0)

在货件模块中,我可以使用$this->getConfigDat a来表示system.xml中的字段,但是在其他类型的模块中,有时不会使用Mage_Core_Model_Abstract。扩展{{1}},而不是必须使用getStoreConfig。所以答案是你不必总是使用getStoreConfig。但我不知道为什么......

答案:getConfigData只是在货件类中定义,并且也使用getStoreConfig。有些令人困惑的是,某些功能实际上是额外定义和不需要的......