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

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

刚刚接触DZ的插件开发,记个傻瓜图文教程,一是分享给初学者,二是方便自己以后回忆。

本篇文章适合人群:有一定的PHP开发经验,想通过一个简单明了的demo快速了解插件开发基本步骤。

相关资源:dz官方wiki http://dev.discuz.org/wiki/#.E6.8F.92.E4.BB.B6.E6.9C.BA.E5.88.B6

此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

<?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文件放到插件目录下

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


功能2:想在打开所有页面时都自动运行一段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:http://zc.qq.com/chs/index.html'); //引导用户去注册QQ号  exit;  }  
}

功能3:在后台让管理员有更多的配置

(有空再继)

转载于:https://my.oschina.net/mickelfeng/blog/174893

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uboot源码——gd_t 类型、bd_t 类型

bd_t、gd_t是u-boot中两个重要的数据结构&#xff0c;初始化操作中很多全局变量都要靠这两个数据结构来保存或传递。 两者分别定义在include/asm-arm/u-boot.h、include/asm-arm/global_data.h中。 一、bd_t 类型 struct bd_info 这个结构体类型&#xff0c;主要是用来保存板子…

代码抽象的三原则

软件开发是"抽象化"原则&#xff08;Abstraction&#xff09;的一种体现。 所谓"抽象化"&#xff0c;就是指从具体问题中&#xff0c;提取出具有共性的模式&#xff0c;再使用通用的解决方法加以处理。 开发软件的时候&#xff0c;一方面&#xff0c;我们总…

对图像高频信号和低频信号的理解

今天开始讲图像了&#xff0c;讲了很多在频域处理的方法&#xff0c;回来复习一下图像的频域。 一 、关于图像高频和低频 1.1 对图像高频信号和低频信号的理解 图像中的低频信号和高频信号也叫做低频分量和高频分量。 简单一点说&#xff0c;图像中的高频分量&#xff0c;…

关于开源中国手机App的说明

随着移动互联网大潮的快速发展&#xff0c;开源中国社区作为国内大型IT技术人员社区也推出了手机移动客户端&#xff0c;覆盖iOS&#xff0c;Android以及Windows Phone这三个手机平台。主要为了能让我们的用户能随时随地的与开源中国社区的用户进行交流与互动。我们需要App实现…

uva 11174(排列组合+搜索)

依然是liurujia计数练习题。依然是自己想没想出来&#xff0c;在MOD是素数的情况下除以x即为乘x的逆。这个真心以前没听过&#xff0c;用了这个方法后处理就变得十分巧妙。 整个程序步骤还是很清晰的&#xff0c;先上来算阶乘与逆&#xff08;求数的逆还是有点没理解透&#xf…

将Source Insight的代码拷贝到word文档的方法

1、用Source Insight打开文件后&#xff0c;File->Print&#xff1b; 2、在 常规->选择打印机中&#xff0c;选择“Adobe PDF”&#xff08;或者其他pdf打印机&#xff09;&#xff1b; 3、点确定&#xff0c;输出一个pdf文件了&#xff0c;然后去pdf文件里面复制代码&…

Oracle 学习笔记

2019_6_27日 星期四 第一章 oracle从入门到精通Laarry Ellison: 拉里.埃里森Bruce Scott: Tiger PointBase(WebLogic软件产品中附赠的数据库产品) 1.1 oracle安装oracle从实际的开发来讲&#xff0c;oracle11g是使用较多的&#xff0c;oracle的开发主要分为两类&#xff1a;.数…

引导滤波的opencv实现以及解释

参考&#xff1a; https://blog.csdn.net/qq_36006553/article/details/78594205

S5PV210的地址映射简介

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 S5PV210属于ARM Cortex-A8架构&#xff0c;是32位的CPU&#xff0c;有32根地址线和32根数据线。 这表明该CPU的寻址空间为4G&#xff0c;地址映射关系见下述。 S5PV210的地址映射 S5PV210的地址映射…

本杰明 富兰克林 道德13准则

富兰克林认为&#xff0c;好的习惯必须加以培养&#xff0c;坏的习惯必须打破。为了克服缺点&#xff0c;使自己少犯错误&#xff0c;他制定了13条道德准则。他说&#xff1a;“我打算获得这13种美德&#xff0c;并养成习惯。为了不致分散精力&#xff0c;我不指望一下子全做到…

树莓派(Raspberry Pi):完美的家用服务器

出处&#xff1a;http://linux.cn/thread/11884/1/1/ 树莓派&#xff08;Raspberry Pi&#xff09;&#xff1a;完美的家用服务器 自从树莓派发布后&#xff0c;所有在互联网上的网站为此激动人心的设备提供了很多有趣和具有挑战性的使用方法。虽然这些想法都很棒&#xff0c;但…

无需删除D盘文件,将D盘空间分给C盘

做深度学习或机器学习的小伙伴&#xff0c;不知不觉就发现自己电脑C盘空间不够用了&#xff0c;但是D盘空间看着又很充裕&#xff0c;那么问题来了&#xff0c;怎么将D盘空间分给C盘呢&#xff0c;网上搜索了一圈&#xff0c;发现很多方法需要删除D盘文件才能将空间分享给C盘&a…

[NOI2019]回家路线

LOJ3156 题面就不放了 , 放一下数据范围 . 看到 \(n<2000,m<4000\) 就想到直接 \(dfs\) 到底 , 居然就过了前 \(4\)个 样例 , 最后一个要 \(2s\) . 后来写了 \(AB0\) 的 \(5\) 分 , 我知道写的是错的 , 还是交了以下这份代码 . ( LOJ 数据应该是官方数据 ) 得分 \(70\) .…

重定位——重定位的简介与操作(涉及位置无关码)

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 参考博客&#xff1a;位置无关码、位置有关码 - biaohc - 博客园 一、链接地址与运行地址 1、链接地址 链接地址&#xff0c;是指程序员通过Makefile中“ -Ttext xxx ”或者在链接脚本中指定的地址…

前端手册

一直觉得前端开发缺个手册&#xff0c;这是个体力活。不过总得有人来干。 今天闲来无事&#xff0c;把一些工具(online和client的)、常用网址、以及经验总结等罗列出来和大家分享下。这个标题起地大了点&#xff0c;肯定会有很多地方没列到&#xff0c;包括类目的分法也可能考虑…

如何随机选取1000个关键字

Q:给定一个数据流&#xff0c;其中包含无穷尽的搜索关键字&#xff08;比如&#xff0c;人们在谷歌搜索时不断输入的关键字&#xff09;。如何才能从这个无穷尽的流中随机的选取1000个关键字&#xff1f; A:首先定义长度为1000的数组&#xff0c;将前1000个关键字放置到数组中。…

重定位——链接脚本的简介

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 参考博客 链接脚本基本语法_Nerazzur的博客-CSDN博客_链接脚本语法&#xff08;推荐&#xff09; 链接脚本语法_ABCamus的博客-CSDN博客_链接脚本语法 链接地址、运行地址、加载地址、存储地址_嵌入…

OpenCV学习(27) 直方图(4)

我们可以利用OpenCV的直方图&#xff0c;backproject直方图和meanshift算法来跟踪物体。下面通过简单的例子来说明如何实现跟踪算法&#xff0c;我们有两幅狒狒的图片&#xff0c;如下图所示&#xff1a;我们首先在左图中框选狒狒的脸&#xff0c;计算出框选区域的色度(HSV空间…

IIS启用页面Gzip压缩实现说明

HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。 HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或CSS文件。 压缩的最大好处就是降低了网络传输的数据量&#xff0c;从而提高客户端浏览器的访问速度。 当然&#xff0c;同时也会增加一点点服务器的负担。G…

MySQL源码编译与初始化

MySQL源码编译与初始化 链接&#xff1a;https://pan.baidu.com/s/1ANGg3Kd_28BzQrA5ya17fQ 提取码&#xff1a;ekpy 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 1.MySQL简介 1.1数据库有很多种类&#xff1a; 关系型数据库--->MySQL Oracle非关系型数据库…