Magento事件/观察者对象getData问题

时间:2012-01-03 00:58:34

标签: php events magento observer-pattern

我有一个我构建的Magento模块,允许您通过管理界面将字符串保存到Magento的核心配置表中。我有一个观察者设置,当字符串保存在后端时运行一个方法。我在试图拦截字符串并对其进行编码,然后将其保存到数据库中。

所以当我的事件被触发时,它会运行:

public function myModSaved($observer)
{
    echo "<h1> WOWSERS IT ACTUALLY WORKED!!</h1>";

    $data = $observer->getData();   
    print_r($data);
}

输出如下:

Array ( [event] => Varien_Event Object ( [_observers:protected] => Varien_Event_Observer_Collection Object ( [_observers:protected] => Array ( ) ) [_data:protected] => Array ( [website] => [store] => [name] => admin_system_config_changed_section_mymodule_section ) [_hasDataChanges:protected] => [_origData:protected] => [_idFieldName:protected] => [_isDeleted:protected] => [_oldFieldsMap:protected] => Array ( ) [_syncFieldsMap:protected] => Array ( ) ) [website] => [store] => ) 

现在只有一个字符串写入数据库,如何在保存之前获取该字符串,然后将新修改的字符串添加到对象中,以便将其保存在数据库中?

提前致谢!

1 个答案:

答案 0 :(得分:2)

在定义了配置字段的system.xml文件中添加此声明:

<backend_model>adminhtml/system_config_backend_encrypted</backend_model>

这将在数据库访问之前和之后处理所有编码/解码。另外,为了获得“密码”类型字段,通常使用它:

<frontend_type>obscure</frontend_type>