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
這兩個模塊配合✵✶✷✸✹✺✻✼❄❅,一個產生事件和內容⒜⒝⒞⒟⒠⒡⒢⒣⒤,一個推送事件和內容ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,基本就能實現訂閱功能了웃유ღ♋♂。
看看這個模塊的架構圖ⓚⓛⓜⓝⓞⓟⓠⓡⓢ,如下所示:

當理解模塊的功能ⓣⓤⓥⓦⓧⓨⓩ,使用模塊就比較簡單了❻❼❽❾❿⓫⓬⓭⓮⓯⓰,按如下步驟
- 安裝和啟用模塊⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓。
- 給某個想要訂閱的內容配置訂閱(參考下圖一)♦☜☞☝✍☚☛☟✌✽✾✿❁❃。
- 用戶到個人頁面웃유ღ♋♂,就可以選擇是否要訂閱(參考下圖二)♀☿☼☀☁☂☄。
比如ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,我們有一個新聞類型的內容ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,到編輯頁面⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓,就可以看到✵✶✷✸✹✺✻✼❄❅,有創建⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ、更新☾☽❄☃、刪除⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ、發布等動作的可以訂閱配置ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,一般我們只需要一個就夠了⒜⒝⒞⒟⒠⒡⒢⒣⒤,比如發布ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ。
另外ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,還有可以選擇哪些角色的人可以訂閱①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯,我們全選即可✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴。

配置好之后♦☜☞☝✍☚☛☟✌✽✾✿❁❃,到我的頁面ⓣⓤⓥⓦⓧⓨⓩ,就看到一個subscription☧☬☸✡♁✙♆。,、':∶;,里面就對應了上面的配置☧☬☸✡♁✙♆。,、':∶;,如果打上勾⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,就可以實現訂閱♦☜☞☝✍☚☛☟✌✽✾✿❁❃。
當然☈⊙☉℃℉❅,這個subscription的訂閱☾☽❄☃,可以放到任何地方❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣,那只是界面UI的問題⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓,核心的數據和推送機制都在后臺功能設計好了♦☜☞☝✍☚☛☟✌✽✾✿❁❃,界面怎么改⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯,就比較簡單了ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ。

最后✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴,關于新聞網站的建設♦☜☞☝✍☚☛☟✌✽✾✿❁❃,可以參考我們其他相關文章⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,