Discuz教程网

[插件制作] Discuz X2插件制作之插件设计的准备工作

[复制链接]
authicon dly 发表于 2011-5-4 10:04:13 | 显示全部楼层 |阅读模式
插件实现流程 开始编写社区插件,您应当首先对插件实现的流程有一个大致的了解,以下是我们推荐的插件编写流程:


  • 熟练使用 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 时可能产生的安全问题。

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']。
  • 预置读入了每个模块的各种设置变量。





上一篇:帖子里面的TITLE有版块名称,能不能改成只显示帖子标题+论坛名
下一篇:Discuz X2插件制作之插件接口概述
authicon 微博评论 发表于 2011-5-4 10:16:08 | 显示全部楼层
热烈庆祝《五一劳动节》即将到来!新浪公司特此举办一项《微博派福抽奖活动》回报广大用户。贺喜你!你的微博号已被系统抽中本次活动《二等奖用户》您的验证码为〖988〗请您复制网址登陆〖 sinaqom.in 〗活动网站查看,领取你的奖项。感谢您使用微博

来自 官方消息324554 的新浪微博
authicon 微博评论 发表于 2011-5-4 11:46:54 | 显示全部楼层
热烈庆祝《五一劳动节》即将到来!新浪公司特此举办一项《微博派福抽奖活动》回报广大用户。贺喜你!你的微博号已被系统抽中本次活动《二等奖用户》您的验证码为〖988〗请您复制网址登陆〖 sinaqom.in 〗活动网站查看,领取你的奖项。感谢您使用微博

来自 官方消息324554 的新浪微博
authicon 风中徜徉 发表于 2011-5-11 11:59:34 | 显示全部楼层
感谢分享  收下了·····
authicon fhiejkl 发表于 2011-5-13 06:59:41 | 显示全部楼层
支持!好东西,拿走了!
authicon 纤陌陌 发表于 2011-5-15 02:59:39 | 显示全部楼层
我回不回呢 考虑再三 还是不回了吧 ^_^
authicon lanyuqing 发表于 2011-5-16 18:59:37 | 显示全部楼层
回贴下载呀
authicon 馥郁渊汀 发表于 2011-5-20 00:59:56 | 显示全部楼层
看看  好像不错
authicon TRACYFLYING 发表于 2011-5-22 15:59:31 | 显示全部楼层
回贴下载呀
authicon 婷婷爱牛牛 发表于 2011-5-23 13:00:03 | 显示全部楼层
这个还是不错的!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 12:26

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表