discuz x3插件开发傻瓜图文教程,用demo说话
2015-05-29 00:00
323 查看
此demo功能是在模板footer部位插入一段javascript代码,这段代码可以是alert提示,也可以是加载广告等等。
第二步
打开DZ后台->应用->设计新插件,并填入下图信息
点提交后就跳转到了此插件的设置页面
后台页面先另关,后面还要用到。
[php]
view plain
copy
<?php
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
class plugin_demo {
function __construct(){
}
function global_footer(){
return '<script>alert("插件我来了")</script>';
}
}
?>
第四步
打开DZ后台->应用->插件,选择“设计”我们刚才创建的demo
在设计页面里点“模块”,添加一行如下图所示
添加完后点“提交”
启用后到前台去打开个页面看看,是不是执行了js脚本了
如果不灵,在界面->风格管理->更新css缓存后再试下看
=========================以下为进阶功能===========================
[php]
view plain
copy
<?php
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
//各种安装操作
$sql = "show tables";
runquery($sql);
//或
DB::query($sql);
$finish = TRUE;
?>
[php]
view plain
copy
<?php
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
//各种反安装操作,恢复安装时的修改
$sql = "show tables";
runquery($sql);
//或
DB::query($sql);
$finish = TRUE;
?>
然后到设计页面导出一份xml插件配置文件
将导出的xml文件放到插件目录下
现在到后台就可以发现安装/卸载功能可以用了
view plain
copy
<?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;
}
}
第一步:
在config\config_global.php 文件里设置$_config['plugindeveloper'] = 1 如果没这个变量自己加一行。顾名思义,开启插件开发模式,开启后后台会多出现些菜单。第二步
打开DZ后台->应用->设计新插件,并填入下图信息点提交后就跳转到了此插件的设置页面
后台页面先另关,后面还要用到。
第三步
到source/plugin/下创建demo目录,在demo目录里创建demo.class.php文件,内容如下[php]
view plain
copy
<?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]
view plain
copy
<?php
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
//各种安装操作
$sql = "show tables";
runquery($sql);
//或
DB::query($sql);
$finish = TRUE;
?>
[php]
view plain
copy
<?php
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
//各种反安装操作,恢复安装时的修改
$sql = "show tables";
runquery($sql);
//或
DB::query($sql);
$finish = TRUE;
?>
然后到设计页面导出一份xml插件配置文件
将导出的xml文件放到插件目录下
现在到后台就可以发现安装/卸载功能可以用了
功能2:想在打开所有页面时都自动运行一段PHP代码 和 在特定的脚本里嵌入钩子
[php]view plain
copy
<?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;
}
}
相关文章推荐
- 使用 桌面的 chrome 远程调试 Android 的页面
- kindeditor编辑器代码过滤解决方法.
- 4个好用的JS联动选择插件
- MYSQL数据库备份与恢复
- org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in r...
- PHPCMS 核心代码与 www 分离部署
- phpcms前端页面上传文件
- 淘宝的ip地址库
- phpcmsV9中表单向导在js调用里日期控件在IE下报Calendar未定义的解决办法
- css position:absolute 如何居中对齐
- 2015版App推广全攻略(完整版)
- 使用Dreamweaver批量删除PHP项目中的单行注释和多行注释
- Mindjet.MindManager“参数错误”解决办法,适用于9.0、10.0和14.0
- 如何实现phpcms v9_4X版本tag的伪静态?
- 不加好友实现QQ在线代码状态临时会话
- 安装IntelliJ IDEA热部署tomcat插件JreBel
- 为 Web 设计师准备的 25+ 款扁平 UI 工具包
- wap网站获取访问者手机号PHP类文件
- 新站如何快速的度过考察期并避免进入沙盒期
- struts2 修改action的后缀