DiscuzX25插件制作教程Word格式文档下载.docx
- 文档编号:20276824
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:13
- 大小:1.32MB
DiscuzX25插件制作教程Word格式文档下载.docx
《DiscuzX25插件制作教程Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《DiscuzX25插件制作教程Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
DX的全局变量事实上全部压缩到了一个变量:
$_G里面,接下来的表格列举了常用的$_G数据内部的变量,更多的变量可以使用附录里的代码获得。
变量名
uid
用户UID
username
用户名
groupid
用户组ID
clientip
用户IP地址
charset
语言编码
siteurl
网站地址
config
网站基本配置,这是一个数组
setting
网站基本设置,这是一个数组
系统调用
系统调用里面,恐怕最重要的调用要数DB这个静态对象了。
这是一个数据库的静态对象,对其的使用也是经常用到的,其方法包括:
DB:
:
table()
增加了pre的数据库表名
delete()
删除表中数据
insert()
向表中插入数据
update()
更新表中数据
fetch()
配合DB:
query来实现数据资源数据的获取
query()
执行一条数据库语句
fetch_first()
获取结果集的第一条记录
另外,系统的一些其它的系统调用,包括:
获取用户信息、插入帖子等内容,都可以在:
souce/function/文件夹下找到对应的文件来查看。
好了,经常用到的数据内容就在上面的列表里面了,附录提供了一些查看全部内容的代码!
下一篇将会介绍如何编写管理中心插件!
附录:
1.查看全部常量:
1.[indent]<
?
php[/indent][indent]require_once'
./source/class/class_core.php'
;
[/indent][indent]require_once'
./source/function/function_home.php'
[/indent][indent]$discuz=&
discuz_core:
instance();
[/indent][indent]$discuz->
init();
[/indent][indent]print_r(get_defined_constants());
[/indent][indent]?
>
[/indent]
2.查看$_G变量中内容
[/indent][indent]print_r($_G);
这次我们要来制作一个简单的插件来学习如何新建插件、建立管理中心。
开始新建
进入管理中心-》插件-》插件-》设计新插件如图:
按照要求填写
填写好之后,就可以来添加管理中心的设置文件了,这里要注意:
你的标识符一旦确定就不能修改!
并且,你所写的程序文件都应该放在:
source/plugin/标识符/这个文件夹下面,例如我们要设置下图的程序,文件:
admincp.inc.php应该放在该目录下即可。
点击提交之后,返回插件列表,开启我们新建的插件,虽然我们还没有编写admincp.inc.php这个文件,但是因为我们要测试我们编写的内容,我们需要开启此插件才能检验该插件是否可用。
之后,你就会在左边的导航栏里看到刚才填写的插件名称了,如图:
点击之后发现这个文件不存在
现在我们就可以编写这个文件了,使用你常用的编辑器新建文件:
source/plugin/标识符/admincp.inc.php,然后在里面写上如下代码:
php[/indent][indent]if(!
defined('
IN_DISCUZ'
)){[/indent][indent]
2.exit('
AccessDenied'
);
[/indent][indent]}[/indent][indent]showtips($templatelang['
sitemap'
]['
sitemap_tips'
]);
[/indent][indent]showformheader('
plugins&
operation=config&
do='
.$pluginid.'
&
identifier=msign&
pmod=admincp'
[/indent][indent]showtableheader();
[/indent][indent]showsetting('
启用'
'
signsetting[enable]'
关闭提示'
'
signsetting[disable_info]'
'
textarea'
[/indent][indent]showsubmit('
submit'
[/indent][indent]showtablefooter();
[/indent][indent]showformfooter();
该代码如下图显示:
这下子,我们就做好了一个简单的可以显示的管理中心的插件了,然后我们可以在此插件的基础上来添加自己的内容了,发挥你的想象力吧~
现在我遇到一个问题:
我想更改自己网站的页面内容,比如我希望能在不使用二次开发更改系统模板的情况下来更改部分布局和内容,我应该怎么做?
似乎现在的DX很强大,但是这样的功能它支持么?
很高兴地告诉你:
你完全可以做到!
你甚至可以通过自己的内容来对页面的任意一部分内容进行更改,这就是DX插件最最强大的地方,当然前提是你需要去了解它。
现在我们来实现一个内容,我们以我自己的一个插件:
帖子导读的显示部分为例。
首先,我们需要了解DX的一个概念:
嵌入点。
在每个标准的DX页面都有一些DX已经设定好的嵌入点,要查看这些嵌入点,我们需要对系统的代码进行一些修改,方法如下:
查找source/class/class_template.php中找到以下代码,去除//forDeveloper注释后,更新缓存即可查到。
$dev='
//forDeveloper$dev="
echo'
[$hookid]'
"
更新一下缓存,然后你就会看到如下图的内容:
帖子导读需要我们在每个页面都进行调用,我们需要编写一个调用类:
同样,我们需要在我们的插件目录下来编写这个插件了,在这里,我们以我们最常见的方式来写一段JS代码:
HELLO,WORLD!
<
php
if(!
)){
exit('
}
classplugin_mtest{
functionglobal_footer(){
return'
scriptlanguage="
javascript"
alert("
Hello,world!
<
/script>
保存这个文件为:
source/plugin/mtest/m.class.php假定mtest是你的标识符,然后更新缓存,再点击你的广场页面试试,看看有什么奇迹发生。
可以随意地输出您想要的JS代码,这也就是意味着,即使在一些没有嵌入点的地方,您也可以同输出的JS代码来改变您想作出的改变,当然,嵌入点能做的远远不止如此,那得看您能想到多少了。
现在,您基本上已经可以做常用的插件了。
不过,如果您需要一个导航栏怎么办?
天啊!
我需要一个类似于每日签到这样的一个签到页面,我应该怎么来做呢?
不用着急,接下来我们就来实验一个导航栏,然后进去之后输出一个hello,world的代码。
首先,我们需要在设计模块里面增加一个导航栏
有了它,我们就可以写:
mtest.inc.php这个文件了,不过我们似乎还需要一点点模板的支持,那么我们在这个文件夹下,新建一个文件夹:
template,然后在它的下面新建一个文件:
mtest.htm,内容如下:
{templatecommon/header}
p>
!
/p>
{templatecommon/footer}
在mtest.inc.php这个文件里,我们写入:
includetemplate("
mtest:
mtest"
然后,更新一下缓存,然后刷新一下站点首页,看看有什么效果?
hello,world!
导航栏
最后的现实
怎么样,是不是很棒?
你可以浏览我的以下插件来学习如何使用插件:
1.每日签到
2.帖子导读
我终于写出了自己的一个伟大的插件,我希望别人也能使用这个插件!
我想发布这个插件,我该如何做呢?
面对问题
然而我们刚刚写完了一个插件,但是我们所要面临的问题才刚刚开始,我们需要考虑的内容很多,这些内容包括:
1.我使用的语言编码方式是UTF8,我希望那些使用GBK的站长也能使用我的插件
2.我可能会使用到数据库来建立我需要使用的表,我该如何建立
3.我怎么描述出我的使用条例或者安装条例
4.我怎么为我的插件进行插件描述
5.我的插件发布在哪里,是否需要收费
天啊,我头都大了!
我根本没有想过这个问题!
如此多的问题迎面而来,我该如何解决?
嘿嘿,这个时候就是体现我自己价值的时刻了,我们来慢慢的讲解吧!
要解决语言编码的问题比较的麻烦,首先我们要确保我们所有程序里面没有出现中文字符,其次我们需要新建一个文件:
data/plugindata/mtest.lang.php这个文件,写入内容为:
1.<
2.$scriptlang['
mtest'
]=array(
3.
enable'
=>
'
4.);
5.$templatelang['
6.);
7.?
然后,在你自己的程序使用前,使用:
1.$mlang=$scriptlang['
];
来调用一下,这样,$mlang这个数组里存放的就是你要使用的内容了。
接下来,我们要做不同的对应的语言编码的xml文件了。
我相信你一定看到导出这个按钮了,然后就是一个XML文件,把它存放到你的插件目录下面,如果您不愿意做多语言编码的插件,那么就可以直接打包插件目录为rar格式,您的插件已经完成。
这里,我们还有GBK的站长需要,因此我们需要进行转码。
首先我们对我们的这个:
discuz_plugin_mtest.xml文件进行改名,改名为:
discuz_plugin_mtest_SC_UTF8.xml,这里:
SC表示简体中文UTF8表示UTF8编码方式,然后使用编码转换工具,经这个XML文件转码后,重命名为对应的名字,放在这个目录下即可。
编码转换工具我推荐ConvertZ这个工具,可以在网上搜索一下。
至此,我们的转换工作就做完了!
使用数据库
我需要使用数据库,我的插件需要新建一个数据表怎么办?
还记得我们刚才导出的那个XML文件么?
我们需要修改这个XML文件的内容来实现我们的操作了。
我们需要在
itemid="
DATA"
/item>
中加上如下代码:
installfile"
[CDATA[install.php]]>
[/indent][indent]<
uninstallfile"
[CDATA[uninstall.php]]>
上述代码分别表示:
安装|卸载插件时会运行的文件,这两个文件都放在插件目录下即可,以下是一个示例:
/*
mguideforDISCUZX1.0
editor:
monkee
version:
1.0
*/
$sql=<
EOF
DROPTABLEIFEXISTSCDB_TABLE_SETTING;
CREATETABLECDB_TABLE_SETTING(
`key`varchar(20)notnullprimarykey,
`value`text
)ENGINE=MYISAMDEFAULTCHARSET=DCHARSET;
EOF;
$sql=str_replace(array('
CDB_TABLE_SETTING'
DCHARSET'
),array(DB:
table('
mguide_setting'
),$_G['
charset'
]=='
utf-8'
utf8'
_G['
]),$sql);
foreach(explode('
$sql)as$item){
empty($item))
DB:
query($item);
$finish=TRUE;
插件发布
插件发布到:
这个板块就可以。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DiscuzX25 插件 制作 教程
![提示](https://static.bdocx.com/images/bang_tan.gif)