Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime Drupal 7规则-在cron上,检查日期字段和过去设置字段[状态]是否从“活动”变为“结束”_Datetime_Drupal_Drupal 7_Drupal Rules - Fatal编程技术网

Datetime Drupal 7规则-在cron上,检查日期字段和过去设置字段[状态]是否从“活动”变为“结束”

Datetime Drupal 7规则-在cron上,检查日期字段和过去设置字段[状态]是否从“活动”变为“结束”,datetime,drupal,drupal-7,drupal-rules,Datetime,Drupal,Drupal 7,Drupal Rules,好的。。。让我首先说,我知道这里有一个类似的帖子,但是这个帖子上的答案不起作用。组件中的步骤4添加条件“数据比较”并选择节点:类型不起作用或甚至作为选项存在 我需要做的是: 在Cron>上,如果内容类型为事件,并且结束日期已超过当前日期,则将状态字段从活动更改为结束。选择列表 我可以通过使用Event:Content来实现这一点,但我确实需要在运行cron时工作 旁注:在查看当前版本“我有内容”时,它确实会从“活动”更改为“结束”,但由于某些原因,它会删除节点的标题,这很奇怪,因为Drupal需

好的。。。让我首先说,我知道这里有一个类似的帖子,但是这个帖子上的答案不起作用。组件中的步骤4添加条件“数据比较”并选择节点:类型不起作用或甚至作为选项存在

我需要做的是:

在Cron>上,如果内容类型为事件,并且结束日期已超过当前日期,则将状态字段从活动更改为结束。选择列表

我可以通过使用Event:Content来实现这一点,但我确实需要在运行cron时工作

旁注:在查看当前版本“我有内容”时,它确实会从“活动”更改为“结束”,但由于某些原因,它会删除节点的标题,这很奇怪,因为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

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

您应该能够在cron执行时通过选择rule to System>cron维护任务执行时的React on event属性使其运行


我遗漏了什么吗?

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

旁注:我认为您可以在不使用php_eval的情况下进行日期比较,只需添加另一个实体has field condition并创建数据比较条件。应该有满足您需要的代币