Drupal 7 Drupal 7能否在自定义内容类型日期过后自动取消发布内容?

Drupal 7 Drupal 7能否在自定义内容类型日期过后自动取消发布内容?,drupal-7,content-type,Drupal 7,Content Type,我希望Drupal 7在给定的自定义内容类型日期过后自动取消发布内容。如果您有任何想法/想法,我们将不胜感激。您可能想看看。 如果您希望您的用户/内容提交者安排到期时间,请查看。 我认为这个模块满足了您的需求您可以编写一个自定义模块(小模块),只需一个hook_cron()。让函数检索所有节点,检查过期日期,如果过期,则将状态设置为0 我没有时间写,但以下是模块的总体思路: function MYMOUDULE_cron() { // db_query to select all nodes

我希望Drupal 7在给定的自定义内容类型日期过后自动取消发布内容。如果您有任何想法/想法,我们将不胜感激。

您可能想看看。 如果您希望您的用户/内容提交者安排到期时间,请查看。


我认为这个模块满足了您的需求

您可以编写一个自定义模块(小模块),只需一个hook_cron()。让函数检索所有节点,检查过期日期,如果过期,则将状态设置为0

我没有时间写,但以下是模块的总体思路:

function MYMOUDULE_cron() {
  // db_query to select all nodes with 
  // your date field and status = 1 (published)
  // loop through the $result, performing node_load as applicable, modify the 
  // $node obj with status = 0 | 1 depending upon
  // the date. Then node_save() the $node obj.
}

以下是我用于在过期后取消发布内容的查询:

UPDATE node n
INNER JOIN field_data_field_expiry_date e ON e.entity_id = n.nid
SET n.`status` = 0
WHERE STR_TO_DATE(e.field_expiry_date_value, '%Y-%m-%d %k:%i:%S') < NOW() AND n.`status` = 1
更新节点n
e.entity上的内部联接字段\数据\字段\到期\日期e\U id=n.nid
设置n.`status`=0
其中STR_TO_DATE(例如字段'u expiration_DATE_value',%Y-%m-%d%k:%i:%S')

因为它是一个集所有功能于一身的查询,所以运行起来又好又快。

我检查了它,但我不知道如何使它与自定义日期字段一起工作。很接近了。我希望它在自定义内容类型中指定的日期(时间戳)过期。所以我认为Scheduler完成了这项工作。有人知道如何工作的示例吗?当我尝试添加操作时,调度程序总是为我设置错误。