Drupal9下配置scheduler模块·实现定时发布内容功能

  网站定时发布内容的功能,一般的客户都会要求开发者给予实现。白龙网实际开发过程中也经常遇到这样的开发需求。在drupal9系统中,用一个模块scheduler,进行简单的配置,就可以快速实现。
 
  一、模块依赖
 
  与scheduler有依赖关系的模块有3个,分别是: Typed-Data、Rules、Scheduler-Rules-Integration。按照顺序分别安装即可。当然,如果对drush用的比较熟的话,在命令行环境下操作,解决模块间的依赖就更简单了。
 
  二、配置实体
 
  Drupal9自动发布内容的功能可以在任何实体中使用,即:安装scheduler以及相关模块后,系统会在内容实体中添加一scheduler菜单以配置自动发布内容的功能。
 
  1、启用功能
 
  进入“/admin/structure/types”界面,打开目标内容实体,例如“新闻中心”实体。在“/manage/news”界面,点击新增的一个“scheduler”的菜单,分别勾选“定时发布”、“取消定义发布”两个选项。
 
  2、定时发布
 
  切换到“/node/add/news”界面发布文章时,你会发现,这个界面新增了“SCHEDULING-OPTIONS(Notscheduled)”选项。在此可以自定义自动发布文章的时间。发布时间可以通过弹窗的方式的输入,也可以直接手动输入文本类型的日期。填写新闻相关内容后,点击保存发布内容。
 
  三、触发程序
 
  Drupal9的scheduler模块自动发布内容的功能有个缺陷,就是设置指定日期发布指定内容后,系统无法在指定日期自动发布内容,必须在到达指定日期后,由管理员手动运行一下cron,内容才能发布出去。用官方的说法解释,那就是使用任务计划,触发自动发布内容程序。
 
  例如,我们要指定一篇文章在5月30日15:30分发布。那么你可以提前几天把内容上传到网站并指定发布日期为5月30日15:30分。到5月30日15:30分时/后,需要再次登陆后台,进入“/admin/config/content/scheduler/cron”界面,点击“Run-Scheduler's-lightweight-cron-now”按钮。然后,再点击“保存配置”。如此操作,文章才能正常发布。
 
  Drupal9的这个自动发布内容的功能,感觉有点类似于草稿箱,只是把内容先编辑好,保存到网站的后台。然后在到了指定日期,需要发布的时候,要到后台再次运行cron去执行程序。内容可一次性多上传些,但是每次到达指定日期发布时,要多一个运行CRON的动作。