Discuz!X2.5_插件制作教程.doc

上传人:大米 文档编号:559788892 上传时间:2024-01-28 格式:DOC 页数:18 大小:1.34MB
返回 下载 相关 举报
Discuz!X2.5_插件制作教程.doc_第1页
第1页 / 共18页
Discuz!X2.5_插件制作教程.doc_第2页
第2页 / 共18页
Discuz!X2.5_插件制作教程.doc_第3页
第3页 / 共18页
Discuz!X2.5_插件制作教程.doc_第4页
第4页 / 共18页
Discuz!X2.5_插件制作教程.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《Discuz!X2.5_插件制作教程.doc》由会员分享,可在线阅读,更多相关《Discuz!X2.5_插件制作教程.doc(18页珍藏版)》请在金锄头文库上搜索。

1、Discuz!X2.5 插件制作教程欢迎您浏览本网页,为满足站长在遇到插件的问题以及在一些插件的需求上,这个系列的插件制作教程就是特别为您准备的。本人做了一段时间的插件,希望我写的内容对你有用当然,我不是DX的研发人员,我只是DX的爱好者。 相信对DX的安装和使用大家都已经有了初步的了解,本内容假定您已经具备如下技能:1. 您的网站或者测试站点可以正常使用2. 您对PHP有基本的了解3. 您对数据库有着基本的了解一旦您满足了上面的要求,那么您可以来了解DX的插件制作了。网站的基本数据在DX的这个框架中,我们会经常用到一些使用的数据,这些数据包括:系统常量、全局变量、系统调用 ,首先我们从系统常

2、量说起系统常量DX里面对一些常量做了自己的定义,接下来的表格列举了,更多的变量可以使用附录里的代码获得。常量名说明DISCUZ_ROOT网站的根目录TIMESTAMP程序执行的时间戳CHARSET程序的语言编码类型IS_ROBOT是否是机器访问FORMHASHHASH值全局变量DX的全局变量事实上全部压缩到了一个变量:$_G里面,接下来的表格列举了常用的$_G数据内部的变量,更多的变量可以使用附录里的代码获得。变量名说明uid用户UIDusername用户名groupid用户组IDclientip用户IP地址charset语言编码siteurl网站地址config网站基本配置,这是一个数组se

3、tting网站基本设置,这是一个数组 系统调用 系统调用里面,恐怕最重要的调用要数DB这个静态对象了。这是一个数据库的静态对象,对其的使用也是经常用到的,其方法包括:变量名说明DB:table()增加了pre的数据库表名DB:delete()删除表中数据DB:insert()向表中插入数据DB:update()更新表中数据DB:fetch()配合DB:query来实现数据资源数据的获取DB:query()执行一条数据库语句DB:fetch_first()获取结果集的第一条记录 另外,系统的一些其它的系统调用,包括:获取用户信息、插入帖子等内容,都可以在:souce/function/ 文件夹下

4、找到对应的文件来查看。 好了,经常用到的数据内容就在上面的列表里面了,附录提供了一些查看全部内容的代码!下一篇将会介绍如何编写 管理中心 插件!附录: 1. 查看全部常量:1. indentinit();/indentindentprint_r(get_defined_constants();/indentindent?/indent2. 查看$_G变量中内容1. indentinit();/indentindentprint_r($_G);/indentindent?/indent这次我们要来制作一个简单的插件来学习如何 新建插件、建立管理中心 。 开始新建 进入管理中心-插件-插件-设计新

5、插件 如图: 按照要求填写 填写好之后,就可以来添加管理中心的设置文件了,这里要注意:你的标识符一旦确定就不能修改!并且,你所写的程序文件都应该放在:source/plugin/标识符/ 这个文件夹下面,例如我们要设置下图的程序,文件:admincp.inc.php应该放在该目录下即可。 点击 提交 之后,返回插件列表,开启我们新建的插件,虽然我们还没有编写admincp.inc.php这个文件,但是因为我们要测试我们编写的内容,我们需要开启此插件才能检验该插件是否可用。 之后,你就会在左边的导航栏里看到 刚才填写的插件名称了,如图: 点击之后发现这个文件不存在 现在我们就可以编写这个文件了,

6、使用你常用的编辑器新建文件:source/plugin/标识符/admincp.inc.php,然后在里面写上如下代码:1. indent/indent该代码如下图显示:这下子,我们就做好了一个简单的可以显示的管理中心的插件了,然后我们可以在此插件的基础上来添加自己的内容了,发挥你的想象力吧现在我遇到一个问题:我想更改自己网站的页面内容,比如我希望能在不使用二次开发更改系统模板的情况下来更改部分布局和内容,我应该怎么做? 似乎现在的DX很强大,但是这样的功能它支持么?很高兴地告诉你:你完全可以做到!你甚至可以通过自己的内容来对页面的任意一部分内容进行更改,这就是DX插件最最强大的地方,当然前提

7、是你需要去了解它。 现在我们来实现一个内容,我们以我自己的一个插件:帖子导读的显示部分为例。 首先,我们需要了解DX的一个概念:嵌入点。 在每个标准的DX页面都有一些DX已经设定好的嵌入点,要查看这些嵌入点,我们需要对系统的代码进行一些修改,方法如下:查找 source/class/class_template.php 中找到以下代码,去除 /for Developer 注释后,更新缓存即可查到。$dev = ;/for Developer $dev = echo $hookid; 更新一下缓存,然后你就会看到如下图的内容: 帖子导读需要我们在每个页面都进行调用,我们需要编写一个调用类: 同样

8、,我们需要在我们的插件目录下来编写这个插件了,在这里,我们以我们最常见的方式来写一段JS代码:HELLO,WORLD!?phpif(!defined(IN_DISCUZ) exit(Access Denied);class plugin_mtestfunction global_footer()return alert(Hello,world!); ;? 保存这个文件为:source/plugin/mtest/m.class.php 假定mtest是你的标识符,然后更新缓存,再点击你的广场页面试试,看看有什么奇迹发生。 可以随意地输出您想要的JS代码,这也就是意味着,即使在一些没有嵌入点的地方

9、,您也可以同输出的JS代码来改变您想作出的改变,当然,嵌入点能做的远远不止如此,那得看您能想到多少了。 现在,您基本上已经可以做常用的插件了。不过,如果您需要一个导航栏怎么办?天啊!我需要一个类似于每日签到 这样的一个签到页面,我应该怎么来做呢? 不用着急,接下来我们就来实验一个导航栏,然后进去之后输出一个hello,world的代码。 首先,我们需要在设计模块里面增加一个导航栏 有了它,我们就可以写:mtest.inc.php这个文件了,不过我们似乎还需要一点点模板的支持,那么我们在这个文件夹下,新建一个文件夹:template,然后在它的下面新建一个文件:mtest.htm,内容如下:te

10、mplate common/headerHELLO,WORLD!template common/footer 在mtest.inc.php这个文件里,我们写入: 然后,更新一下缓存,然后刷新一下站点首页,看看有什么效果?hello,world!导航栏最后的现实 怎么样,是不是很棒?你可以浏览我的以下插件来学习如何使用插件: 1. 每日签到http:/ 2. 帖子导读http:/ 面对问题 然而我们刚刚写完了一个插件,但是我们所要面临的问题才刚刚开始,我们需要考虑的内容很多,这些内容包括: 1. 我使用的语言编码方式是UTF8,我希望那些使用GBK的站长也能使用我的插件 2. 我可能会使用到数据库来建立我需要使用的表,我该如何建立 3. 我怎么描述出我的使用条例或者安装条例 4. 我怎么为我的插件进行插件描述 5. 我的插件发布在哪里,是否需要收费 天啊,我头都大了!我根本没有想过这个问题!如此多的问题迎面而来,我该如何解决?嘿嘿,这个时候就是体现我自己价值的时刻了,我们来慢慢的讲解吧! 语言编码 要解决语言编码的问题比较的麻烦,首先我们要确保我们所有

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号