Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Не работает обработчик OnAfterIBlockElementUpdateHandler

00 голосов
1
Задача: в блоке bitrix:catalog.element в детальном тексте необходимо заменить один текст на другой в уже созданных элементах.

Добавил в init.php обработчик:

AddEventHandler("iblock", "OnAfterIBlockElementUpdateHandler", Array("anons_text", "OnAfterIBlockElementUpdateHandler"));

class anons_text
{
function OnAfterIBlockElementUpdateHandler(&$arFields)
{
$arFields["DETAIL_TEXT"] = str_replace('textextext', 'aaaa', $arFields["DETAIL_TEXT"]);
}
}

Соответственно, в детальном описании добавляю текст 'textextext' и нажимаю "Сохранить". Но он не заменяется на текст 'aaaa'.
спросил 18 Июнь, 15 от аноним

1 Ответ

00 голосов

К сожалению, таким образом в обработчике OnAfterIBlockElementUpdateHandler этого сделать нельзя - обновление поля в БД уже произошло. Нужно воспользоваться событием OnBefore.

ответил 18 Июнь, 15 от root (25,590 баллов)

Похожие вопросы

0 голосов
2 ответов
спросил 03 Дек, 13 от XIDAN (620 баллов)
0 голосов
8 ответов
спросил 15 Июнь, 13 от Asteria (1,840 баллов)
0 голосов
7 ответов
0 голосов
4 ответов
спросил 15 Июль, 13 от Storitell (340 баллов)
0 голосов
1 ответ