discuz模板使用教程

  • 格式:docx
  • 大小:41.93 KB
  • 文档页数:24

下载文档原格式

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

竭诚为您提供优质文档/双击可除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/目录中,文件名为ng.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!管理中心,在顶部菜单将可以看到“插件”菜单。“插件列表”列出了所有已安装的