discuz模板使用教程.docx
- 文档编号:6166671
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:9
- 大小:23.15KB
discuz模板使用教程.docx
《discuz模板使用教程.docx》由会员分享,可在线阅读,更多相关《discuz模板使用教程.docx(9页珍藏版)》请在冰豆网上搜索。
discuz模板使用教程
竭诚为您提供优质文档/双击可除
discuz模板使用教程
篇一:
discuzx3.x模板插件开发制作教程(从入门到精通)
一、开发插件所需资料与工具
1、discuzx3插件机制
插件机制discuz!
拥有一套完整的插件机制。
合理使用插件机制,你可以更好的将自己的个性功能需求整合到discuz!
产品中的同时,保持代码独立,并且不受后续discuz!
产品版本升级的影响。
我们鼓励并推荐,使用插件机制进行个性需求定制和研发。
插件设计的准备工作
插件实现流程
开始编写社区插件,您应当首先对插件实现的流程有一个大致的了解,以下是我们推荐的插件编写流程:
熟练使用discuz!
社区系统后,对希望完善或补充的个性化功能进行评估,进而提出插件的功能需求。
对插件做一个概括性的设计,例如:
需要使用什么菜单、什么参数,配置哪些选项、数据结构如何设计、前后台实现哪些功能等等。
阅读本文档并在系统设置中实际体验discuz!
插件接口所实现的功用,例如:
您的插件应当如何设计才能良好的挂接到社区系统中来。
插件接口
能够实现哪些功能、不能实现哪些功能,插件为此而需要做的优化、改造和取舍。
编写相应程序代码和模板语句,实现所需的功能并进行代码测试、兼容性测试和代码改进。
如果需要公开您的插件,可以用插件导出的方式,将插件配置信息导出到一个xml文件中,连同相应的程序和模板文件一同打包。
同时,编写
一个适合新手的插件的说明书也是必不可少的,其中包括:
插件适用的discuz!
版本、功能概述、兼容性声明、安装方法、使用方法、卸载方法等
等。
将插件提供给他人,或自己使用,根据使用者反馈,对插件进行完善。
插件实现流程至此结束。
文件命名规范
discuz!
按照如下的规范对程序和模板进行命名,请在设计插件时尽量遵循此命名规范:
可以直接通过浏览器访问的普通程序文件,以.php后缀命名。
被普通程序文件引用的程序文件,以.inc.php后缀命名。
被普通程序文件,或引用程序文件引用的函数库或类库,以.func.php(函数库)或.class.php(类库)后缀命名。
模板文件,以.htm后缀命名,插件模板文件存在于source/plugin/identifier/template/目录中,手机版插件模板存在于
source/plugin/identifier/template/mobile/目录中
模板语言包文件,以.lang.php后缀命名,插件语言包文件开发时存放于data/plugindata/目录中,文件名为identifier.lang.php。
动态缓存文件,存放于./data/cache目录中,依据不同的功用进行独立的命名。
使用后台数据备份功能生成的备份文件,通常以.sql为后缀,存放于data/目录中。
有些目录中存在内容为空白的index.htm文件,此类文件是为了避免web服务器打开directoryindex时可能产生的安全问题。
[x2.5新增内容]从discuz!
x2.5开始,产品对数据表进行了封装,封装后的文件统一命名为table类,通过“c:
:
t(table类文件名)”方式调用。
插件如需封装自己的数据表,可将table类文件存放于source/plugin/identifier/table/目录下,并以table_表名.php格式命名,详见x2.5的新
程序架构。
class_core.php模块功能白皮书
source/class/class_core.php是discuz!
的通用初始化模块程序,其几乎被所有的外部代码所引用,在您开始插件设计之前,可以先对该模块的大致功能做一定的了解。
class_core.php主要完成了以下任务:
对不同php及操作系统环境做了判断和兼容性处理,使得discuz!
可以运行于各种不同配置的服务器环境下。
初始化常量in_discuz为tRue,用于include或require后续程序的判断,避免其他程序被非法引用。
读取社区程序所在绝对路径,存放于常量discuz_Root中。
加载所需的基本函数库source/function/function_core.php。
通过config/config_global.php中提供的数据库账号信息,建立数据库连接。
discuz!
支持数据表的前缀,如需获得表的全名,可使用
“db:
:
table(tablename)”方式。
判断用户是否登录,如登录标记$_g[uid]为非0,同时将$_g[username](加了addslashes的用户名,可用于不加修改的插入数据库)、
$_g[member][username](原始的用户名,可用于页面显示)、$_g[member][password](用户密码的md5串)等相应用户信息赋值,其他
用户信息存放于$_g[member],更多信息可通过“getuserprofile()”获取。
判断用户管理权限,将管理权限标记$_g[adminid]为1~3中间的值。
0代表普通用户;1代表论坛管理员;2代表超级版主;3代表论坛版
主。
将用户权限按照其所在的主用户组id标记为$_g[groupid],相关权限从该$_g[groupid]所对应的系统缓存中读出,存放于$_g[group]。
预置读入了每个模块的各种设置变量。
[x2.5变更内容]$_g[username]将不进行addslashes处理。
插件接口概述
使用管理员账号登录discuz!
管理中心,在顶部菜单将可以看到“插件”菜单。
“插件列表”列出了所有已安装的插件,是控制插件打开与否、设计插件模块、菜单、参数和使用权限的地方,插件开发者可以依照设计意图,在此进行插件的初步设置,这里同时也提供插件导入和插件开关的功能,用于导入他人设计的插件和对插件的可用状态进行变更。
开始编写一个新插件,请首先打开config/config_global.php文件,在文件结尾添加以下代码开启插件设计者模式。
$_config[plugindeveloper]=1;
在插件管理中选择“设计新插件”,填写插件名称,名称用于表明此插件的用途,例如设置为“虚拟银行插件”。
惟一标识符用于在后续的插件模块中调用本插件,不可与现有插件重复,命名规则限制与php变量命名相同,虽然初次设置后仍可改动,但强烈建议一次性将此配置设置好,否则可能涉及到很多代码方面的变更,增加编码的麻烦。
请注意:
惟一标识符请不要设置的过短,或使用有可能与其他插件重复的命名,例如制作此插件的公司叫做comsenzinc.,插件名称是“虚拟银行插件”,惟一标识符可设置为“comsenz_virtual_bank”。
最后在source/plugin/目录中创建与唯一标识符同名的目录名,如source/plugin/comsenz_virtual_bank/。
在插件管理中添加插件后,仅仅是增加了一条插件记录,后面还需要很多相关的设计和设置。
在列表中选择插件的“详情”进入插件的详细设置。
插件设置分为三个部分:
插件模块
插件模块分为程序链接、扩展项目和程序脚本3类:
程序链接主导航项目:
可在主导航栏增加一个菜单项,可自主指派菜单链接的uRl,也可以调用插件的一个模块,模块文件名指派为
source/plugin/插件目录/插件模块名.inc.php”。
注意:
由于引用外部程序,因此即便设置了模块的使用等级,您的程序仍需进行判断使用等
级是否合法。
程序链接主导航项目-插件菜单:
可在主导航栏的插件子菜单中增加一个菜单项。
程序链接顶部导航项目、底部导航项目、快捷导航项目、家园导航项目:
可在各个导航中增加一个菜单项。
扩展项目个人设置:
可在个人设置中增加一个菜单项。
扩展项目个人设置-个人资料:
可在个人设置的个人资料页上部增加一个菜单项。
扩展项目个人设置-积分:
可在个人设置的积分页上部增加一个菜单项。
扩展项目站点帮助:
可在站点帮助中增加一个菜单项。
扩展项目我的帖子:
可在我的帖子中增加一个菜单项。
扩展项目门户管理:
可在门户管理面板上部增加一个菜单项。
扩展项目论坛管理-基本:
可在前台论坛管理面板侧边上部增加一个菜单项。
扩展项目论坛管理-工具:
可在前台论坛管理面板侧边下部增加一个菜单项。
扩展项目管理中心:
可在后台插件栏目中为此插件增添一个管理模块。
程序脚本页面嵌入-普通版:
设置一个包含页面嵌入脚本的模块,该模块用于在普通电脑访问的页面显示。
模块文件名指派为
source/plugin/插件目录/插件模块名.class.php”。
(页面嵌入将在后面的《》中详细说明)
程序脚本页面嵌入-手机版:
设置一个包含页面嵌入脚本的模块,该模块用于在手机访问的页面显示。
程序脚本特殊主题:
设置一个特殊主题脚本的模块,模块文件名指派为source/plugin/插件目录/插件模块名.class.php”。
(特殊主题将
在后面的《特殊主题模块开发》中详细说明)
您可以为每个模块设置不同的使用等级,例如设置为“超级版主”,则超级版主及更高的管理者可以使用此模块。
扩展项目模块可以在社区的特定位置扩展出新的功能,通常用于扩展新的设置项目。
项目的脚本文件以.inc.php结尾(如test.inc.php),模版为固定文件名,位于插件目录的template/子目录中,文件名与脚本名同名(如test.htm),扩展名为.htm。
添加相应的扩展项目模块时,需注明程序模块、菜单名称。
例如我们添加个人面板项目,程序模块为test,菜单名称是“测试”,当插件启用后,个人面板即家园的设置中会出现“测试”拓展项目。
在新插件内核中,通过plugin.php方式访问的插件可直接通过plugin.phpid=xxx:
yyy方式调用而无需再在后台定义为普通脚本模块,只要source/plugin/xxx/yyy.inc.php文件存在即可。
如果xxx和yyy同名,可直接通过plugin.phpid=xxx方式访问。
插件变量配置
插件接口中提供了一个通用的插件配置管理程序,在大多数情况下可实现插件的参数配置,省却了插件开发者自行编写后台管理模块(即上面提到的“扩展项目管理中心”模块)的麻烦。
通常情况下,应优先使用通用插件配置管理程序来实现插件的参数配置,只有在通用程序确实无法实现时,才自行编写后台管理模块。
输入配置名称和配置变量名、选择合适的配置类型后,即可为此插件增加一个配置变量,点“详情”可以编辑此配置变量的更多信息。
为了方便插件程序调用使用者配置好的参数,配置变量同样被存放在了缓存文件中,读取方法将在后面的《插件的参数读取与缓存控制》中详细说明。
注意:
您只有在插件管理中将插件设置为“可用”,以上设置才能生效。
插件的参数读取与缓存控制
编写插件程序时,可能需要读取一些插件的信息,如果插件需要使用者进行配置,还需要读取使用者设置的参数值。
discuz!
允许插件程序使用数
据库读取和缓存读取这两种方法获取插件信息和参数。
discuz!
的插件接口已经对插件信息进行了合理的缓存,使用缓存读取的方式,将比数据库
读取速度更快,消耗的资源更是几乎可以忽略不计。
缓存读取唯一的局限是需要插件使用插件接口提供的通用后台管理程序。
如果使用自定义后台
模块的方式,需要后台模块将参数存放到pluginvars数据表中,才能被系统正常缓存。
我们强烈推荐您通过缓存读取插件信息和配置数据。
由于调用系统缓存统一通过“loadcache()”函数调用,并存放于$_g
[cache]中,因此“loadcache(plugin)”后插件的变量缓会存放于
$_g[cache][plugin]中。
嵌入点插件和以plugin.php为主脚本调用的插件无需加载此缓存,系统已自动加载了缓存。
变量配置类型为“版块/*”
的变量会保存在$_g[cache][forums][fid][plugin]中。
变量配置类型为“用户组/*”的变量会保存在$_g[cache][usergroup_groupid][plugin]
和$_g[group][plugin]中。
页面嵌入模块开发
页面嵌入类型脚本格式 functionhookid_1(){
......
return...;
}
functionhookid_2(){
......
return...;
}
......}//脚本嵌入点类classplugin_identifier_cuRscRiptextendsplugin_identifier{
functionhookid_1(){
......
return...;
}
functionhookid_2(){
......
return...;
}
......}>
plugin_
普通版脚本中的类名以plugin_开头。
手机版脚本中的类名以mobileplugin_开头。
identifier
插件的唯一标识符,在插件设置中设置。
cuRscRipt
嵌入点位于的脚本名,如forum.php为forum。
hookid
函数名调用位置
所有模块执行前被调用声明位置参数含义hookid()脚本嵌入点类
$value:
array(template=>当前要输出的模版,message=>
showmessage的信息内容,values=>showmessage的信息脚本嵌入点类变量,
)
全局嵌入点类
脚本嵌入点类$value:
array(param=>showmessage()函数的参数数组,
)hookid_output($value)模块执行完毕,模板输出前被调用global_hookid()模块执行完毕,模板输出前被调用showmessage()执行时调用hookid_message($value)
ad_adid($value)相应的广告位中调用$value:
array(params=>广告位参数,content=>当前广全局嵌入点类函数名为广告位脚本id如:
告位原本将要显示的内容,脚本嵌入点类ad_headerbanner())
篇二:
图文解说教你制作discuz模版
模板制作前请将你的界面设计好,并制作成html+css的格式。
这里我就以大魔王的“蓝色经典”作为样版(知识共享,希望大魔王不要介意,如有侵权,请及时通知我)。
效果图如
下:
(图1)
在开始前,先了介绍一下discuz!
的几个模板文件:
1、header.htm--------------------------------------页面头部
2、discus.htm----------------------------------------------------------
-----论坛首页
3、footer.htm----------------------------------------------------------
-----页面底部
4、viewthread----------------------------------------------------------
----查看帖子内容
discuz!
论坛的页面通常是几个模板文件共同作用下达到的效果,如图1就是
header.htm+discus.htm+footer.htm这三个文件共同作用的效果。
heaer.htm对应的是:
(图2)
Footer.htm对应的是:
(图3)
剩下的就是discuz.htm文件显示的了。
当然你要将首页显示的效果就制作成一个文件模板也是可以的,这里之所以分开,是因为header.htm和footer.hmt文件通常还会被其它的模版文件引用。
也就是说,其它的页面(比如发贴的页面)的头部、底部与首页的头部、底部完全一样,分开来写就可以达到重复利用,
减少劳动的效果。
下面我们就开始制作:
首先,现在我要制作的这套模板叫test,那么我就在templates目录下建立一个test目录。
在test目录下再新建一个images文件夹用于存放这套模板的图片,把切好的所有图片保存到这个文件夹中。
templates/test文件夹用于存放这套模板的htm文件,在这个目录中新建三个文件header.htm、discuz.htm、footer.htm,打开你设计好的主页html文件,将你
想作为头部的那一段代码复制粘贴到header.htm文件中,
相应的将作为底部的那一段代码复制粘贴到footer.htm文件中,其余的代码复制粘贴到
discuz.htm文件中。
最后在discuz.htm文件的最顶部和最底部分别加上:
{subtemplateheader}和
{subtemplatefooter}
这两句算是discuz的语言,意思是将header.htm和footer.htm文件包含进来,这样就构
成了一个完整的主页面了。
接下来的工作要在论坛后台设置中来完成
(1)进入论坛点击“系统设置——>界面——>模板管理”,在新增模板后填
入模板名称,模板文件所在目录,板权信息然后提交即可!
如图4:
(图4)
(2)在“界面——>风格管理”中,在新增界面风格后填入方案名称“test”然
后提交即可!
(3)提交方案名称后,您就可以在界面风格中看到您所定义的新的风格方案。
如
下图:
(图5)
注意上面用红色圆圈圈起来的那幅模版预览图,你的是不是没有显示出来?
这需要将你的首页的效果图做成110x120并命名为preview.jpg,将这图片放到test目录下就可以了。
到此,一套新的风格模板方案就添加到模板库里了,但还不是我们需要的最终效果,接下来要
对模板文件继续进行
调整,以达到想要的最终效果
(4)点击[编辑]后就可以进入该模板的风格配色方案的编辑页面,按照图6把
各个对应参数填入相应位置。
(图6)
填写好后,点击“提交”,更新一下缓存,浏览论坛首页出现下图:
(图7)
呵呵,有内容出来了,可是排版上却变得乱七八糟了,这是因为还没有引入css文件。
这时
将原来设计好的css文件放到你模板目录下(templates/test),并将它重命名为“css_append.htm”(注意:
改后的文件名是css_append,后缀名是htm)。
接着打开header.htm文件,找到你引入css文件的语句,这会因为引入的语句不同而不同,我这里是@importurl(css/style.css);将这个替换为:
$rsshead
$extrahead
{subtemplatecss_script}
这样就可以将你的css文件引入了。
进入后台更新一下缓存,现在的效果图如下:
(图8)
这样就整齐了许多,这时你是不是发觉少了点东西?
没错,图片没有显视出来。
下面我们先将背景图(也就是css文件中引入的图片)显示出来。
打开css_append.htm文件,找到所
有你引入图片的地方,将路径替换为“{styleimgdiR}”。
例如:
这里有一句:
#footer{padding:
1em0;background:
url(images/footer_bg.gif)}
将它改为:
#footer{padding:
1em0;background:
url({styleimgdiR}/footer_bg.gif)repeat-xtop;}{styleimgdiR}实际上是discuz的一个变量,当模板被解释时,就会用一个值来替换这个变量,这个变量的值可以在后台设置。
进入后台后点击“界面——>风格管理”出现下图:
篇三:
discuz模板修改教程演示
discuz模板修改教程演示
discuz教程演示,discuz模板修改
近几天做了几套模板先将心的整理一下发给大家以供各位参考借鉴。
在做模板之前大家最好具备一些基本的网页制作方面的知识。
那么咱们先来看看如何制作一套简单的模板流程。
1、在photoshop中制作风格页面并切图保存;
2、制作html文档,css调整;
在开始前,先了介绍一下discuz!
的几个模板文件:
1、header.htm--页面头部
2、discus.htm--论坛首页
3、index_header.htm--头部发帖按钮,和公告内容页。
4、footer.htm--页面底部
5、viewthread.htm--查看帖子内容
6、css_common.htm--公共样式css样式页面
7、css_script.htm--其他常用css样式页面
首先我们要制作的这套模板叫test,那么我就在templates目录下建立一个test目录。
在test目录下再新建一个images文件夹用于存放这套模板的图片,把切好的所有图片保存到这个文件夹中。
templates/test文件夹用于存放这套模板的htm文件,首先我们先到default默认模板下面去复制header.htm、discuz.htm、footer.htm这三个htm文件。
然后分别打开着三个文件,可能这里你需要一些常用的htm语言常识,和一些基本的css语法。
如果你不会的话可以去查阅一些资料。
我们大多时候我们不必完全去重新做。
默认模板的head等头部信息我们还是非常有必要要保留。
将你做好的静态文件的切图我ps缩小成一个110x120大小名为preview.jpg的图片放到test目录下(这是后台安装界面显示的缩略图)。
接下来的工作要在论坛后台设置中来完成
(1)进入论坛点击“系统设置——>界面——>模板管理”,在新增模板后填入模板名称,模板文件所在目录,板权信息然后提交即可!
如
(3)然后切换到“系统设置——>界面——>风格管理”,您就可以在界面风格中看到您所定义的新的风格方案。
点击安装就可以了!
如下图:
(4)然后点击[编辑]后就可以进入该模板的风格配色方案的编辑页面,此根据你的界面风格配色方案设置一下你的配色方案。
具体的设置参数,主要对应的前台显示效果参照如下链接地址的标注:
http:
///viewthread.phptid=1496344right:
0;bottom:
0;_bottom:
-2px;height:
26px;}
#menuli{display:
inline;float:
left;margin-left:
5px;{menubgcode};}
#menua{float:
left;padding:
014px;height:
25px;border:
solid{menuboRdeR};border-width:
1px1px0;background:
transparentnone;line-height:
25px;color:
{menut
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- discuz 模板 使用 教程