如何在drupal中“到目前”结束后删除节点?

时间:2014-11-16 23:38:03

标签: calendar drupal-6

我想要做的是删除(删除)"到日期"之后的节点。在创建节点时手动选择。我已经测试了节点过期,日程安排等解决方案,但我不能简单地在节点中使用我已经存在且可变的日期。

这是一个古老的drupal 6,我使用日历似乎有这个选项,但我无法找到原因或如何停止工作。我甚至找不到配置页面。

1 个答案:

答案 0 :(得分:1)

您是否愿意为此创建自定义模块?如果是这样,我可以为此提供一些解决方案的代码示例。它通常是一个单独的cron钩子,可以删除或取消发布超过'到目前为止'的节点。

在您给定的链接中,请查看以下评论​​:https://www.drupal.org/node/28142#comment-48472这会提供一个“正常”的代码示例,可以在30天之后删除该节点。您需要做的就是更改db_query。

如果您使用CCK存储日期字段。确保首先使用多种内容类型,这是为了确保CCK字段现在被拆分为单独的表,而不是将来这样做,这会失败。

您接下来要做的是查询:

$ query =“SELECT nid,uid FROM {node} n LEFT JOIN {content_field_date} d ON n.nid = d.nid WHERE d.field_date_value<'%s'”;   其中'content_field_date'是表的名称,存储日期{content_ {machine_name}}   其中'field_date_value'是该表中存储该值的日期{{machine_name} _ {field_type}}

根据内容在'field_date_value'中的存储方式,您可能需要使用MySQL函数将其转换为Unix时间戳:UNIX_TIMESTAMP,例如UNIX_TIMESTAMP(d.field_date_value)。