查看: 87|回复: 0

制作一个简单的dz插件

[复制链接]

89

主题

8

回帖

31

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
31
发表于 2025-10-2 22:42:08 | 显示全部楼层 |阅读模式
此demo功能是在模板footer部位插入一段javascript代码,这段代码可以是alert提示,也可以是加载广告等等。
第一步:
在config\config_global.php 文件里设置$_config['plugindeveloper'] = 1 如果没这个变量自己加一行。顾名思义,开启插件开发模式,开启后后台会多出现些菜单。

第二步
打开DZ后台->应用->设计新插件,并填入下图信息

点提交后就跳转到了此插件的设置页面,此时会在插件目录自动生成demo文件夹(插件目录(directory)中的设置名称


后台页面先另关,后面还要用到。

第三步
到source/plugin/下创建demo目录,在demo目录里创建demo.class.php文件,内容如下
[PHP] 纯文本查看 复制代码
<?php
if(!defined('IN_DISCUZ')) {
        exit('Access Denied');
}

class plugin_demo {

        function __construct(){

        }

        function global_footer(){

                return '<script>alert("插件我来了")</script>';
        }

}
?>

注意代码中
class plugin_demo {
demo名称


第四步
打开DZ后台->应用->插件,选择“设计”我们刚才创建的demo

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

添加完后点“提交”
第五步
打开DZ后台->应用->插件,“启用”我们的插件

启用后到前台去打开个页面看看,是不是执行了js脚本了

如果不灵,在界面->风格管理->更新css缓存后再试下看
=========================以下为进阶功能===========================
功能1:让插件有安装和反安装能力
在插件目录下添加install.php和uninstall.php
[PHP] 纯文本查看 复制代码
<?php  
if(!defined('IN_DISCUZ')) {  
    exit('Access Denied');  
}  
  
  
//各种安装操作  
$sql = "show tables";  
runquery($sql);  
//或  
DB::query($sql);  
  
  
$finish = TRUE;  
  
?>  



[PHP] 纯文本查看 复制代码
<?php  
if(!defined('IN_DISCUZ')) {  
    exit('Access Denied');  
}  
  
  
//各种反安装操作,恢复安装时的修改  
$sql = "show tables";  
runquery($sql);  
//或  
DB::query($sql);  
  
  
$finish = TRUE;  
  
?>  


然后到设计页面导出一份xml插件配置文件


现在到后台就可以发现安装/卸载功能可以用了

功能2:想在打开所有页面时都自动运行一段PHP代码 和 在特定的脚本里嵌入钩子
[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:[url]http://zc.qq.com/chs/index.html'[/url]); //引导用户去注册QQ号  
        exit;  
    }  
} 




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

申明:本站所发布的一切资源(包括但不限于文章、信息、软件、补丁、注册机、注册信息、解密分析内容等)均来自网络,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果用户自负。发布的信息来自网络,版权争议与本人无关。您必须在下载后的24小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该资源,请支持正版,购买注册,得到更好的正版服务。如有侵权请与本站联系删除本信息。
快速回复 返回顶部 返回列表