logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动

Drupal Node Expire 和 Auto Expire —— 广告到期后自动取消发布

14/10/2025, by Ivan

我们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 Node Expire

此外,我们还需要安装 Drupal Rules 模块。

Drupal Node Expire 模块

现在我们可以控制每种内容类型的发布时间长度。让我们进入“公告”内容类型的编辑界面:

Drupal Node Expire 设置

在这里我们可以设置节点在公告板上停留的时间。我们设置为 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” —— 也就是一周。

Node Expire 日期

现在创建一个“公告”类型的节点:

Expiration date

你会看到节点出现了一个自动下架日期,正好是当前日期后一周。是的,今天的日期是 2011-12-02。

在 Node Expire 模块的 readme.txt 文件中,你可以找到用于通过 Rules 模块导入规则的代码。

Drupal Rules

将 readme.txt 文件中的代码粘贴到导入窗口中:

Drupal Rules 导入

现在我们将看到一个新的规则,它可以在后台进行编辑:可以设置内容类型过滤器,或更改下架日期。

Drupal rule

别忘了设置cron,以便广告能按时自动下架。

Drupal 7 Auto Expire

Drupal Auto Expire

现在我们来下载并安装 Auto Expire 模块。

Auto Expire 模块不依赖其他模块,因此安装后即可直接使用。只需要设置模块的访问权限,如果希望其他角色能够修改广告的发布时间,则需要为其授予相应权限。

Drupal 权限

接着进入网站配置页面,选择 Auto Expire:

Drupal Auto Expire 设置

下面我们详细了解 Auto Expire 的设置:

Drupal Auto Expire 内容类型

Article —— Drupal 的基础内容类型,同时也可以选择任何其他内容类型。

勾选 Expire 以启用 Auto Expire 模块的功能。

Days —— 指定选定内容类型的节点将在发布后多少天自动下架。

Warn —— 指定距离下架还有多少天时向作者发送通知,提醒广告即将到期。

Purge —— 指定广告在下架后多少天将从数据库中永久删除。

 

注意!截至目前,Auto Expire 模块仍在开发中,尚未准备好投入生产使用。(2011-12-07)

 

设置好你自己的参数,配置好 cron 后,你的广告将会自动下架。

在下一节课程中,我们将学习如何使用 Rules 模块实现类似的功能。