Рассмотрим технику того, как выполнить 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 г.
Столкнулся со следующим неприятным багом, при использовании модуля pathauto, совместно с модулем транслитерации: Drupal генерирует "обрезанные" синонимы адресов страниц.
Длина получаемого синонима плавала от 40-70 символов, и я никак не мог понять ...
Читать
Май 13, 2020 г.
Как получить полный список зарегистрированных типов публикаций в Drupal 7. Задача типична для бек-енда при создании форм страниц настроек. Потому покажу в статье пример реализации поля для формы с выбором типов публикаций.
В API Drupal существует ...
Читать
Февраль 12, 2019 г.
Я уже рассказывал ранее как программно можно обновить данные в сущности config_pages. А здесь покажу как программно можно выполнить удаление полей и групп (созданных модулем field_group).
Config Pages использует Field API, поэтому удаление полей ...
Читать
Декабрь 23, 2020 г.
Время от времени продолжаю кодить под drupal 7, публикую еще один пример для работы EntityFieldQuery, на этот раз с фильтром по полю типа term reference.
Основная логика точно такая же как и при работе с data полями (где у нас хранятся тексты или ...
Читать