2012-01-03 68 views
0

我有一個Magento模塊,它允許您通過管理界面將字符串保存到Magento中的核心配置表中。當字符串保存在後端時,我有一個觀察者設置來運行一個方法。我試圖攔截字符串並在將其保存到數據庫之前對其進行編碼。Magento事件/觀察者對象getData問題

所以,當被觸發我的情況下運行這樣的:

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] =>) 

現在只有被寫入到數據庫中的一個字符串,我怎麼弄該字符串保存之前,然後將我的新修改的字符串添加到對象,以便保存在數據庫中?

在此先感謝!

回答

2

在你system.xml文件,其中的配置字段定義添加此聲明:

<backend_model>adminhtml/system_config_backend_encrypted</backend_model> 

這將需要所有的編碼照顧/前和數據庫的訪問後進行解碼。同樣爲了得到'密碼'字段,通常使用這個:

<frontend_type>obscure</frontend_type>