Рейтинг:0

Как получить доступ к ссылке на сущность узла при сохранении комментариев с помощью правил?

флаг tk

У меня есть тип контента с полем ссылки на пользователя, пользователи заполняются здесь представлением.

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

rd89 avatar
флаг tk
Собираюсь опубликовать это здесь, отвечая на мой собственный вопрос. Не уверен, что это хакерство или нет, но я обошел мою неспособность получить доступ к полям узла, заставив комментарий обновить узел, измененный на текущее время. Затем создал новое правило, чтобы отправить электронное письмо пользователю ссылки на объект в этом обновлении. ¯\_(ã)_/¯
флаг hk
Это определенно взломано :).
rd89 avatar
флаг tk
@anoopjohn хотите отправить небольшое руководство? Я пришлю чашку кофе за ваши старания :)
Рейтинг:-1
флаг hk

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

Вы можете реализовать хук hook_ENTITY_TYPE_insert в своем модуле, который будет вызываться при вставке комментария, а затем из этого комментария получить узел, и оттуда вы можете делать с узлом все, что хотите.

функция custom_module_comment_insert(\Drupal\Core\Entity\EntityInterface $entity) {
   // $entity будет объектом комментария.
   $node = $entity->getCommentedEntity();
   если ($commented_entity && $commented_entity экземпляр\Drupal\node\NodeInterface) {
     // Делайте с узлом то, что хотите
   }
}

Надеюсь, это поможет кому-то, наткнувшемуся на этот пост.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.