Как я могу переписать метатеги страниц drupal из действия модуля Правила? - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь определить, когда узел типа контента обновляется или сохраняется в первый раз и имеет прикрепленный звук.

Если это так, я хочу переписать метатеги Twitter Card, чтобы превратить карточку с изображением в карту памяти, а затем добавить ссылку на соответствующее звуковое поле, чтобы завершить настройки карты памяти и проигрывателя.

У меня есть набор правил, который обнаруживает создание / обновление узла; Я могу проверять узлы правильного «типа», и мое правило срабатывает соответствующим образом, но мне не удается выполнить действие правила по перезаписи метатегов.

Правила говорят мне, что $ node доступен для меня, поэтому я пытался сделать:

$node->metatags[LANGUAGE_NONE]['description']['value'] = 'Some description.';
$node->metatags[LANGUAGE_NONE]['title']['value'] = 'Some title | ZZZ';

За этим последовало действие "сохранение объекта". Мое обоснование заключается в том, чтобы записать изменения до того, как сработает блокировка рекурсии и остановит выполнение правила.

Я обходил дома целый день, пытаясь решить эту проблему. Может кто-нибудь указать мне правильное направление?

Большое спасибо.

1 Ответ

0 голосов
/ 03 января 2019

Не полностью понял ваше требование. Но вы можете легко обновить данные вашего узла, используя hook_node_presave (https://api.drupal.org/api/drupal/modules%21node%21node.api.php/function/hook_node_presave/7.x) перед сохранением узла в базе данных.

Используйте hook_node_insert (https://api.drupal.org/api/drupal/modules%21node%21node.api.php/function/hook_node_insert/7.x) и hook_node_update (https://api.drupal.org/api/drupal/modules%21node%21node.api.php/function/hook_node_update/7.x)), если вам нужно сделать то же самое после сохранения узла в базе данных

...