2013-05-21 5 views
1

Что я хочу сделать, это вызвать действие, когда одно из полей в моей коллекции полей будет изменено на определенное значение. Например, мой узел «кампания» имеет коллекцию полей с полем «статус». Этот статус представляет собой список, содержащий 3 варианта; «бортовой», «живой» или «мертвой». Когда поле в коллекции полей узла кампании установлено в «live», я хочу вызвать действие.Создание правила на основе поля сбора полей

Так я начинаю, говоря:

События: После того, как узел обновляется

Условия: Это немного я изо всех сил, чтобы работать так, как я не могу сделать сравнение данных с этой конкретной области.

Действие: отправить по электронной почте

Как я могу добиться этого?

+0

Сначала добавьте условие «Entity has field» и выберите интересующее вас поле. Следующее условие, которое вы добавите, сможет использовать это поле – Clive

+0

Hi Clive, спасибо большое за ваш ответ, но я все еще не могу видеть поле. Мое первое условие: «Entity имеет поле Параметр: Entity: [node], Field: field_publisher_status», а затем на моем следующем я хочу, чтобы bascially сказать «if field_publisher_status is« LIVE », а затем запустить мое событие, но я не вижу этого поля в моем втором состоянии. –

ответ

0

Вы можете получить его на работу, используя подход, аналогичный тому, что упоминается в comment # 4 of issue # 1315566, т.е .:

  1. создать «объект имеет поле» состояние на вашем правиле.
  2. Для «Селектора данных» выберите объект, который содержит поле (в моем случае, узел). Для значения «Поле» выберите имя машины соответствующего поля.
  3. Перейти к вашему действию. Используя режим «Выбор данных», вы должны иметь возможность переходить через рассматриваемый объект ко всем значениям, содержащимся в коллекции полей. В моем случае, конечный результат «узел: поле-абитуриент: поле-школа-район: 0: TID»

В вашем случае вы пытаетесь сделать то, что упоминается в пункте 3 выше, в качестве правил Условие (вместо действия правил). Поэтому добавьте условие правил «Entity has field» (до того, как вы сможете использовать его в любом месте в своем правиле), что относится к полю вашей коллекции полей.

Для получения дополнительной информации об этом обратитесь к разделу «How to iterate over all field collection items in the Rules module?» (в котором также содержится правило в формате экспорта, с которым вы можете поэкспериментировать, если вы только адаптируете некоторые машинные имена используемых полей).

Смежные вопросы