Как определить измененные поля только в разделе администратора?


Мне нужно вставить некоторые значения в пользовательскую таблицу базы данных на основе значений измененного пользовательского поля, если конкретное значение пользовательского поля (в пользовательском способе доставки) изменилось.Мне нужно проверить это в моем Observer.php событие, которое я увольняю, - это admin_system_config_changed_section_carriers

Есть ли какой-нибудь возможный способ сделать это?

Author: Fabian Schmengler, 2015-05-15

1 answers

Если это настраиваемое поле взято из вашего собственного модуля, вы можете использовать серверную модель для выполнения дополнительных действий перед сохранением:

Добавьте это в определение поля в system.xml

<backend_model>your_module/system_config_backend_custom</backend_model>

И напишите модель следующим образом:

class Your_Module_Model_System_Config_Backend_Custom extends Mage_Core_Model_Config_Data
{
    protected function _afterSave()
    {
        if ($this->isValueChanged()) {
            // do your thing here
        }
    }
}

На самом деле это также работает для существующих модулей без изменения их кода: вы можете переопределить серверную модель в своей собственной system.xml и сделать так, чтобы ваш модуль зависел от исходного, чтобы убедиться, что ваш будет загружен впоследствии.

 4
Author: Fabian Schmengler, 2016-03-16 10:05:24