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

此demo功能是在模板footer部位插入一段javascript代碼,這段代碼可以是alert提示,也可以是加載廣告等等。

第一步:

在config\config_global.php 文件裏設置$_config['plugindeveloper'] = 1 如果沒這個變量自己加一行。顧名思義,開啓插件開發模式,開啓後後臺會多出現些菜單。


第二步

打開DZ後臺->應用->設計新插件,並填入下圖信息

點提交後就跳轉到了此插件的設置頁面


後臺頁面先另關,後面還要用到。


第三步

到source/plugin/下創建demo目錄,在demo目錄裏創建demo.class.php文件,內容如下

<?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

  1. <?php  
  2. if(!defined('IN_DISCUZ')) {  
  3.     exit('Access Denied');  
  4. }  
  5.   
  6.   
  7. //各種安裝操作  
  8. $sql = "show tables";  
  9. runquery($sql);  
  10. //或  
  11. DB::query($sql);  
  12.   
  13.   
  14. $finish = TRUE;  
  15.   
  16. ?>  

  1. <?php  
  2. if(!defined('IN_DISCUZ')) {  
  3.     exit('Access Denied');  
  4. }  
  5.   
  6.   
  7. //各種反安裝操作,恢復安裝時的修改  
  8. $sql = "show tables";  
  9. runquery($sql);  
  10. //或  
  11. DB::query($sql);  
  12.   
  13.   
  14. $finish = TRUE;  
  15.   
  16. ?>  



然後到設計頁面導出一份xml插件配置文件


將導出的xml文件放到插件目錄下


現在到後臺就可以發現安裝/卸載功能可以用了


功能2:想在打開所有頁面時都自動運行一段PHP代碼 和 在特定的腳本里嵌入鉤子

  1. <?php  
  2.   
  3. if(!defined('IN_DISCUZ')) {  
  4.     exit('Access Denied');  
  5. }  
  6.   
  7.   
  8. class plugin_demo {  
  9.   
  10.     function __construct(){  
  11.           
  12.     }  
  13.     //全局鉤子  
  14.     function common(){  
  15.         global $_G;  
  16.         if($_G['uid']){  
  17.             //經驗值加1點  
  18.         }  
  19.     }  
  20.   
  21.     function global_footer(){  
  22.         return '<script>alert("插件我來了")</script>';  
  23.     }  
  24.       
  25. }  
  26.   
  27. /** 
  28.  * 只有運行member.php下注冊頁面時才運行的鉤子register_top 
  29.  * 
  30.  */  
  31. class plugin_demo_member extends plugin_demo{  
  32.       
  33.     function register_top(){  
  34.         header('location:http://zc.qq.com/chs/index.html'); //引導用戶去註冊QQ號  
  35.         exit;  
  36.     }  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章