Проблемы с объектами getData объекта Magento Event / Observer - PullRequest
0 голосов
/ 03 января 2012

У меня есть модуль 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 Ответ

2 голосов
/ 03 января 2012

В вашем файле system.xml, где определено поле конфигурации, добавьте эту декларацию:

<backend_model>adminhtml/system_config_backend_encrypted</backend_model>

, которая позаботится обо всем кодировании / декодировании как до, так и после доступа к базе данных.Также для получения поля типа «пароль» обычно используется это:

<frontend_type>obscure</frontend_type>
...