В hook_node_update () я могу легко определить «состояние» узла (опубликован он или нет) после его обновления.
Однако, есть простой способ проверить, если обновленный узел был опубликован, но теперь нет? (Или наоборот)?
Я думаю, что в правилах может быть какое-то условие для «значения узла изменилось» или что-то в этом роде, но я бы хотел сделать это программно.
Я нашел эту проблему fago (разработчик правил) на drupal.org, которая, кажется, имеет дело с этим в Drupal 7, но было бы полезно получить хорошее объяснение.
$entity->original->getTranslation($lng)->status->value == 0 && $entity->getTranslation($lng)->status->value == 1
node_save()
содержит следующий кодentity_load_unchanged()
загружает объект (в данном случае узел) из базы данных; он возвращает объект-сущность перед любыми изменениями, выполненными в запущенных модулях.Код выполняется перед любым предварительным сохранением и обновлением хуков.
В этих хуках можно увидеть свойства узла перед любым изменением
$node->original
, например, с помощью$node->original->status
.источник