CMS如何实现内容订阅和邮件推送功能?

 

内容推送和邮件订阅功能一般比较比较常用,总结了一下,会有如下两种场景,

场景一、新闻网站,内容订阅。如果每次有新的信息、通知、文章发布出来,有很多用户需要订阅。

场景二、社交网站,类似关注。某个人有新的动态、评论、头条发出,及时通知我。

这些功能基本都属于CMS里面的功能,即使不做到CMS里面,但是内容推送也要从CMS做,所以事件触发、推送都需要从CMS里面发起。

本文就通过Drupal如何实现内容订阅和邮件推送功能,做一个简单分析和实现。

 

 

内容推送的架构模式

 

实际的需求如上所说,在CMS里面,我们转述一下,就是要让任何类型的内容,可以配置成能被订阅,然后订阅成功之后,如果这个类型的内容,有新发布,就推送给订阅者。

所以,总体的步骤就是: 

1. 事件的触发

2. 事件的内容生成以及接受者列表

3. 传送(传送方式可以有多种,比如Email、SMS、Social Media都是渠道)

 

 

Drupal的设计思路

 

Drupal里面有很多成熟的模块,可以实现这个功能,比如Notification、Subscription等等,不过有的模块太重或者已经没有维护,我们今天选择的是一个叫DANSE的模块,全称 Audit - Notification - Subscription - Event(监视-通知-订阅-事件),名字有点绕,但是基本是涵盖所有功能范围的模块。另外,还有一个模块,叫Push Framework,就是推送者。

https://www.drupal.org/project/danse 
https://www.drupal.org/project/push_framework 

这两个模块配合,一个产生事件和内容,一个推送事件和内容,基本就能实现订阅功能了。

看看这个模块的架构图,如下所示:

 

当理解模块的功能,使用模块就比较简单了,按如下步骤

  1. 安装和启用模块。
  2. 给某个想要订阅的内容配置订阅(参考下图一)。
  3. 用户到个人页面,就可以选择是否要订阅(参考下图二)

比如,我们有一个新闻类型的内容,到编辑页面,就可以看到,有创建、更新、删除、发布等动作的可以订阅配置,一般我们只需要一个就够了,比如发布。

另外,还有可以选择哪些角色的人可以订阅,我们全选即可。

 

 

配置好之后,到我的页面,就看到一个subscription,里面就对应了上面的配置,如果打上勾,就可以实现订阅。

当然,这个subscription的订阅,可以放到任何地方,那只是界面UI的问题,核心的数据和推送机制都在后台功能设计好了,界面怎么改,就比较简单了。

 

 

 

最后,关于新闻网站的建设,可以参考我们其他相关文章,

  1. 如何通过开源方案自建视频课程平台
  2. 在线视频教育学习平台介绍
  3. 构建英文网站应该用什么框架?
  4. 常见的CMS平台比较
  5. 外贸网站如何实现网站多语言版本开发?