Как определить измененные поля только в разделе администратора?
Мне нужно вставить некоторые значения в пользовательскую таблицу базы данных на основе значений измененного пользовательского поля, если конкретное значение пользовательского поля (в пользовательском способе доставки) изменилось.Мне нужно проверить это в моем Observer.php событие, которое я увольняю, - это admin_system_config_changed_section_carriers
Есть ли какой-нибудь возможный способ сделать это?
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
и сделать так, чтобы ваш модуль зависел от исходного, чтобы убедиться, что ваш будет загружен впоследствии.