Discuz插件编写教程

合集下载

discuz插件开发

discuz插件开发

discuz使用与插件开发使用开源产品:能后台配置的尽量后台配置其实写插件其次修改JS/css再其次修改模板再其次修改PHP文件最后修改数据库discuz安装与后台功能介绍1:论坛开启与关闭, 全局-->站点信息当论坛临时维护时,可以时间关闭站点,2: 论坛开放与关闭注册:3: 修改注册链接,防止机器人注册(几乎无用)默认的注册链接如右图可以不修改php文件,并自定义注册链接.全局-->注册访问控制-->注册地址注册链接变为4: 验证用户的email全局--->用户注册与访问--->新用户注册验证选择email验证.5:如果4中,选择email验证,还需要在”站长-->邮件设置”中设置发邮件的方式1:用sendmail发送(在Linux下,且正常支持sendmail)2:用smtp协议发送,要求有1个支持smtp的邮箱,如126,163等老牌邮箱.配置用户名及密码,及可用来发邮件6: 禁用词过滤内容--->词语过滤7: 用户发表的链接控制要从2个方面来控制1: 用户--->用户级--->基本设置-->站外URL解析2: 但是用户发的任何链接,都无法解析如果我们用合法站点,比如百度网盘,或华为网盘等,允许发送. 全局-->注册与访问控制-->访问控制discuz的DIY功能diy是通过图形化的配置,让不懂程序的使用者,也能动态调用系统的相关数据. 如:最新帖, 热门帖, 最新文章等等.DIY功能里,有框架和模块框架的作用是把页面或div,拆成指定块, 如长度1:3的2个div,把页面拆成两部分. 而且框架是可以嵌套的,有可能做出比较复杂的框架效果来.模块:模块的作用是取出指定的信息---如论坛帖子模块,可以取出最新帖,热门帖等等.静态模块,可以允许用户填写自定义的HTML内容.一句话:框架是为了布局用的.模块是为了取数据用的并设定帖子模块的相关参数.保存后: 论坛首页即出现如下调用效果.tab切换标签我们选择tab框架,插入已有框架中.再把普通模块拖入标签中,起一个标签就可以了.默认的标签切换效果需要鼠标点击, 如果要变成鼠标划过,切换的效果, 可以编辑tab标签,选择”切换类型”discuz插件开发插件开发的意义:插件是可插拔的, 即可以在不改动源码的情况下, 增改论坛的功能.以后升级论坛的过程中,升级过程不受影响.比如,论坛有member.php,为了达到防机器人注册的功能1: 直接修改member.php,达到目的.2: 添加插件来完成.然后----论坛程序升级, member.php被官方最新的member.php代替.那么:对于1: 之前的改动,要再做一遍.对于2: 插件接口的API往往不会变,所以只需要把插件再注册一遍就可以用.discuz插件的运行原理:大多数系统的插件运行原理都类似, 即在程序指定处,留下钩子. 开发人员按照要求(比如按与钩子有关联的函数名) 来写程序. 那么钩子会运行用户的预留函数唱歌带包烟假设PHP是一个服务员,从连接数据库--->输出模板这一路上,有几个关键点,如”唱歌”,”买烟”,服务员经过这几点,会看这个点有没有数据或函数,有则调用.继而影响最终的输出结果.discuz插件的位置及文件格式位置: 在系统的source/plugin/目录下,一个插件一个目录.如下图:是一个简单而典型的插件:包括:描述插件的XML文件插件.class.phpXML文件是用来描述插件的名称,作者,位置,类名等等.PHP文件,是插件的具体运行页面.第一个插件开发直接把一个简单的插件(如上面的soso_smiles) ,复制一份,改名, 如下打开XML文件,其中name是插件名称identifier 是插件的标识,不能重复.directory 是指插件目录然后在weibo.class.php中,写入如下类此时这个类还是空的,没有具体作用,但是,一个插件的壳已经完成了. 管理员进入后台,查看应用,插件,看到如下信息则说明,我们的微博插件的壳已经正常了.接下来,再开发具体的插件功能确认插件在哪个.php文件上的哪个位置发挥作用根据forum.php的’forum’,再写一个子类根据位置,找到hook名称根据Hook名称,我们再写方法, 注意,方法名与hook点的关系.方法的返回值,就会出现在hook点上.嵌入点列表:/library/plug/plugin/plugin_hook.htm允许用户输出参数的插件我们需要在XML里,加上var 定义title: 输入框前的提示variable:变量名type: text ,普通文本框如何在插件的类里,如weibo.class.php中访问该插件变量?答: discuz的网站信息,配置信息,栏目信息,用户信息,缓存信息,插件信息.... 都被初始化一个普通全局变量$_G中.因此,我们可以通过$_G来获取插件的相关变量值.具体语法是$_G[‘cache’][‘plugin’][插件名][变量名]以weibo插件来说, $_G[‘cache’][‘plugin’][‘weibo’][‘weiboid’];discuz开发者模式, 自动创建XML打开config_global.php修改$_config['plugindeveloper'] = 1;如果没有,直接加上这一句作业:自行开发一个防机器人注册插件.思路:机器人插件一般是用HTTP协议提交,不通过浏览器.我们写一个插件,让用户点击提交瞬间,触发JS,动态创建一个hidden表单域及其值. 后台检测此值.如果是机器人,没通过浏览器,没有这个值.。

Discuz!自定义模板教程

Discuz!自定义模板教程

二、在 DIY 模块中的模块数据中固定是什么意思,如下图
解答: 当勾选固定后 此条数据将不会随着模块属性当中的条件进行更新,也就是说,此条 数据将永久不变,除非把勾选去掉 三、如何实现两个模块中间一条竖线的效果,如下图效果
实现方法 选中要操作的 DIY 模块 选择样式 如下图所示
在弹出的层中 ,选择边框的分别设置 ,在边框的“左” 大小 设置为 1px, “样式”选择实线,“颜色”选择灰色,如下图所示
创建完成后,点击查看 就能看到已与系统完全整合的模板了 接下来我们把模板中的占位用 的假数据换成 DIY 区域
用编辑器打开 list_home.htm 文件 大家会看到有类似的如下代码
1. <div class="list">
2.
<ul>
3.
<li><a href="#"
class="gray">[装修资讯]</a> <a href="#">七步改造计 为夏日客厅换新颜
文件
找到这两段代码的之间插入一行代码
1. <!--[diy=guanggao]--><div id="guanggao" class="area"></div><!--[/diy]-->
复制代码 其中 “guanggao” 可以任意取名,注意 不可与本模板中其它重名,必须保证唯一性 如下 图所示
完成
复制代码 如下图所示
同进查找<img src="images/ 替换成 <img src="template/default/portal/home/images/ 把其它用到的图片标签全替换成 template/default/portal/home/ 这个目录下就可以了 接下来 我们进入后台创建一个频道 模板名选择 “家居频道模板” 如下图

手把手教你架设Discuz!论坛

手把手教你架设Discuz!论坛

手把手教你架设Discuz!论坛前些天,有朋友要小强帮忙架一个论坛。

可是刚开学一直很忙(11门课啊~~还不说七七八八的杂事),都没顾上弄,这次国庆假期正好很无聊,于是决定动手试一下,毕竟没玩过类似的东西。

经过了一天的安装调试之后,偶的实验论坛终于动起来了,兴奋之后觉得“独乐乐不如众乐乐”,于是就有个这篇东东。

开始之前呢,还是要说一些“废话”:虽然本文中用到的软件都是free的,但是,应当遵重原作者的权利及相关授权文档。

还有就是偶对这个东西也是第一次玩,又说的不对的地方欢迎大家拍砖(人身攻击除外,呵呵)。

好了,闲言少叙,进入正题。

本文中涉及到三种开源软件的Win32版本:n Apache HTTP Server 2.0.46n MySQL Servers and Clients 4.0.13n PHP 5.0.3此外就是同为开源的Discuz! 2.5 简体中文免费版(还是开源的东西好啊,功能又强,效率又高,又稳定,而且最重要的是:大多数情况下免费!)。

以上这些软件在网上都很容易找到,下面只对这三种软件作简单介绍,更为详细的资料请参阅该软件的文档;对于该软件的下载方法就不说了,一个字:搜。

如果比我还笨或还懒得话给我发邮件好了(不过mail的主题里要写明原因:P)。

Apache HTTP Server是一种高效率的可在多种平台下的网页服务器(我尽量说的简单,但如果你连网页是啥都不知道那就没办法了)。

它由Apache开源组织()开发和维护。

记得去年同学找工作时候听过一种说法,如果你能有一个Apache的邮箱(如starsnow@),那找什么工作也就都不愁了(可是我没有,所以还是要愁啊~~)。

Apache HTTP Server在本次架设过程中主要提供基于HTTP (超文本链接)协议的网页服务。

MySQL是大名鼎鼎的高性能跨平台的数据库服务器(/),我挺喜欢它的那个海豚图标的,呵呵。

提供基于GPL(free)的数据库服务,即将建立好的论坛的各种数据(如帖子、回复、会员管理等)都会存在这个数据库里面。

教你Discuz模板制作详细步骤

教你Discuz模板制作详细步骤

接触Discuz! 有一段时间了,使用的风格都是别人的免费品。

一来自己的美工水平实在不行,二来网上很少有比较完整的模板制作教程。

因为工作的需要,现特写了一份模板的制作教程。

小弟才疏学浅,不对之处还请指正。

模板制作前请将你的界面设计好,并制作成html+CSS的格式。

这里我就以大魔王的“蓝色经典”作为样版(知识共享,希望大魔王不要介意,如有侵权,请及时通知我)。

效果图如下:(图1)在开始前,先了介绍一下discuz!的几个模板文件:1、 --------------------------------------页面头部2、论坛首页3、页面底部4、viewthread--------------------------------------------------------------查看帖子内容discuz!论坛的页面通常是几个模板文件共同作用下达到的效果,如图1就是++这三个文件共同作用的效果。

对应的是:(图2)对应的是:(图3)剩下的就是文件显示的了。

当然你要将首页显示的效果就制作成一个文件模板也是可以的,这里之所以分开,是因为和文件通常还会被其它的模版文件引用。

也就是说,其它的页面(比如发贴的页面)的头部、底部与首页的头部、底部完全一样,分开来写就可以达到重复利用,减少劳动的效果。

下面我们就开始制作:首先,现在我要制作的这套模板叫test,那么我就在templates目录下建立一个test目录。

在test目录下再新建一个images文件夹用于存放这套模板的图片,把切好的所有图片保存到这个文件夹中。

templates/test文件夹用于存放这套模板的htm文件,在这个目录中新建三个文件、、,打开你设计好的主页html文件,将你想作为头部的那一段代码复制粘贴到文件中,相应的将作为底部的那一段代码复制粘贴到文件中,其余的代码复制粘贴到文件中。

最后在文件的最顶部和最底部分别加上:{subtemplate header} 和{subtemplate footer}这两句算是discuz的语言,意思是将和文件包含进来,这样就构成了一个完整的主页面了。

Discuz之全方位讲解DIY制作教程

Discuz之全方位讲解DIY制作教程

1. 全方位立体式讲解DIY技巧集锦今天为大家讲解一下在使用DIY过程中的一些技巧与方法仔细阅读,受益匪浅一、如何在模块中增加“标题”及“更多”的链接如下图样式方法:通过框架或模块都可以实现上述样式,我们以框架为例,我们在DIY的时候选中要编辑的框架点击编辑如下图所示之后点击标题在弹出的层中可以添加标题及链接,位置选择居左如下图所示同时可以设置标题的颜色及大小接下来增加“更多”的链接点击弹出层的添加新标题按扭如下图所示,会“复制”出一份新的标题你只需修改就可以了把其中的“精彩教程” 改成“更多” ,链接以及字体、颜色都进行修改就可以了,这里的位置一定要选择“居右”完成,这样框架就有了标题及更多,模块的方法同上二、DIY的模块中如何调整链接的颜色如下图样式方法:选中要修改的模块,点击编辑,选择数据如下图所示在弹出层中选择编辑如下图所示在弹出的层中可以对标题进行加粗、斜体、加下划线、修改颜色等操作完成三、如何在现有的模块中添加新的数据选中要添加数据的模块点击编辑--数据如下图所示在弹出的层中选择任意一条数据点击编辑如下图所示点击编辑后在弹出的层中选择从数据源获取此处可以添写帖子ID、文章ID、日志ID、图片ID 来获取数据如下图所示点击获取会填充模块内相应的数据字段(此处的数据字段会根据模块样式的不同有所变化,请注意)完成四、DIY时如何调用外部程序的数据当我们与第三方程序整合后如何在门户、频道、论坛、或可以DIY的区域调用这些第三方程序的数据首先我们可以在需要调用的地方拖一个展示类中的静态模块如下图所示如上图所示选择数据来源为“自定义HTML”一般第三方系统的数据调用都会有输出JS格式的我们把第三方程序提供的JS代码粘贴进HTML代码框就可以了如下图所示完成五、首页多格或首页四格如何DIY出来我们以论坛首页为例(在任何页面都可以)来制作一个首页四格首先在论坛首页拖一个 1:1的框架如下图所示接下来向已拖好的1-1框架的框架里左侧的1 里面拖入一个1:1的框架如下图所示接下来向右侧的1里面也拖入一个1:1的框架如下图所示接下来我们就可以通过拖拽模块到框架中去了此时我们可以去掉框架的标题,同时为每一个模块增加一个标题如下图所示你可以通过不同的模块样式或者CSS来美化这里完成六、如何修改整个模块的链接样式比如下图方法:选中要编辑的模块,点击编辑--样式进行修改如下图所示以上修改针对整个模块完成七、如何修改两个模块或两个框架之间的距离如下图样式选择要编辑的框架或者模块,点击编辑--样式选择外边距,勾选分别设置,在右边距中写入合适的数字就可以了例如10如下图所示完成后的效果如下图样式完成全方位立体式讲解DIY技巧集锦第二弹一、DIY中TAB框架如果切换点击方式(鼠标点击与鼠标滑过)如下图中的效果如何实现实现方法:拖一个TAB框架到页面中,点编辑,选择标题如下图所示在弹出的窗口中选择切换类型如下图所示。

Discuz! 插件开发实例讲解

Discuz! 插件开发实例讲解

Discuz! 插件开发实例讲解作者简介:童虎,Discuz!论坛程序研发经理,负责Discuz!论坛程序研发团队的管理工作,曾是Discuz!早期插件作者,担任过Freediscuz插件区版主。

曾开发过社区宠物、社区监狱、社区虚拟形象等多个Discuz!热门插件。

论坛向社区化发展已经成为趋势,站长对网站的个性化需求越来越高,同时随着网站规模的扩大,站长对于一些特殊功能的需求也越来越多, Discuz! 标准程序作为一个通用程序,从某种意义上讲很难满足所有站长个性化功能的需求,因此论坛插件就成为对标准程序最好的功能补充。

从目前来看,正在做插件和想做插件的人越来越多,从Discuz!官方论坛的统计数据大家就可以看出,目前插件区已经成为仅次于安装使用区之后的第二大版块。

于此我们同时也发现许多希望开发插件的作者,有时候感觉插件开发很难上手,一定程度上也影响了插件的丰富性和多样性。

特此,写这样一篇文章,谈不上有什么教育意义,只是给那些希望开发插件的朋友一块敲门砖,让更多的人成为一名插件作者,拿出你们的创意,让论坛更加丰富多彩。

闲话少叙,书归正言,首先我们来介绍一些Discuz!插件从程序实现的方式,主要是分两种:第一种是利用已有的插件机制,这种机制官方有详细的开发文档,可以利用现有的一些接口和函数,按照文档规定的文件以及目录结构,进行开发就可以了,这种方式是官方鼓励的开发方式,所开发的插件比较标准,在后台可以轻松管理并导入导出,利于插件的安装。

但是这种方式需要插件作者看懂开发文档,严格按照开发文档做。

个人感觉局限性相对而言比较大,不过推荐新手可以试试这种方式,毕竟这种方式插件方便插件使用者安装,相对而言比较利于插件的推广。

第二种就是我这篇文章可能要重点推荐的,我称它为自由方式,这种方式需要插件作者对 Discuz! 程序相关接口和函数有一定了解。

当然我会在下面的文章里面对一些常用函数做一个简单介绍。

这种方式的好处就是在编写程序时候比较自由,不需要像第一种那样需要放在规定的目录中,给插件作者发挥的余地更大。

DZ插件实例讲解

DZ插件实例讲解

['myrepeats']['use
rgroups']);
if(in_array('', $myrepeatsusergroups)) {
$myrepeatsusergroups = array();
}
$userlist = array();
有权限, 则当
/* 对当前登录用户进行马甲验证, 即当前用户组不再权限许可范围内, 但其他帐号所在用户组 前用户也有使用权限。*/
$_GET['username']);
ajaxshowheader();
echo $Plang['deleted'];
ajaxshowfooter();
}
$ppp = 100; $resultempty = FALSE; $srchadd = $searchtext = $extra = $srchuid = ''; $page = max(1, intval($_GET['page'])); if(!empty($_GET['srchuid'])) {
添加的语言包文件,初始化状态如下:
<?php
$scriptlang['myrepeats'] = array( 'login_strike' => "密码错误次数过多,请重新设置马甲账号信息并在 15 分钟后再尝试切换。",
/* 含有变量值的语言包一般用在脚本文件中调用, 其中变量可以在showmessage(), lang()等函数中某
global $_G;
if(!$_G['uid']) {

Dusizx模板开发流程及编程

Dusizx模板开发流程及编程

DISCUZx模板开发流程第一步第二步:页面分析第三步css公共样式修改模块央视修改四:模板标签$_G 保留了Discuz! 中所有的预处置数据缓存能够专门好的提高程序的性能,一些配置数据没必要每次都查询数据库,只要在修改了的时候更新下缓存即可。

Discuz! 中所有的缓存保留在$_G[cache] 中百度体会:jingyan.baidu方式/步骤(1) 全局变量系统篇$_G['uid'] => 当前登录UID$_G['username'] => 当前登录用户名$_G['adminid'] => 当前登录ID治理组ID$_G['groupid'] => 当前登录ID用户组ID$_G['cookie'] => 客户端cookie$_G['formhash'] => 当前登录ID的【FORMHASH】要紧用于表单提交$_G['timestamp'] => 当前活动时刻$_G['starttime'] => 1317042440.3242$_G['clientip'] => 当前访问者IP地址$_G['referer'] => 当前请求的地址,要紧用户表单提交$_G['charset'] => 程序编码$_G['PHP_SELF'] => 当前访问页面的相对地址$_G['siteurl'] => 程序访问地址$_G['siteroot'] => 程序所在域名的相对目录$_G['fid'] => 当前版块id【主题列表页、帖子页】显现$_G['tid'] => 当前帖子ID【帖子页】显现$_G['basescript'] => 当前页面所在频道$_G['basefilename'] => 当前页面php文件名$_G['staticurl'] => 程序附件目录$_G['mod'] => 当前页面的MOD值【例如:forum.php?mod=xxx】$_G['inajax'] => 当前ajax请求的值【无-0 有-1】$_G['page'] => 当前分页ID$_G['tpp'] => 当前分页每页显示数量$_G['keywords'] => 当前页面关键词$_G['description'] => 当前页面介绍$_G['timenow'] => Array([time] => 2020-9-26 21:07 当前效劳器时刻[offset] => +8 当前效劳器时区)$_G['config'] => Array($_G['config'][db] => Array($_G['config'][db][1] => Array($_G['config'][db][1][dbhost] => localhost 数据库连接地址 $_G['config'][db][1][dbuser] => root 数据库用户名$_G['config'][db][1][dbpw] => 123456 数据库密码$_G['config'][db][1][dbcharset] => utf8 数据库编码$_G['config'][db][1][pconnect] => 0$_G['config'][db][1][dbname] => dxutf 数据库名$_G['config'][db][1][tablepre] => pre_ 数据表前缀)))(2) 全局后台各项设置篇$_G['setting'][sitename] => 全局-站点信息-网站名称$_G['setting'][siteurl] => 全局-站点信息-网站URL$_G['setting'][regname] => 全局-注册访问-注册-注册地址$_G['setting'][reglinkname] => 全局-注册访问-注册-注册链接文字$_G['setting'][regverify] => 全局-注册访问-注册-新用户注册验证$_G['setting'][icp] => 全局-站点信息-网站备案信息代码$_G['setting'][imagelib] => 全局-上传设置-大体设置-图片处置库类型$_G['setting'][extcredits] => 积分情形自行打印$_G['setting'][creditsformula] => 全局-积分设置-大体设置-总积分计算公式$_G['setting'][cacheindexlife] => 全局-性能优化-论坛页面缓存设置-缓存论坛首页有效期$_G['setting'][cachethreaddir] => 全局-性能优化-论坛页面缓存设置-缓存目录$_G['setting'][cachethreadlife] => 全局-性能优化-论坛页面缓存设置-缓存帖子有效期$_G['setting'][bbrulestxt] => 全局-注册访问-注册-网站效劳条款$_G['setting'][bbname] => 全局-站点信息-站点名称$_G['setting'][attachurl] => 全局-上传设置-大体设置-本地附件URL地址$_G['setting'][attachdir] => 全局-上传设置-大体设置-本地附件保留位置$_G['setting'][anonymoustext] => 界面-界面设置-全局-匿名用户的昵称$_G['setting'][threadsticky] => 界面-界面设置-主题列表-置顶主题的标识$_G['setting'][defaultindex] => 默许首页文件名forum.php$_G['setting'][verify] => 用户-认证设置$_G['setting'][rewriterule] => 后台伪静态规那么情形$_G['setting'][ucenterurl] => UCenter地址$_G['setting'][plugins] => 后台插件设置与启用情形$_G['setting'][navlogos] => 后台界面设置-导航设置-内置导航的logo组$_G['setting'][navmn] => 后台设置的导航情形,要紧用于导航判定$_G['setting'][navs] => 页头导航数组,可参考此数组进行页头导航重写$_G['setting'][footernavs] => 页尾导航$_G['setting'][spacenavs] => 家园模块左侧导航$_G['setting'][mynavs] => 页头导航右边快捷导航按钮内容$_G['setting'][topnavs] => 页头顶部导航内容$_G['setting'][forumpicstyle] => Array 版块主题封面($_G['setting'][forumpicstyle][thumbwidth] => 主题封面宽度$_G['setting'][forumpicstyle][thumbheight] => 主题封面高度)$_G['setting'][activityfield] => 全局-站点功能-活动主题-发起者必填信息$_G['setting'][activityextnum] => 全局-站点功能-活动主题-扩展资料项数量$_G['setting'][activitypp] => 全局-站点功能-活动主题-用户列表每页显示参与活动的人数$_G['setting'][activitycredit] => 全局-站点功能-活动主题-利用积分$_G['setting'][activitytype] => 全局-站点功能-活动主题-内置类型$_G['setting'][adminemail] => 全局-站点信息-治理员邮箱(3)全局当前登录者信息篇$_G['member'] => Array 当前登录用户个人信息($_G['member'][uid] => UID$_G['member'][email] => 邮箱地址$_G['member'][username] => 用户名$_G['member'][password] => 通过MD5后的密码(别乱输出!!!切记)$_G['member'][status] => 用户是不是已经删除$_G['member'][emailstatus] => 邮箱验证状态0未验证1验证通过$_G['member'][avatarstatus] => 头像上传状态0未上传1已上传$_G['member'][videophotostatus] => 视频认证0未认证1已认证$_G['member'][adminid] => 所在治理组ID$_G['member'][groupid] => 所在用户组ID$_G['member'][groupexpiry] => 所在用户组有效期$_G['member'][extgroupids] => 扩展用户组$_G['member'][regdate] => 注册时刻$_G['member'][credits] => 214 现有总积分$_G['member'][notifysound] => 短消息声音$_G['member'][timeoffset] => 所在时区$_G['member'][newpm] => 新短消息数量$_G['member'][newprompt] => 新提示数量$_G['member'][accessmasks] => 那个貌似访问权限,不确信$_G['member'][allowadmincp] => 是不是拥有治理面板权限0否1是$_G['member'][onlyacceptfriendpm] => 是不是只同意老友短消息0否1是$_G['member'][conisbind] => 是不是绑定QQ 0否1是$_G['member'][lastvisit] => 上次访问时刻);(4)风格变量篇$_G['style'] => Array($_G['style'][styleid] => 当前风格ID$_G['style'][name] => 当前风格名$_G['style'][templateid] => 当前模板体系$_G['style'][tpldir] => 当前模板目录$_G['style'][menuhoverbgcolor] => 导航菜单高亮背景颜色$_G['style'][lightlink] => 浅色链接颜色$_G['style'][floatbgcolor] => 弹出窗口背景属性$_G['style'][dropmenubgcolor] => 下拉菜单背景属性$_G['style'][floatmaskbgcolor] => 弹出窗口边框颜色属性$_G['style'][dropmenuborder] => 下拉菜单边框色$_G['style'][specialbg] => 彩色区域背景色(帖子用户信息栏、需强调的表头等)$_G['style'][specialborder] => 彩色区域边框$_G['style'][commonbg] => 通用显示区域背景颜色$_G['style'][commonborder] => 通用边框颜色$_G['style'][inputbg] => 输入框背景色$_G['style'][inputborderdarkcolor] => 输入框边框深色$_G['style'][headerbgcolor] => 页头背景$_G['style'][headerborder] => 页头分割线高度$_G['style'][sidebgcolor] => 家园侧边背景$_G['style'][msgfontsize] => 帖子内容字号$_G['style'][bgcolor] => 页面背景$_G['style'][noticetext] => 提示信息颜色$_G['style'][highlightlink] => 高亮链接颜色$_G['style'][link] => 链接文字颜色$_G['style'][lighttext] => 浅色文字$_G['style'][midtext] => 中等文本颜色$_G['style'][tabletext] => 一般文本颜色$_G['style'][smfontsize] => 小号字体大小$_G['style'][threadtitlefont] => 主题列表字体$_G['style'][threadtitlefontsize] => 主题列表字体大小$_G['style'][smfont] => 小号字体$_G['style'][titlebgcolor] => 版块列表题目字体颜色$_G['style'][fontsize] => 正常字体大小$_G['style'][font] => 正常字体$_G['style'][styleimgdir] => 扩展图片目录$_G['style'][imgdir] => 界面基础图片目录$_G['style'][boardimg] => logo所在途径$_G['style'][headertext] => 页头文字颜色$_G['style'][footertext] => 页脚文字颜色$_G['style'][menubgcolor] => 导航菜单背景颜色$_G['style'][menutext] => 导航菜单文字颜色$_G['style'][menuhovertext] => 导航菜单高亮文字颜色$_G['style'][wrapbg] => 主体表格背景色$_G['style'][wrapbordercolor] => 主体表格边框色$_G['style'][contentwidth] => 阅读区域宽度$_G['style'][contentseparate] => 帖子距离颜色$_G['style'][inputborder] => 输入框边框浅色$_G['style'][menuhoverbgcode] => 导航菜单高亮背景$_G['style'][floatbgcode] => 弹出窗口背景色$_G['style'][dropmenubgcode] => 下拉菜单背景色$_G['style'][floatmaskbgcode] => 弹出窗口边框颜色$_G['style'][headerbgcode] => 页头背景$_G['style'][sidebgcode] => 家园侧边栏背景属性$_G['style'][bgcode] => 全局背景属性属性$_G['style'][titlebgcode] => 版块列表题目背景$_G['style'][menubgcode] => 导航菜单背景属性$_G['style'][boardlogo] => LOGO img代码。

DiscuzX2插件模板和语言包的设计

DiscuzX2插件模板和语言包的设计

插件模板和语言包的设计插件语言包创建语言包∙给插件创建语言包首先需要创建一个data/plugindata/ng.php 文件,文件内容中包含 3 个数组,如下:<?php$scriptlang['identifier'] = array('english' => 'chinese',...);$templatelang['identifier'] = array('english' => 'chinese',...);$installlang['identifier'] = array('english' => 'chinese',...);?>$scriptlang 为程序脚本文件的语言包,$templatelang 为模版文件的语言包,$installlang 为安装、升级、卸载脚本用的语言包。

如果插件不涉及某些类型的语言文字,变量可忽略。

∙然后在插件基本设置中开启语言包选项后即可。

调用语言包模版中调用模板文件语言包,通过 {lang identifier:english} 方式调用。

程序脚本中调用脚本文件语言包,通过 lang('plugin/identifier', 'english') 方式调用。

安装脚本中调用安装脚本文件语言包,通过 $installlang 变量直接获取。

如$installlang['english']。

语言包导出创建好的语言包在插件导出后会自动导出到 XML 文件中,供插件作者转码后发放多编码版本的插件。

如上例中导出的 XML 中会包含以下内容:<item id="language"><item id="scriptlang"><item id="english"><![CDATA[chinese]]></item> </item><item id="templatelang"><item id="english"><![CDATA[chinese]]></item> </item><item id="installlang"><item id="english"><![CDATA[chinese]]></item> </item></item>data/plugindata/ng.php 文件不必在插件发布的时候导出,此文件仅供插件设计者模式时使用。

discuz模板使用教程

discuz模板使用教程

竭诚为您提供优质文档/双击可除discuz模板使用教程篇一:discuzx3.x模板插件开发制作教程(从入门到精通)一、开发插件所需资料与工具1、discuzx3插件机制插件机制discuz!拥有一套完整的插件机制。

合理使用插件机制,你可以更好的将自己的个性功能需求整合到discuz!产品中的同时,保持代码独立,并且不受后续discuz!产品版本升级的影响。

我们鼓励并推荐,使用插件机制进行个性需求定制和研发。

插件设计的准备工作插件实现流程开始编写社区插件,您应当首先对插件实现的流程有一个大致的了解,以下是我们推荐的插件编写流程:熟练使用discuz!社区系统后,对希望完善或补充的个性化功能进行评估,进而提出插件的功能需求。

对插件做一个概括性的设计,例如:需要使用什么菜单、什么参数,配置哪些选项、数据结构如何设计、前后台实现哪些功能等等。

阅读本文档并在系统设置中实际体验discuz!插件接口所实现的功用,例如:您的插件应当如何设计才能良好的挂接到社区系统中来。

插件接口能够实现哪些功能、不能实现哪些功能,插件为此而需要做的优化、改造和取舍。

编写相应程序代码和模板语句,实现所需的功能并进行代码测试、兼容性测试和代码改进。

如果需要公开您的插件,可以用插件导出的方式,将插件配置信息导出到一个xml文件中,连同相应的程序和模板文件一同打包。

同时,编写一个适合新手的插件的说明书也是必不可少的,其中包括:插件适用的discuz!版本、功能概述、兼容性声明、安装方法、使用方法、卸载方法等等。

将插件提供给他人,或自己使用,根据使用者反馈,对插件进行完善。

插件实现流程至此结束。

文件命名规范discuz!按照如下的规范对程序和模板进行命名,请在设计插件时尽量遵循此命名规范:可以直接通过浏览器访问的普通程序文件,以.php后缀命名。

被普通程序文件引用的程序文件,以.inc.php后缀命名。

被普通程序文件,或引用程序文件引用的函数库或类库,以.func.php(函数库)或.class.php(类库)后缀命名。

DiscuzX3.2教程

DiscuzX3.2教程

DiscuzX3.2教程插件制作的基本思路是:(初学者适用)1.形成插件思路2.制作插件界面3.构架程序模块4.搭建存储数据5.填充功能语句6.检查应用错误7.完善插件功能前言:为方便互联网数万Discuz!爱好者,更加深入了解Discuz!软件,本人在熟悉Discuz!过程中,顺便将个人经验写给大家。

本贴内容由本人定期更新。

本贴只介绍Discuz!中部分技术点,本贴紧属个人观点,不足之处,请各位多多指教,在下先此谢过!。

“Discuz!”在下文中简称“DZ”。

要弄DZ二次开发,必须至少具备如下技能:1)能够理很好理解MVC构架的原理(虽然DZ不是MVC架构的)2)扎实的PHP基础,熟悉结构化程序,OOP程序的写法及应用3)熟悉MYSQL就用,掌握SQL语言,懂SQL优化者更佳4)熟悉使用Discuz!的各项功能一)Discuz!的文件系统目录注:想搞DZ开发,就得弄懂DZ中每个文件的功能。

a) Admin:后台管理功能模块b) Api:DZ系统与其它系统之间接口程序c) Archiver:DZ中,用以搜索引擎优化的无图版d) Attachments:DZ中,用户上传附件的存放目录e) Customavatars:DZ中,用户自定义头像的目录f) Forumdata:DZ缓存数据的存放目录g) Images:DZ模板中的图片存放目录h) Include:DZ常用函数库,基本功能模块目录i) Ipdata:DZ统计IP来路用的数据j) Plugins:DZ插件信息的存放目录k) Templates:DZ模板文件的存放目录l) Wap:DZ无线,Wap程序处理目录二)必须记熟Discuz!数据库设计的每个表的功能,每个表中每个字段的功能。

关于DZ数据库设计文档,请参阅DZ相关的项目文档(请从本贴附件中下载)三)Discuz!的流程控制a) 后台流程控:DZ后台所有的功能,均需要注册到admincp.php文件,每个功能都至少有一个或一个以上的Action(动作),在admincp.php中,可以定义Action的执行权限,分别为:“admin==1”管理员,或“admin==2 || admin==3”超级版主和版主,每个Action对应一个脚本文件,脚本文件的命名为action.inc.php(*.inc.php),并存放在admin目录下,如执行:admincp.php?action=dodo,相当于执行admin目录下的dodo.inc.php文件b) 前台流程控制:前台的流程控制比较简单:流程是自由的,如:首页:index.php会员注册:register.php;会员登录:logging.php发贴程序:post.php会员信息:member.php论坛内容:forumdisplay.php查看贴子:member.php…大部分功能,此处不一一列出…c) DZ根目下的config.inc.php属于整个DZ系统的配置文件四)Discuz!的数据处理过程a) DZ对mysql的数据库操作处理全部封装在dbstuff(db_mysql.class.php)类中b) 所在的外部数据均通过“daddslashes()”初步过滤,然后再过滤,再根据需要处理五)Discuz!的显示控制(网站多样式风格输出)a) 显示层就是大家通常所看到的网站风格了。

Discuz插件制作教程【入门+精通+实战】

Discuz插件制作教程【入门+精通+实战】

一、开发插件所需资料与工具1、DiscuzX3 插件机制插件机制Discuz! 拥有一套完整的插件机制。

合理使用插件机制,你可以更好的将自己的个性功能需求整合到Discuz!产品中的同时,保持代码独立,并且不受后续Discuz!产品版本升级的影响。

我们鼓励并推荐,使用插件机制进行个性需求定制和研发。

插件设计的准备工作插件实现流程开始编写社区插件,您应当首先对插件实现的流程有一个大致的了解,以下是我们推荐的插件编写流程:∙熟练使用Discuz! 社区系统后,对希望完善或补充的个性化功能进行评估,进而提出插件的功能需求。

∙ 对插件做一个概括性的设计,例如:需要使用什么菜单、什么参数,配置哪些选项、数据结构如何设计、前后台实现哪些功能等等。

∙ 阅读本文档并在系统设置中实际体验Discuz! 插件接口所实现的功用,例如:您的插件应当如何设计才能良好的挂接到社区系统中来。

插件接口能够实现哪些功能、不能实现哪些功能,插件为此而需要做的优化、改造和取舍。

∙ 编写相应程序代码和模板语句,实现所需的功能并进行代码测试、兼容性测试和代码改进。

∙ 如果需要公开您的插件,可以用插件导出的方式,将插件配置信息导出到一个XML 文件中,连同相应的程序和模板文件一同打包。

同时,编写一个适合新手的插件的说明书也是必不可少的,其中包括:插件适用的Discuz! 版本、功能概述、兼容性声明、安装方法、使用方法、卸载方法等等。

∙ 将插件提供给他人,或自己使用,根据使用者反馈,对插件进行完善。

插件实现流程至此结束。

∙文件命名规范Discuz! 按照如下的规范对程序和模板进行命名,请在设计插件时尽量遵循此命名规范:∙ 可以直接通过浏览器访问的普通程序文件,以 .php 后缀命名。

∙ 被普通程序文件引用的程序文件,以 .inc.php 后缀命名。

∙ 被普通程序文件,或引用程序文件引用的函数库或类库,以 .func.php(函数库) 或.class.php(类库) 后缀命名。

discuz!x2.5插件制作教程

discuz!x2.5插件制作教程

Discuz! 插件制作教程欢迎您浏览本网页,为满足站长在遇到插件的问题以及在一些插件的需求上,这个系列的插件制作教程就是特别为您准备的。

本人做了一段时间的插件,希望我写的内容对你有用~当然,我不是DX的研发人员,我只是DX的爱好者。

相信对DX的安装和使用大家都已经有了初步的了解,本内容假定您已经具备如下技能:1. 您的网站或者测试站点可以正常使用2. 您对PHP有基本的了解3. 您对数据库有着基本的了解一旦您满足了上面的要求,那么您可以来了解DX的插件制作了。

网站的基本数据在DX的这个框架中,我们会经常用到一些使用的数据,这些数据包括:系统常量、全局变量、系统调用,首先我们从系统常量说起1.[indent]<php[/indent][indent]require_once './source/class/';[/indent][indent]require_once'./source/function/';[/indent][indent]$discuz = &discuz_core::instance();[/indent][indent]$discuz->init();[/indent][indent]print_r(get_defined_constants());[/indent][indent]>[/indent]2. 查看$_G变量中内容1.[indent]<php[/indent][indent]require_once './source/class/';[/indent][indent]require_once'./source/function/';[/indent][indent]$discuz = &discuz_core::instance();[/indent][indent]$discuz->init();[/indent][indent]print_r($_G);[/indent][indent]>[/indent]这次我们要来制作一个简单的插件来学习如何新建插件、建立管理中心。

Discuz X系列 Discuz模板制作教程介绍

Discuz X系列 Discuz模板制作教程介绍

Discuz X系列Discuz模板制作教程介绍
这是为同学们整理的关于Discuz X系列Discuz模板制作教程的文章,希望对您的学习有帮助,关注我们IT教育频道,查看更多文章。

 1、了解下Discuz X2.5 模板目录结构
 2、再次通过Discuz模板的安装方法熟悉模板结构
 3、熟悉模板制作流程,查看:Discuz模板的制作方法
 4、上面3个对Discuz x模板已经有所了解了,下面需要熟悉一些模板的变量和原理,可以查看Discuz! x2.5 模板解析语法- 变量/循环/判断/嵌套、模板缓存、CSS继承规范和CSS缓存机制和风格管理编辑页面中风格常量在模板中的注解图
 5、Discuz模板原理懂了,可以了解下Discuz模板的常用的样式表,可以查看教程:DiscuzX2.5模板全局样式表- common.css 注释、Discuz x2.5 模板专用样式表- module.css和Discuz模板内置常用CSS代码分析
 6、原理和样式表知道了,那就剩Discuz 模板的htm模板文件了,可以查看Discuz x2.5 模板header.htm 代码注释说明和Discuz x2.5 模板footer.htm 代码注释说明
 7、为了插件可以和你制作的模板兼容,还需要了解下Discuz模板中插件嵌入点显示位置的注释图和Discuz模板中插件嵌入点显示位置的注释图
 8、Discuz门户模板、频道模板和专题模板制作方法,可以查看:Discuz各类幻灯片的制作方法- 完全支持DIY,其他待更新
 9、常用火狐Firebug调试模板的方法,可以查看:巧用firebug 对Discuz!模板进行样式调试修改美化
 10、借Discuz-X开发者工具【debug】,可以让我们更轻松的获取一些模板。

Discuz!X插件安装、卸载、升级脚本的设计

Discuz!X插件安装、卸载、升级脚本的设计

Discuz!X插件安装、卸载插件作者可以设计 2 个脚本文件用于插件的安装和卸载,文件名任意。

脚本中可用runquery() 函数执行SQL 语句,表名可以直接写“cdb_”。

插件作者只需在导出的XML 文件结尾加上安装、卸载脚本的文件名即可1.<item id="installfile"><![CDA TA[install.php]]></item>2.<item id="uninstallfile"><![CDATA[uninstall.php]]></item>3.</item>4.</root>复制代码安装、卸载程序中可随意设计页面的跳转,只要在插件安装、卸载结束时候输出添加以下代码即可。

1.$finish = TRUE;复制代码Discuz!X插件升级插件作者可以设计一个脚本文件用于插件的升级,文件名任意。

脚本中可用runquery() 函数执行SQL 语句,表名可以直接写“cdb_”。

插件作者只需在导出的XML 文件结尾加上升级脚本的文件名即可1.<item id="upgradefile"><![CDATA[upgrade.php]]></item>2.</item>3.</root>复制代码升级程序中可通过$fromversion 和$toversion 变量判断升级的具体版本号,并随意设计页面的跳转,只要在插件升级结束时候输出添加以下代码即可。

1.$finish = TRUE;复制代码插件的当前版本号位于XML 文件的以下分支中,可自行更改。

1.<item id="plugin">2.......3.<item id="version"><![CDATA[当前版本]]></item>4.......5.</item>复制代码Discuz!X插件检测插件作者可以设计一个脚本文件用于插件在安装、卸载、升级操作前的检测,文件名任意。

Discuz开发教程

Discuz开发教程

Discuz开发教程Discuz开发教程.txt跌倒了,爬起来再哭~~~低调!才是最牛B 的炫耀!!不吃饱哪有力气减肥啊?真不好意思,让您贱笑了。

我能抵抗一切,除了诱惑……老子不但有车,还是自行的……插件制作的基本思路是:(初学者适用)1.形成插件思路2.制作插件界面3.构架程序模块4.搭建存储数据5.填充功能语句6.检查应用错误7.完善插件功能前言:为方便互联网数万Discuz!爱好者,更加深入了解Discuz!软件,本人在熟悉Discuz!过程中,顺便将个人经验写给大家。

本贴内容由本人定期更新。

本贴只介绍Discuz!中部分技术点,本贴紧属个人观点,不足之处,请各位多多指教,在下先此谢过!。

“Discuz!”在下文中简称“DZ”。

要弄DZ二次开发,必须至少具备如下技能:1)能够理很好理解MVC构架的原理(虽然DZ不是MVC架构的) 2)扎实的PHP基础,熟悉结构化程序,OOP程序的写法及应用3)熟悉MYSQL就用,掌握SQL语言,懂SQL优化者更佳4)熟悉使用Discuz!的各项功能一) Discuz!的文件系统目录注:想搞DZ开发,就得弄懂DZ中每个文件的功能。

a) Admin:后台管理功能模块b) Api:DZ系统与其它系统之间接口程序c) Archiver:DZ中,用以搜索引擎优化的无图版d) Attachments:DZ中 ,用户上传附件的存放目录e) Customavatars:DZ中,用户自定义头像的目录f) Forumdata:DZ缓存数据的存放目录g) Images:DZ模板中的图片存放目录h) Include:DZ常用函数库,基本功能模块目录i) Ipdata:DZ统计IP来路用的数据j) Plugins:DZ插件信息的存放目录k) Templates:DZ模板文件的存放目录l) Wap:DZ无线,Wap程序处理目录二)必须记熟Discuz!数据库设计的每个表的功能,每个表中每个字段的功能。

discuz模板开发教程

discuz模板开发教程

竭诚为您提供优质文档/双击可除discuz模板开发教程篇一:discuzx3.x模板插件开发制作教程(从入门到精通)一、开发插件所需资料与工具1、discuzx3插件机制插件机制discuz!拥有一套完整的插件机制。

合理使用插件机制,你可以更好的将自己的个性功能需求整合到discuz!产品中的同时,保持代码独立,并且不受后续discuz!产品版本升级的影响。

我们鼓励并推荐,使用插件机制进行个性需求定制和研发。

插件设计的准备工作插件实现流程开始编写社区插件,您应当首先对插件实现的流程有一个大致的了解,以下是我们推荐的插件编写流程:熟练使用discuz!社区系统后,对希望完善或补充的个性化功能进行评估,进而提出插件的功能需求。

对插件做一个概括性的设计,例如:需要使用什么菜单、什么参数,配置哪些选项、数据结构如何设计、前后台实现哪些功能等等。

阅读本文档并在系统设置中实际体验discuz!插件接口所实现的功用,例如:您的插件应当如何设计才能良好的挂接到社区系统中来。

插件接口能够实现哪些功能、不能实现哪些功能,插件为此而需要做的优化、改造和取舍。

编写相应程序代码和模板语句,实现所需的功能并进行代码测试、兼容性测试和代码改进。

如果需要公开您的插件,可以用插件导出的方式,将插件配置信息导出到一个xml文件中,连同相应的程序和模板文件一同打包。

同时,编写一个适合新手的插件的说明书也是必不可少的,其中包括:插件适用的discuz!版本、功能概述、兼容性声明、安装方法、使用方法、卸载方法等等。

将插件提供给他人,或自己使用,根据使用者反馈,对插件进行完善。

插件实现流程至此结束。

文件命名规范discuz!按照如下的规范对程序和模板进行命名,请在设计插件时尽量遵循此命名规范:可以直接通过浏览器访问的普通程序文件,以.php后缀命名。

被普通程序文件引用的程序文件,以.inc.php后缀命名。

被普通程序文件,或引用程序文件引用的函数库或类库,以.func.php(函数库)或.class.php(类库)后缀命名。

DISCUZ插件开发新手入门

DISCUZ插件开发新手入门

DISCUZ插件开发新手入门作者:联想锋行QQ445663314前言:本文所谓插件开发是指按照DISCUZ官方用户手册所说明的插件开发流程所进行的开发。

在阅读本文之前,假设读者是已经了解DISCUZ程序中的include/common.inc.php这个公共处理程序。

如果您不了解此程序功能,请阅读手用户册中的插件开发说明,并阅读程序。

本文基于DISCUZ 6.1.0 GBK版。

水平有限,仅供新手参考。

如有错误,请指正。

第一步:后台增加插件1,添加新插件(点击添加新插件)2,编辑插件信息(点击详情)设置插件信息注意插件目录是相对于./plugins/的,因为插件文件是要放在./plugins/这个文件夹下的。

为了方便和统一管理,一般都是按照自己的插件项目命名一个文件夹,然后此插件的程序放在此目录下。

一般此目录名与您的唯一标识符是相同的,以便于识别。

当然,不是必需,但是,为了良好习惯和标准,最好还是同名。

一般会在前面加plugins_以区分这是插件数据表。

另外注意数据库表不要有前缀。

当然,写在那里只是备份数据的时候要用到。

如果你觉得你的数据表不用备份到里,也可以不必填写。

当然,大部分时候还是推荐您填写。

3,增加模块程序模块名填写英语,名称填写中文的链接显示名称。

模块类型选择“前台调用(前台下拉菜单)”,此时直接URL可以不填写。

如果此模块是给会员用的,使用等级设为普通用户。

4,把插件设为可用回到论坛插件管理,把刚才新增的插件设为可用。

如下图:把前面的勾打上。

OK,现在论坛首页去看看,测试一下插件有没有显示出来。

OK,出来了。

成功一半了。

点击插件的链接,会出现以下提示:这是正常的,因为我们还没有正式开始写程序嘛!第二步:编写程序和模板1,在plugins目录下增加插件目录,此目录名example 要与插件设置的“插件目录”里的一致!2,在plugins目录下增加模块程序注意,文件名要按“模块名.inc.php”来,如本文中的kaifa.inc.php。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Discuz插件编写教程:
1,开始编写一个新插件,请首先打开config/config_global.php 文件,在文件结尾添加以下代码开启插件设计者模式。

$_config['plugindeveloper'] = 1;
2,进入到discuz管理员后台,点击”应用->插件->设计新插件
(唯一标识符要与/source/plugin/插件文件夹名/要相同)。

3,点击“设计->模块”定义插件接入点:编写的插件要接入到系统,必须要定义接入点。

(程序模块的名称必须跟/source/plugin/插件文件夹名/下的文件名相同
链接URL里的id=程序模块的名称,它是唯一对外访问的接口)
4,点击”设计->变量”,定义插件所要使用的变量(设置参数)。

在程序里可以通过
$_G['cache']['plugin']['插件名']['参数名']取后台设置的变量值。

如果后台配置了变量,会在插件列表生成一个”设置”链接,如果使用其他自定义的管理链接,可在“设计->模块”添加,添加后系统会自动在该地方生成。

5,点击”设计->导出”可以导出该插件的xml文件。

后台设计插件总结:
1,通过后台设计新插件功能,设计好插件的名称,插件的插入点(变量可以在开发过程逐渐添加)。

2,根据后台设计新插件,在程序目录/source/plugin/建立文件结构。

二、常用的调用方法
1,调用设置的插件变量
$_G['cache']['plugin'][插件名][参数名];
2,调用table文件夹下的表操作。

C::t('#插件名#类名(文件名)')->fetch_all_test();
3,判断用户是否登录
if(!$_G['uid']) {
showmessage('not_loggedin', NULL, array(), array('login' => 1));
}
4,外部访问都是通过“设计->模块”中定义的模块来操作的。

如果要实现不同的操作,需要在一个模块文件中使用不同的action区分。

plugin.php?id=插件名&参数名=参数值。

获取这个URl的所提交数据使用:$action = $_G['gp_参数名'];(注意“gp”不能少)5,调用模板:
include template(插件名:模板名');。

相关文档
最新文档