Хук "после клонирования ноды"

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

Аватар пользователя Кришпер Кришпер 30 апреля 2018 в 17:43

Нужен хук "после клонирования ноды." clone_node_alter не катит, т.к он срабатывает, когда просто переходишь на страницу клонирования, а не после самого клонирования. Тоже самое с clone_action_link_title
Там dd работает, в них я уверен

А эти красавцы вообще работать не хотят и ошибок не пишукт(тема батрик - да)

<?phpfunction bartik_node_insert($node) {
    dd(date("Y/m/d") . ' ||| ' . $node->title );
}

function bartik_node_update($node) {
    dd(date("Y/m/d") . ' // ' . $node->title );
}
?>

Комментарии

Аватар пользователя Semantics Semantics 30 апреля 2018 в 17:56

Прокидывайте как-то свойство, что нода клонирована, из сабмита, например, добавите в нужный хук проверку - получите хук "после клонирования".

Не уверен, что в теме оформления стоит ожидать того, что хуки на сущности будут работать, особенно, с неверными названиями функций

Аватар пользователя bumble bumble 30 апреля 2018 в 19:28

Да, чот не вник.

В целом - да, нужно из модуля звать, а не в теме (и тем более не в ядренной).

А еще, есть хук пресейв, и если тайтл подменить - подойдет. Но, останется только вопрос в том - как понять что нода склонированна, а не просто добавлена.

Но, все же, кажется для этого должен подойти тот самый, который "не катит" - hook_clone_node_alter.
Давайте смотреть как пытаетесь работать, должно быть что-то вроде:

<?php
function MY_MODULE_clone_node_alter(&$node$context) {
  if (
$context['original_node']->type == 'SOURCE_NODE_TYPE') {
    
$node->title date("Y/m/d") . ' ||| ' $node->title;
  }
}
?>
Аватар пользователя Кришпер Кришпер 1 мая 2018 в 9:39

Я написал причин, почему он не катит он срабатывает на странице клонирования, а не после самого клонированя, а в $context одинаковая инфа