discuz x3插件开发傻瓜图文教程,用demo说话

此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

  1. <?php  
  2. if(!defined('IN_DISCUZ')) {  
  3.     exit('Access Denied');  
  4. }  
  5.   
  6. class plugin_demo {  
  7.   
  8.     function __construct(){  
  9.           
  10.     }  
  11.   
  12.     function global_footer(){  
  13.           
  14.         return '<script>alert("插件我来了")</script>';  
  15.     }  
  16.       
  17. }  
  18. ?>  

第四步缓存

打开DZ后台->应用->插件,选择“设计”咱们刚才建立的demo
ui


在设计页面里点“模块”,添加一行以下图所示
spa

添加完后点“提交”
.net


第五步

打开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.     }  
相关文章
相关标签/搜索