Drupal Node Expire 和 Auto Expire —— 广告到期后自动取消发布
我们Drupal 公告板的一个必要功能是让发布的广告在一段时间后自动下架。我建议先使用现成的模块来实现,然后再尝试使用 Rules 模块实现相同的功能。在现有模块中,我找到了两个适用于 Drupal 6 的模块和一个适用于 Drupal 7 的模块,它们分别是:
Node Expire —— 适用于 Drupal 6
Auto Expire —— 适用于 Drupal 6 和 7
Drupal 6 Node Expire
我们先来试试适用于 Drupal 6 的 Node Expire 模块:
http://drupal.org/project/node_expire
我将使用版本 2.06。
安装并启用 Node Expire 模块。
此外,我们还需要安装 Drupal Rules 模块。
现在我们可以控制每种内容类型的发布时间长度。让我们进入“公告”内容类型的编辑界面:
在这里我们可以设置节点在公告板上停留的时间。我们设置为 1 周。使用以下表达式来定义日期:
+1 hour - 从当前时间起 1 小时
+2 hours - 从当前时间起 2 小时
+n hours - 从当前时间起 n 小时
+1 day - 从当前时间起 1 天
+2 days - 从当前时间起 2 天
+n days - 从当前时间起 n 天
+1 week - 1 周
+2 weeks - 2 周
+n weeks - n 周
+1 month - 1 个月
+2 months - 2 个月
+n months - n 个月
+1 month 2 weeks 3 days 3 hours - 从当前时间起 1 个月 2 周 3 天 3 小时
我们试试使用 “1 week” —— 也就是一周。
现在创建一个“公告”类型的节点:
你会看到节点出现了一个自动下架日期,正好是当前日期后一周。是的,今天的日期是 2011-12-02。
在 Node Expire 模块的 readme.txt 文件中,你可以找到用于通过 Rules 模块导入规则的代码。
将 readme.txt 文件中的代码粘贴到导入窗口中:
现在我们将看到一个新的规则,它可以在后台进行编辑:可以设置内容类型过滤器,或更改下架日期。
别忘了设置cron,以便广告能按时自动下架。
Drupal 7 Auto Expire
现在我们来下载并安装 Auto Expire 模块。
Auto Expire 模块不依赖其他模块,因此安装后即可直接使用。只需要设置模块的访问权限,如果希望其他角色能够修改广告的发布时间,则需要为其授予相应权限。
接着进入网站配置页面,选择 Auto Expire:
下面我们详细了解 Auto Expire 的设置:
Article —— Drupal 的基础内容类型,同时也可以选择任何其他内容类型。
勾选 Expire 以启用 Auto Expire 模块的功能。
Days —— 指定选定内容类型的节点将在发布后多少天自动下架。
Warn —— 指定距离下架还有多少天时向作者发送通知,提醒广告即将到期。
Purge —— 指定广告在下架后多少天将从数据库中永久删除。
注意!截至目前,Auto Expire 模块仍在开发中,尚未准备好投入生产使用。(2011-12-07)
设置好你自己的参数,配置好 cron 后,你的广告将会自动下架。
在下一节课程中,我们将学习如何使用 Rules 模块实现类似的功能。