discuz回貼通知插件實現-頁面嵌入點(鈎子)


1、如何保證主題被回復時業務代碼被執行。
2、獲得主題,主題發布者,貼子等信息。
3、discuz發送email郵件。
 
discuz使用嵌入點(鈎子)來處理代碼的執行時機。
discuz回貼通知插件實現-頁面嵌入點(鈎子) - 懷素真 - 因上努力 果上隨緣
當用戶開啟插件開發者模式時,頁面上會輸出提供好的預先定義的嵌入點。
 
例如:我們需要在用戶發貼時,告知用戶是否開啟了回貼通知。
discuz回貼通知插件實現-頁面嵌入點(鈎子) - 懷素真 - 因上努力 果上隨緣
1、我們在插件后台添加頁面嵌入
discuz回貼通知插件實現-頁面嵌入點(鈎子) - 懷素真 - 因上努力 果上隨緣
2、在插件目錄下創建noticeme.class.php文件
該文件為類文件,定義該插件的嵌入類,該類中的方法就是嵌入點中的鈎子方法。
 嵌入類:1、全局嵌入類,2、模塊嵌入類
<?php

//判斷是否被常規請求
defined('IN_DISCUZ') or die('Access Denied');

//全局嵌入類
class plugin_插件標識符 {
    
}

//模塊嵌入類
class plugin_插件標識符_forum extends plugin_插件標識符 {
    
}
通過嵌入點,選擇使用嵌入類。
<?php

//判斷是否被常規請求
defined('IN_DISCUZ') or die('Access Denied');

//全局嵌入類
class plugin_post_notice {
    
}

//模塊嵌入類
class plugin_post_notice_forum extends plugin_post_notice {
    //嵌入貼子發表的鈎子函數
    public function post_top() {
        //當前$_G成為全局$_G的一個引用
        global $_G;
        $mForumPostNotice = C::t('#post_notice#forum_post_notice');
        $isNotice = $mForumPostNotice->getNoticeState($_G['uid']);
        
        return $isNotice ? lang('plugin/post_notice', 'enable_notice') : 
        lang('plugin/post_notice', 'disable_notice');
    }
}
discuz回貼通知插件實現-頁面嵌入點(鈎子) - 懷素真 - 因上努力 果上隨緣
 
除了頁面上可以看到的嵌入點,discuz在所有模塊執行前,都會執行嵌入函數(鈎子)。
 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM