17.
XOOPS通知功能(下)
一、 讓通知功能可以設定
- 複製notification_update.php到模組根目錄中,使通知功能得以設定。
二、 程式中加入觸發事件:
- 讓程式達到通知的條件後,就可以自動寄出通知信,前四個參數是必要的:
$notification_handler =& xoops_gethandler('notification');
$notification_handler->triggerEvent ($類別名稱, $項目編號, $事件名稱, $額外標籤陣列, $僅發佈通知的使用者編號陣列, $模組編號, $觸發事件的當事人編號);
-
- (1) $類別名稱:即xoops_version.php中設定的通知「類別」中的name。
- (2) $項目編號:唯一編號欄位的編號,假如「類別」是全域類別,那麼輸入0即可。
- (3) $事件名稱:即xoops_version.php中所設定事件,請輸入字串。
- (4) $額外標籤陣列:請輸入陣列。此參數是讓您加入自訂的標籤,這些標籤將會用在mail的樣版中,「標籤名稱」當做陣列索引,「標籤內容」則是陣列值,例如我們想自己做一個可以顯示觸發事件時當下的時間之標籤,如{ADD_TIME},那麼可以這麼寫:$extra_tags['DOC_TITLE'] = $_POST['note_title'];
- (5) $僅發佈通知的使用者編號陣列:請輸入陣列。假如您希望只有特定使用者可以使用此通知事件,那麼,請將這些使用者的編號放入此陣列中。
- (6) $模組編號:請輸入模組編號,預設就是目前的模組。
- (7) $觸發事件的當事人編號:將不寄通知給他,預設為目前的使用者。
- 取得新增編號的寫法:$note_sn=$xoopsDB->getInsertId();
三、 通知內容的樣版檔
- 製作通知內容的樣版,也就是要來設計寄給會員的通知內容。
- 通知信樣版放在模組的「language/語系/mail_template」目錄中,副檔名均為.tpl
- (1) {X_SITEURL}:網站的網址
- (2) {X_SITENAME}:網站的名稱
- (3) {X_ADMINMAIL}:管理者的 Email位址
- (4) {X_UNAME}:收信者名稱
- (5) {X_UID}:收信者的編號
- (6) {X_UACTLINK}:使用者的帳號啟動連結(此功能您可能用不到,因為只有註冊時通知信才會用到而已)
- (7) {X_MODULE} :模組名稱
- (8) {X_MODULE_URL}:模組首頁的連結
- (9) {X_NOTIFY_EVENT}:被觸發的事件
- (10) {X_NOTIFY_CATEGORY}:事件所屬的類別
- (11) {X_UNSUBSCRIBE_URL}:使用者的「通知」管理頁面連結
- 測試時,建議您使用另一個身份登入,因為通知訊息預設是不會通知當事者的,所以,您自己發的新聞,自己可能會收不到通知信。
四、 刪除通知
- 刪除文章時,也要順便刪除通知:
xoops_notification_deletebyitem ($模組編號,$類別名稱, $項目編號);
- 取得模組編號:$xoopsModule->getVar('mid');