【问题标题】:Creating rule based on field collection field基于字段集合字段创建规则
【发布时间】:2013-05-21 13:43:54
【问题描述】:

我想要做的是在我的字段集合中的一个字段更改为某个值时触发一个操作。例如,我的“campaign”节点有一个字段集合,其中包含一个名为“status”的字段。此状态是一个包含 3 个选项的列表; “onboard”、“live”或“dead”。当活动节点字段集合上的字段设置为“实时”时,我想触发一个操作。

所以我先说:

事件:节点更新后

条件:这是我正在努力解决的问题,因为我无法与该特定字段进行数据比较。

操作:发送电子邮件

我怎样才能做到这一点?

【问题讨论】:

  • 先添加一个'Entity has field'条件,然后选择你感兴趣的字段。你添加的下一个条件将能够使用该字段
  • 嗨 Clive,非常感谢您的回复,但我仍然看不到该字段。我的第一个条件是“实体具有字段参数:实体:[节点],字段:field_publisher_status”,然后在我的下一个条件上,我想基本上说'如果 field_publisher_status 是'LIVE'然后触发我的事件,但我在我的第二个条件。

标签: drupal-7 drupal-rules drupal-fields


【解决方案1】:

您可以使用类似于comment # 4 of issue # 1315566 中提到的方法来使其工作,即:

  1. 在您的规则中创建“实体有字段”条件。
  2. 对于“数据选择器”,选择包含该字段的实体(在我的例子中是一个节点)。对于“字段”值,请选择相关字段集合的机器名称。
  3. 开始行动。使用“数据选择器”模式,您应该能够通过相关实体向下钻取到字段集合中包含的所有值。就我而言,最终结果是“node:field-enrollee:field-school-district:0:tid”

在您的情况下,您尝试执行上述第 3 步中提到的规则条件(而不是规则操作)。因此,添加一个规则条件“实体具有字段”(在以后能够在规则中的任何位置使用它之前),它指的是您的字段集合字段。

有关此方面的更多详细信息,请参阅“How to iterate over all field collection items in the Rules module?”(其中还包括一个导出格式的规则,如果您只调整所用字段的一些机器名称,您可能想尝试一下)。

【讨论】:

    猜你喜欢
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    相关资源
    最近更新 更多