Удвоение вывода body на presave

Главные вкладки

Аватар пользователя designengineer designengineer 8 ноября 2011 в 0:02

Коллеги, вот странный случай с реализацией хука nodeapi. Задача - изменить ноду перед сохранением в базу (добавить в первый встретившийся в $node->body тег alt равный, скажем, названию материала). Пишу что-то вроде

function editimagetag_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL){
    switch ($op) {
       case 'presave':
       /* ищем img, добавляем alt */
       /* содержимое ноды как-то меняется */
       $node->body = "Измененный html";
       break;
    }
}

Эффект такой: presave отрабатывает нормально, но когда после сохранения переходишь опять в режим редактирования, в поле body видишь текст введенный до сохранения ноды - а за ним сразу отредактированный скриптом. В базе же все нормально, на странице тоже. Вроде 'prepare' в окрестных модулях нигде не обрабатывается.
Кстати, перед этим делал через triggered rules - та же история.

Комментарии