discuz x2.5插件開發傻瓜圖文教程,用demo說話

剛剛接觸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緩存後再試下看


=========================如下爲進階功能===========================

功能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;  
    }  
}

功能3:在後臺讓管理員有更多的配置

(有空再繼)

相關文章
相關標籤/搜索