此demo功能是在模板footer部位插入一段javascript代碼,這段代碼能夠是alert提示,也能夠是加載廣告等等。javascript
第一步:
在config\config_global.php 文件裏設置$_config['plugindeveloper'] = 1 若是沒這個變量本身加一行。顧名思義,開啓插件開發模式,開啓後後臺會多出現些菜單。php
第二步
打開DZ後臺->應用->設計新插件,並填入下圖信息css
點提交後就跳轉到了此插件的設置頁面html
後臺頁面先另關,後面還要用到。java
第三步
到source/plugin/下建立demo目錄,在demo目錄裏建立demo.class.php文件,內容以下sql
- <?php
- if(!defined('IN_DISCUZ')) {
- exit('Access Denied');
- }
-
- class plugin_demo {
-
- function __construct(){
-
- }
-
- function global_footer(){
-
- return '<script>alert("插件我來了")</script>';
- }
-
- }
- ?>
第四步緩存
打開DZ後臺->應用->插件,選擇「設計」咱們剛纔建立的demo
ui
在設計頁面裏點「模塊」,添加一行以下圖所示
spa
添加完後點「提交」
.net
第五步
打開DZ後臺->應用->插件,「啓用」咱們的插件
啓用後到前臺去打開個頁面看看,是否是執行了js腳本了
若是不靈,在界面->風格管理->更新css緩存後再試下看
=========================如下爲進階功能===========================
功能1:讓插件有安裝和反安裝能力
在插件目錄下添加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文件放到插件目錄下
如今到後臺就能夠發現安裝/卸載功能能夠用了
功能2:想在打開全部頁面時都自動運行一段PHP代碼 和 在特定的腳本里嵌入鉤子
- <?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;
- }
- }