iionly / expirationdate
提供了一种为实体设置过期日期并在该日期后删除实体的方法。
Requires
- composer/installers: >=1.0.8
This package is auto-updated.
Last update: 2024-09-14 23:56:10 UTC
README
最新版本:3.3.0
发布日期:2021-02-14
联系: iionly@gmx.de
许可证:GNU通用公共许可证版本2
版权:© Brett Profitt(原始开发者)/ iionly(Elgg 1.8及其以后版本)
描述
Expirationdate 插件可以用来为实体定义一个过期日期,并通过 cron 作业自动删除它们。该插件在你的网站上不提供用户界面(除了在管理员部分设置所需的 cron 间隔之外)。
例如,此插件可以选择与 Elggx Userpoints 插件一起使用。
如果你只想使用 Expirationdate 插件与已经实现过期日期机制的另一个插件一起使用,你只需像其他 Elgg 插件一样启用它,并在插件设置中设置所需的 cron 间隔。此外,你的服务器上至少必须配置了此间隔的 cron 作业!
如果你打算在你的插件开发中使用 Expirationdate 插件包含的方法,请继续阅读。
安装
- 如果你已安装 Expirationdate 插件的先前版本,请在你的网站管理员部分禁用该插件,然后从 Elgg 安装模式的 mod 目录中删除 expirationdate 文件夹,
- 将 expirationdate 文件夹复制到 Elgg 安装模式的 mod 目录中,
- 在你的网站管理员部分启用 Expirationdate 插件,并在 Expirationdate 插件设置中设置所需的 cron 间隔。
使用方法
按照 Elgg 文档中的说明配置 Elgg 的 cron。
安装并启用 Expirationdate 插件。请确保将插件周期设置为与你的 cron 作业相匹配的内容。
在你的插件中,通过以下方式设置实体的过期日期
expirationdate_set($entity->guid, $expiration_date_string, bool);
其中 $expiration_date_string 是一个有效的 strtotime() 字符串。如果第 3 个参数为 true,则实体将被禁用而不是删除。
通过以下方式取消设置过期日期
expirationdate_unset($entity->guid);
在实体被删除之前,将调用插件钩子 expirationdate:expirate_entity,并将 $param 设置为
array('entity' => 实体对象)
如果你为此钩子注册了一个函数,除非该函数返回 true,否则实体将不会删除/禁用。
每个具有过期日期的实体将通过插件钩子 expirationdate:will_expire_entity 传递,并将 $param 设置为
array('expirationdate' => 过期时间的戳,'entity' => 实体对象)
这可以用来发送警告电子邮件等。