找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 665|回复: 0

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

[复制链接]
发表于 2023-3-25 22:16 | 显示全部楼层 |阅读模式

此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. $finish = TRUE;  
  14.  
  15. ?>
 
  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }
  5.  
  6. //各种反安装操作,恢复安装时的修改
  7. $sql = "show tables";
  8. runquery($sql);
  9. //或
  10. DB::query($sql);
  11.  
  12.  
  13. $finish = TRUE;
  14.  
  15. ?>
 

 

然后到设计页面导出一份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.     function common(){
  14.         global $_G;
  15.         if($_G['uid']){
  16.             //经验值加1点
  17.         }
  18.     }
  19.  
  20.     function global_footer(){
  21.         return '<script>alert("插件我来了")</script>';
  22.     }
  23.  
  24. }
  25.  
  26. /**
  27.  * 只有运行member.php下注册页面时才运行的钩子register_top
  28.  */
  29. class plugin_demo_member extends plugin_demo{
  30.  
  31.     function register_top(){
  32.         header('location:http://zc.qq.com/chs/index.html'); //引导用户去注册QQ号
  33.         exit;
  34.     }
  35. }

源文地址:https://blog.csdn.net/oyzl68/article/details/11094843

本帖子中包含更多资源

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

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

本版积分规则

Archiver|手机版|小黑屋|学习笔记

GMT+8, 2024-4-28 14:27 , Processed in 0.034649 second(s), 13 queries , APCu On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表