@roman94

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

Стоит задача, совершать некоторые действия при изменении раздела инфоблока, только если было изменено его имя. Знаю, что можно сохранить состояние при вызове события OnBeforeIBlockSectionUpdate. Есть ли альтернативный вариант?
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
@jasper-blondin
Не надо ничего сохранять.
При срабатывании события OnBeforeIBlockSectionUpdate получите поля (из параметры функции-обработчика). Это новые значения. А как получить старые, Вы уже знаете: CIBlockSection::GetByID().

Получается, что Ваша задача сводится к банальному условию в обработчике:
$oldFields = \CIBlockSection::GetByID($fields["ID"])->GetNext();
if($fields["NAME"] != $oldFields["NAME"]) {...}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
28 мар. 2024, в 20:46
150000 руб./за проект
28 мар. 2024, в 20:37
50000 руб./за проект
28 мар. 2024, в 20:34
1500 руб./за проект