3

好的...首先让我说我知道这里有一个类似的帖子(如何创建 Drupal 规则来检查(在 cron 上)日期字段以及是否将设置字段“状态”传递给“结束”?)但是答案在那个帖子上不起作用。第 4 步(在组件中添加条件“数据比较”并选择节点:类型)不起作用,甚至作为选项存在。

我需要做的是:

在 Cron > 如果内容类型是event并且结束日期已超过当前日期,则将该status字段从更改ActiveEnded。(选择列表)

我可以通过使用 Event: 来做到这一点:Content is viewed但是在运行 cron 时我真的需要工作。

旁注:对于我拥有的当前版本(已查看内容),它确实更改Active为,Ended但它也出于某种原因删除了节点的标题,这很奇怪,因为 Drupal 需要提交的标题......任何想法正在发生?

不确定它是否有帮助,但这是我自己所做的导出:

{ "rules_event_status" : {
    "LABEL" : "Event Status",
    "PLUGIN" : "reaction rule",
    "ACTIVE" : false,
    "REQUIRES" : [ "rules", "php" ],
    "ON" : [ "node_view" ],
    "IF" : [
      { "node_is_of_type" : { "node" : [ "node" ], "type" : { "value" : { "event" : "event" } } } },
      { "AND" : [] },
      { "php_eval" : { "code" : "\/\/dpm(strtotime($node-\u003Efield_event_date_time[LANGUAGE_NONE][0][\u0027value2\u0027]));\r\nif (time() \u003E strtotime($node-\u003Efield_event_date_time[LANGUAGE_NONE][0][\u0027value2\u0027]))\r\n{\r\n    return true;\r\n}" } }
    ],
    "DO" : [
      { "data_set" : { "data" : [ "node:field-event-status" ], "value" : "Ended" } }
    ]
  }
}

很感谢任何形式的帮助。

谢谢

C

4

2 回答 2

1

要使用由节点以外的其他模块创建的任何自定义字段或字段,您必须在规则中添加条件“实体具有字段”,这将使该字段“可见”并且可供以后的工作访问

旁注:我认为您可以在没有 php_eval 的情况下进行日期比较,只需添加另一个实体具有字段条件并创建“数据比较”条件。应该有可满足您需求的代币

于 2013-10-10T08:47:46.923 回答
0

不确定我是否完全理解这个问题:规则可以由 cron 触发。

通过将规则的“React on event”属性选择为“System > Cron maintenance tasks are executed”,您应该能够在 cron 执行时运行它。

我错过了什么吗?

于 2013-10-09T19:30:45.857 回答