Рассмотрим технику того, как выполнить node_save во время hook_node_insert.
Проблема в том, что во время данного хука мы еще находимся в транзакции и выполнить сохранение ноды прямо тут коде функции — не получится. Т.е. следующий код работать не будет:
|
|
/** * Implements hook_node_insert. */ function MYMODULE_node_insert($node) { ... node_save($node); } |
Но можно подготовить собственную run-time зацепку на завершение работы кода друпала и выполнить нужные нам операции. Выглядит это следующим образом:
|
|
/** * Implements hook_node_insert. */ function MYMODULE_node_insert($node) { // Запускаем нужный код уже после того как нода вставлена drupal_register_shutdown_function('_MYMODULE_shutdown', $node); } function _MYMODULE_shutdown($node) { ... node_save($node); } |
Drupal 7
Данная запись опубликована в 13.04.2021 14:52 и размещена в рубрике Drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Март 20, 2019 г.
При возникновении ошибок, во время проверки формы друпал выполняет две вещи, которые отражаются на фронт-энд - добавляет сообщение об ошибке в стек сообщений и маркирует классом error поле, содержащее ошибку.
Если форма находится далеко от места вывода ...
Читать
Декабрь 23, 2020 г.
Время от времени продолжаю кодить под drupal 7, публикую еще один пример для работы EntityFieldQuery, на этот раз с фильтром по полю типа term reference.
Основная логика точно такая же как и при работе с data полями (где у нас хранятся тексты или ...
Читать
Сентябрь 5, 2020 г.
Пример добавления обработчика (фильтра) текста в rich editor.
Требуется всего два шага для реализации нового фильтра:
имплементировать hook_filter_info(), ...
Читать
Июнь 28, 2019 г.
Привычное для пользователей поведение модального окна изначально не реализовано в ctools. Давайте добавим немного js, реализующего нужный функционал.
Код универсален для модального окна создаваемого ctools, т.к. привязан к верстке окна:
[crayon-69a47b5a43980536479764/] ...
Читать