剛剛接觸DZ的插件開發,記個傻瓜圖文教程,一是分享給初學者,二是方便本身之後回憶。 javascript
本篇文章適合人羣:有必定的PHP開發經驗,想經過一個簡單明瞭的demo快速瞭解插件開發基本步驟。 php
相關資源:dz官方wiki http://dev.discuz.org/wiki/#.E6.8F.92.E4.BB.B6.E6.9C.BA.E5.88.B6 css
此demo功能是在模板footer部位插入一段javascript代碼,這段代碼能夠是alert提示,也能夠是加載廣告等等。 html
在config\config_global.php 文件裏設置$_config['plugindeveloper'] = 1 若是沒這個變量本身加一行。顧名思義,開啓插件開發模式,開啓後後臺會多出現些菜單。 java
打開DZ後臺->應用->設計新插件,並填入下圖信息 sql
點提交後就跳轉到了此插件的設置頁面 緩存
後臺頁面先另關,後面還要用到。 ui
到source/plugin/下建立demo目錄,在demo目錄裏建立demo.class.php文件,內容以下 spa
<?php if(!defined('IN_DISCUZ')) { exit('Access Denied'); } class plugin_demo { function __construct(){ } function global_footer(){ return '<script>alert("插件我來了")</script>'; } }
打開DZ後臺->應用->插件,選擇「設計」咱們剛纔建立的demo 插件
在設計頁面裏點「模塊」,添加一行以下圖所示
添加完後點「提交」
打開DZ後臺->應用->插件,「啓用」咱們的插件
啓用後到前臺去打開個頁面看看,是否是執行了js腳本了
若是不靈,在界面->風格管理->更新css緩存後再試下看
=========================如下爲進階功能===========================
在插件目錄下添加install.php和uninstall.php
<?php if(!defined('IN_DISCUZ')) { exit('Access Denied'); } //各類安裝操做 $sql = "show tables"; runquery($sql); //或 DB::query($sql); $finish = TRUE; ?>
<?php if(!defined('IN_DISCUZ')) { exit('Access Denied'); } //各類反安裝操做,恢復安裝時的修改 $sql = "show tables"; runquery($sql); //或 DB::query($sql); $finish = TRUE; ?>
而後到設計頁面導出一份xml插件配置文件
將導出的xml文件放到插件目錄下
如今到後臺就能夠發現安裝/卸載功能能夠用了
<?php if(!defined('IN_DISCUZ')) { exit('Access Denied'); } class plugin_demo { function __construct(){ } //全局鉤子 function common(){ global $_G; if($_G['uid']){ //經驗值加1點 } } function global_footer(){ return '<script>alert("插件我來了")</script>'; } } /** * 只有運行member.php下注冊頁面時才運行的鉤子register_top * */ class plugin_demo_member extends plugin_demo{ function register_top(){ header('location:http://zc.qq.com/chs/index.html'); //引導用戶去註冊QQ號 exit; } }
(有空再繼)