刚刚接触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; } }
(有空再继)