我希望Drupal 7在给定的自定义内容类型日期过后自动取消发布内容。任何想法/想法将不胜感激。
答案 0 :(得分:2)
您可能需要查看Rules module。 如果您希望您的用户/内容提交者安排到期时间,请查看Schedule module。
答案 1 :(得分:1)
Auto Expire 我认为这个模块符合您的要求
答案 2 :(得分:0)
您只需使用hook_cron()即可编写自定义模块(小型模块)。让函数检索所有节点,检查过期日期,如果过期,则将状态设置为0. http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_cron/7。
我没有时间写它,但这是该模块的一般想法:
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.
}
答案 3 :(得分:0)
以下是在过期日期过后我用来取消发布内容的查询:
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
因为它在一个查询中都很好并且运行得很快。