- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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 服务器打开 Directory Index 时可能产生的安全问题。
[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]
您可能关注的文档
- A5-2-3环境因素识别及风险评价管理办法.doc
- aax.AB公司薪酬设计方案.doc
- Abaqus(警告错误信息)【错误和警告信息汇总】.docx
- ABC4040.1现金管理服务协议.doc
- abfnyn农村信用社最高额借款合同[样本].doc
- ACCA-你一定要会的115个公式.doc
- ACCESS宏-数据安全与管理.doc
- ACDSeePro8.doc使用说明.副本.doc
- Access罗斯文库学习教程[lastmem].doc
- ACCA高分技巧-五要.doc
- 届高三次模拟考试数学试卷.pdf
- 立德树人演讲稿锦集五篇.pdf
- 2024山东公共课程《基本医疗卫生与健康促进法》题库答案.docx
- 2024山东公共课程《山东省病例书写与管理基本规范》2020版题库答案.docx
- 人教五级英语上册unit 3测试卷.pdf
- 8.1我们的梦想-课件 2024-2025学年统编版道德与法治九年级上册.pptx
- 3.1生活在新型民主国家-课件 2024-2025学年统编版道德与法治九年级上册.pptx
- 6.2共筑生命家园-课件 2024-2025学年统编版道德与法治九年级上册.pptx
- 1.2走向共同富裕-课件 2024-2025学年统编版道德与法治九年级上册.pptx
- 5.2凝聚价值追求-(教学设计) 2024-2025学年统编版道德与法治九年级上册.doc
文档评论(0)