Маркер сущности, доступный в правилах, но нефункциональный


Я создаю страницу отправки-рецензирования, на которой отправители выбирают рецензента. Материалы отображаются на странице профиля рецензентов и имеют кнопки "Принять" и "отклонить", реализованные с помощью модуля Поле кнопки. Когда рецензент нажимает кнопку "Принять", он перенаправляется на новую форму содержимого обзора.

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

Я использую модуль Правила, чтобы проверить, нажата ли кнопка "Принять", и запустить действие Перенаправление страницы :

defined rule

После определения условия Сущность имеет тип Node шаблоны замены отображаются и, по-видимому, доступны:

replacement patterns

Поэтому я заполняю URL-адрес для перенаправления на относительным URL-адресом и идентификатором сущности:

node/add/review/[entity:nid]

Но это не имеет эффекта. Правило увольняется правильно, но [сущность:nid] пуста, и рецензент перенаправляется на узел/добавить/просмотреть/, поэтому идентификатор узла для предварительного заполнения поля ссылки на узел недоступен.

Я делаю что-то неправильно или это ошибка в поле кнопки? Есть какие-нибудь намеки на реализацию этой функциональности по-другому?

Author: Pierre.Vriens, 2017-02-18

1 answers

Я не знаком с использованием модуля Поле кнопки в сочетании с модулем Правила.

Но из деталей вашего вопроса кажется, что значение entity:nid действительно пустое. Возможное решение, как правило, заключается в добавлении действия Правил, которое является одним из следующих:

  • "Извлекать сущность по идентификатору" (если вы знаете идентификатор, который обрабатываете).
  • "Извлекать сущность по свойству" (если у вас есть какие-то критерии для составления списка объектов, подлежащих обработке в последующем Цикл правил).

Особенно я думаю, что вам следует попробовать "Извлечь сущность по идентификатору". Также из-за того, что написано в Комментарии № 3 к выпуску № 1796952, и в котором есть такой псевдокод:

  • событие: при нажатии пользователем поля кнопки
  • условие: Сущность относится к типу сущности (убедитесь, что все находится в области действия правила)
  • действия:
    • Извлекать сущность по идентификатору с помощью идентификатора (селектор данных): сущность: nid
    • прокачать "извлекаемая сущность" в компонент и выполняйте там действия

Если ничего из вышеперечисленного не помогает, то " Материалы отображаются на странице профиля рецензентов" часть вашего вопроса - это то, что может помочь использовать совершенно другой подход. Если это что-то вроде результата просмотра" (не так ли?), То вы могли бы использовать любой из этих подходов:

  • Добавьте действие правил для загрузки списка список результатов, созданных с помощью VBO включен просмотр.
  • Используйте модуль Правила просмотра, чтобы каждая строка этого представления обрабатывалась с помощью правил, в то время как вы можете сделать каждый столбец такого представления доступным в качестве маркера правил, поэтому, если этот "nid" включен в него, у вас есть то, что вы ищете.

Если ничего из вышеперечисленного не помогает, вы можете использовать отладку правил (например, для отображения значений соответствующих объектов с помощью модуля Devel, чтобы вы могли (временно) добавить действие правил, например "Отобразить значение". Для большего предложения по этому поводу см. в " Как я могу отобразить значение переменной внутри условия?".

PS: те 2 И Условия правил в вашем случае не нужны (это значение по умолчанию для того, как Правила объединяют условия многоуровневых правил).

 2
Author: Pierre.Vriens, 2017-04-13 12:47:06