datetime - Drupal 7 规则 - 在 cron 上,检查日期字段,如果过去设置字段 [状态] 从 “active” 到 “ended”

标签 datetime drupal drupal-7 drupal-rules

好的...首先让我说我知道这里有一个类似的帖子(How to create a Drupal rule to check (on cron) a date field and if passed set field "status" to "ended"?)但是那个帖子的答案不起作用。第 4 步(在组件中添加条件“数据比较”并选择节点:类型)不起作用,甚至作为选项存在。

我需要做的是:

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

我能够通过使用事件来做到这一点: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

最佳答案

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

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

关于datetime - Drupal 7 规则 - 在 cron 上,检查日期字段,如果过去设置字段 [状态] 从 “active” 到 “ended”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19170668/

相关文章:

drupal - drupal 7 中的 d3.js

python - 在 Python 中将 http 请求时间转换为 unix 时间戳

c# - 如何将C#中的日期字符串变量与sql查询中的日期时间字段进行比较

java - 用于 SaaS 预订应用程序的 Drupal 或框架

php - 如何在 PHP 单元测试中处理对未定义函数的调用

drupal - 是否可以使用常规 HTML 表单作为 Drupal 6.x 自定义模块中 .inc 文件的一部分?

php - 表单提交后 Drupal 7 重定向到特定页面(选项卡)

javascript - 将js日期时间转换为时刻

c# - 为什么 IS NULL 有效但 SQL Parameter with DBNull.Value for DateTime 不起作用?

有关分类术语和用户角色的 Drupal 过滤器 View