Discuz! X 插件开发手册
DISCUZX系列二次开发帮助文档

目录+文件篇:| -- admin.php 管理员入口| -- api.php 接口文件| -- category.php 分类入口| -- cp.php 个人资料设置入口| -- crossdomain.xml FLASH跨域传输文件| -- favicon.ico 系统icon图标| -- forum.php 广场入口| -- group.php 群组入口| -- home.php 空间入口| -- index.php 首页入口| -- ivite.php 邀请处理文件| -- member.php 用户处理文件| -- misc.php 杂项处理文件| -- plugin.php 插件处理文件| -- portal.php 站点首页入口同 index.php| -- robots.txt 搜索引擎蜘蛛限制配置文件| -- search.php 搜索入口文件| -- userapp.php 用户应用、游戏、漫游入口文件| -- static 系统用到的图片包| -- template 系统总模板目录| -- uc_client ucenter客户端程序| -- uc_server FULL版本中ucenter服务端| -- api 接口文件夹| -- api -- db| -- api -- db -- dbbak.php 接口调用中用到的数据库备份文件,内涵数据库类| -- api -- javascript -- advertisemen.php 广告调用接口| -- api -- javascript -- javascript.php js调用接口| -- api -- manyou 漫游平台调用接口文件夹| -- api -- manyou -- class 漫游接口中需要用到的类的文件夹| -- api -- manyou -- Manyou.php 漫游接口文件| -- api -- manyou -- my.php 继承与manyou.php,用来执行更新用户资料的借口文件| -- api -- mobile 移动手机设备接口文件夹,这个文件夹中包含了大量的用户手机浏览器客户端显示的模板和执行文件。
Discuz插件编写教程

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,外部访问都是通过“设计->模块”中定义的模块来操作的。
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表单域及其值. 后台检测此值.如果是机器人,没通过浏览器,没有这个值.。
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) 显示层就是大家通常所看到的网站风格了。
康盛discuzX运营手册

康盛discuzX运营手册1. 介绍康盛discuzX是一个基于PHP和MySQL的论坛程序。
它拥有丰富的功能和优秀的性能,并且具有易用的界面和良好的扩展性。
本手册旨在帮助您了解如何运营和管理discuzX论坛,以确保您的网站安全、稳定且具有良好的用户体验。
2. 安装和配置康盛discuzX安装和配置非常简单,只需要按照官方文档的步骤进行即可。
安装完成后,您需要进行一些基本的配置,如设置网站名称、描述和关键字、配置邮件服务器、开启伪静态等。
同时,您还可以根据自己的需求配置插件和主题。
配置完成后,您的论坛即可正常运行。
3. 用户管理论坛成功与否,离不开良好的用户管理。
在康盛discuzX中,您可以使用多种方式管理用户,包括审核注册、IP禁止、用户组设置等。
通过这些方式,您可以控制用户的行为,并确保用户遵守论坛规则。
同时,您还可以设置用户信誉度和发帖权限,以提高论坛的质量和活跃度。
4. 内容管理康盛discuzX是一个内容丰富的论坛程序,您可以发布各种类型的内容,包括文字、图片、视频等。
在内容管理方面,您需要考虑一些关键问题,如主题设置、版块分类、帖子管理等。
另外,您还需要配置标签、积分、勋章等,以提高用户发帖量和贡献度。
5. 数据备份和恢复康盛discuzX中的数据非常重要,因此我们建议在进行任何操作之前先备份数据。
数据备份的步骤非常简单,您可以通过管理后台或phpMyAdmin等工具进行备份。
如果您的论坛出现了问题,您可以使用备份文件进行数据恢复。
6. 安全和维护康盛discuzX是一个相对安全的论坛程序,但是还是存在一些安全问题。
为了保证您的论坛安全稳定,我们建议您及时更新最新版的discuzX程序和插件,同时注意密码安全、文件权限、SQL注入等安全问题。
另外,如果您需要升级论坛程序,我们也需要考虑一些维护问题,如停机维护、下载升级包等。
7. 总结在本手册中,我们介绍了康盛discuzX的基本运营手册,包括安装和配置、用户管理、内容管理、数据备份和恢复、安全和维护等方面。
discuz使用手册

discuz使用手册
Discuz使用手册如下:
1. 安装:在电脑上下载安装lamp环境,可以phpstudy,然后安装。
下载discuz,这个要到官方论坛,专门有下载专区。
把discuz的upload复制
到phpstudy的网站目录。
在浏览器地址栏中输入localhost,进行安装就
可以了,都是自动的。
2. 删除回帖:在帖子页面,选中回帖右下方的多选框,点击“管理选项”中的“删除回帖”或者帖子底部的“删除”,输入操作理由,点击提交即可。
3. 移动主题:在版块页面或者帖子页面都可以操作,版块页面可以进行批量主题移动,帖子页面只能移动当前帖子。
操作页面针对移动方式有两个选项:移动主题、移动主题并在原来的版块中保留转向。
移动主题:主题直接被移动到目标版块。
保留转向:主题被移动到目标版块后在当前版块继续保留一个帖子链接,点击该链接则进入被移动到目标版块的帖子。
转向链接的帖子前面会有一个“移动”标志,并且帖子状态为锁定状态。
4. 屏蔽帖子:单帖屏蔽功能是一个超级实用的功能,它可以在版主认为用户发布的某个帖子不符合版规或内容有待商榷时使用。
希望以上信息能帮到您,如有疑问可查阅官网或咨询专业人士。
discuz使用手册

discuz使用手册一、简介Discuz是一款开源的论坛软件,拥有强大的功能和易于使用的界面。
本使用手册将详细介绍Discuz的各项功能和操作方法,帮助用户快速上手并充分发挥其优势。
二、安装与设置1. 安装步骤a. 下载Discuz安装包并解压;b. 创建数据库,并将Discuz安装包中的文件上传至服务器;c. 运行安装向导,填写数据库信息和管理员设置;d. 完成安装并进行相关配置。
2. 基本设置a. 登录后台管理中心;b. 配置站点名称、URL、时区等基本信息;c. 设定用户注册和登录方式;d. 设置论坛的版块和权限。
三、论坛管理1. 用户管理a. 注册与审核:设定用户注册流程及审核方式;b. 用户组管理:创建不同的用户组以区分权限和管理;c. 用户权限设置:设定不同用户组的权限。
2. 板块管理a. 创建板块:设置论坛的版块及其属性;b. 板块权限:为不同用户组设定各自的板块权限;c. 主题分类:创建主题分类以便用户更好地进行讨论。
四、主题与回复1. 发表主题a. 在指定板块中点击发布新主题;b. 编写主题标题和内容;c. 标记关键字和添加附件(如果需要);d. 发布主题并等待其他用户回复。
2. 回复主题a. 在主题页面中点击回复按钮;b. 编写回复内容;c. 可选的附带图片、链接等;d. 提交回复并等待其他用户互动。
五、权限管理1. 用户权限a. 默认用户组权限:管理新注册用户的权限;b. 特殊用户组权限:特定用户组的特殊权限设置;c. 用户自定义权限:用户能够自行设置的权限。
2. 板块权限a. 读权限:设置用户可以阅读哪些板块;b. 发帖权限:设定用户是否能够在特定板块发布主题;c. 回帖权限:控制用户是否可以回复特定板块的主题。
六、其他功能1. 积分和勋章:设定用户获得积分和勋章的规则;2. 用户签名:设置用户在论坛中的个性签名;3. 搜索功能:快速搜索论坛中的主题和回复;4. 草稿箱:自动保存用户未发布的内容;5. 私信和@功能:用户之间的私密交流;6. 管理员工具:包括数据备份、论坛开关等。
Discuz!X插件开发手册

Discuz! X1.5 插件开发手册2010/9/1 By Monkey插件设计您在开始进行社区插件的设计之前,有必要了解一下我们所推荐的插件设计方式,更好的规范性和兼容性,将使得您设计的插件受到更多使用者的欢迎,对于程序员而言,也有助于形成良好的编码习惯,实现自身能力的提升。
如果您有意编写 Discuz! 社区插件,请按照先后顺序仔细阅读本文档。
准备工作开启Disucz Debug模式1、下载Discuz Debug补丁包,并解压。
点我下载1、上传文件到论坛根目录2、在 config/config_global.php 中添加 $_config['debug'] = n;n = 1,debug 标准模式n = 2,debug E_ALL模式n = 字串,当前 $_GET、$_POST 等 REQUEST 参数中包含 debug=字串时显示插件实现流程开始编写社区插件,您应当首先对插件实现的流程有一个大致的了解,以下是我们推荐的插件编写流程:o熟练使用 Discuz! 社区系统后,对希望完善或补充的个性化功能进行评估,进而提出插件的功能需求。
o对插件做一个概括性的设计,例如:需要使用什么菜单、什么参数,配置哪些选项、数据结构如何设计、前后台实现哪些功能等等。
o阅读本文档并在系统设置中实际体验 Discuz! 插件接口所实现的功用,例如:您的插件应当如何设计才能良好的挂接到社区系统中来。
插件接口能够实现哪些功能、不能实现哪些功能,插件为此而需要做的优化、改造和取舍。
o编写相应程序代码和模板语句,实现所需的功能并进行代码测试、兼容性测试和代码改进。
o如果需要公开您的插件,可以用插件导出的方式,将插件配置信息导出到一个 XML 文件中,连同相应的程序和模板文件一同打包。
同时,编写一个适合新手的插件的说明书也是必不可少的,其中包括:插件适用的 Discuz! 版本、功能概述、兼容性声明、安装方法、使用方法、卸载方法等等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2010/9/1 By Monkey插件设计您在开始进行社区插件的设计之前,有必要了解一下我们所推荐的插件设计方式,更好的规范性和兼容性,将使得您设计的插件受到更多使用者的欢迎,对于程序员而言,也有助于形成良好的编码习惯,实现自身能力的提升。
如果您有意编写 Discuz! 社区插件,请按照先后顺序仔细阅读本文档。
准备工作插件实现流程开始编写社区插件,您应当首先对插件实现的流程有一个大致的了解,以下是我们推荐的插件编写流程:熟练使用 Discuz! 社区系统后,对希望完善或补充的个性化功能进行评估,进而提出插件的功能需求。
对插件做一个概括性的设计,例如:需要使用什么菜单、什么参数,配置哪些选项、数据结构如何设计、前后台实现哪些功能等等。
阅读本文档并在系统设置中实际体验 Discuz! 插件接口所实现的功用,例如:您的插件应当如何设计才能良好的挂接到社区系统中来。
插件接口能够实现哪些功能、不能实现哪些功能,插件为此而需要做的优化、改造和取舍。
编写相应程序代码和模板语句,实现所需的功能并进行代码测试、兼容性测试和代码改进。
如果需要公开您的插件,可以用插件导出的方式,将插件配置信息导出到一个 XML 文件中,连同相应的程序和模板文件一同打包。
同时,编写一个适合新手的插件的说明书也是必不可少的,其中包括:插件适用的 Discuz! 版本、功能概述、兼容性声明、安装方法、使用方法、卸载方法等等。
将插件提供给他人,或自己使用,根据使用者反馈,对插件进行完善。
插件实现流程至此结束。
文件命名规范Discuz! 按照如下的规范对程序和模板进行命名,请在设计插件时尽量遵循此命名规范:可以直接通过浏览器访问的普通程序文件,以 .php 后缀命名。
被普通程序文件引用的程序文件,以 .inc.php 后缀命名。
被普通程序文件,或引用程序文件引用的函数库或类库,以 .func.php(函数库) 或 .class.php(类库) 后缀命名。
模板文件,以 .htm 后缀命名,插件模板文件存在于 source/plugin/identifier/template/ 目录中。
模板语言包文件,以 .lang.php 后缀命名,插件语言包文件开发时存放于 data/plugindata/ 目录中,文件名为ng.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['user'](加了 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']。
预置读入了每个模块的各种设置变量。
插件接口概述使用管理员账号登录 Discuz! 管理中心,在顶部菜单将可以看到“插件”菜单。
“插件列表”列出了所有已安装的插件,是控制插件打开与否、设计插件模块、菜单、参数和使用权限的地方,插件开发者可以依照设计意图,在此进行插件的初步设置,这里同时也提供插件导入和插件开关的功能,用于导入他人设计的插件和对插件的可用状态进行变更。
开始编写一个新插件,请首先在插件管理中选择“设计新插件”,填写插件名称,名称用于表明此插件的用途,例如设置为“虚拟银行插件”。
惟一标识符用于在后续的插件模块中调用本插件,不可与现有插件重复,命名规则限制与 PHP 变量命名相同,虽然初次设置后仍可改动,但强烈建议一次性将此配置设置好,否则可能涉及到很多代码方面的变更,增加编码的麻烦。
请注意:惟一标识符请不要设置的过短,或使用有可能与其他插件重复的命名,例如制作此插件的公司叫做 Comsenz Inc.,插件名称是“虚拟银行插件”,惟一标识符可设置为“comsenz_virtual_bank”,后面将以“虚拟银行插件”和“comsenz_virtual_bank”为例进行说明。
在 source/plugin/ 目录中创建与唯一标识符同名的目录名,如 source/plugin/comsenz_virtual_bank/。
在插件管理中添加插件后,仅仅是增加了一条插件记录,后面还需要很多相关的设计和设置。
在列表中选择插件的“详情”进入插件的详细设置。
插件设置分为三个部分:插件基本设置:设置插件的基本参数,配置项目右边括号中的内容,为此设置对应的参数名称,调用方法将在后面的《参数读取与缓存控制》中详细说明。
插件模块:插件模块分为程序链接、扩展项目和程序脚本 3 类:程序链接导航栏项目:可在前台导航栏增加一个菜单项,可自主指派菜单链接的 URL,也可以调用插件的一个模块,模块文件名指派为 source/plugin/插件目录/插件模块名.inc.php”。
注意:由于引用外部程序,因此即便设置了模块的使用等级,您的程序仍需进行判断使用等级是否合法。
程序链接导航栏 - 插件菜单项目:可在前台导航栏的插件子菜单中增加一个菜单项。
扩展项目个人面板:可在个人面板上部增加一个菜单项。
扩展项目个人面板 - 个人资料:可在个人面板的个人资料页上部增加一个菜单项。
扩展项目个人面板 - 积分和用户组:可在个人面板的积分和用户组页上部增加一个菜单项。
扩展项目站点帮助:可在站点帮助增加一个菜单项。
扩展项目文章管理:可在前台文章管理面板上部增加一个菜单项。
扩展项目论坛管理 - 基本:可在前台论坛管理面板侧边上部增加一个菜单项。
扩展项目论坛管理 - 工具:可在前台论坛管理面板侧边下部增加一个菜单项。
扩展项目管理中心:可在后台插件栏目中为此插件增添一个管理模块。
程序脚本页面嵌入:设置一个包含页面嵌入脚本的模块,模块文件名指派为 source/plugin/插件目录/插件模块名.class.php”。
(页面嵌入将在后面的《页面嵌入模块开发》中详细说明)程序脚本特殊主题:设置一个特殊主题脚本的模块,模块文件名指派为 source/plugin/插件目录/插件模块名.class.php”。
(特殊主题将在后面的《特殊主题模块开发》中详细说明)您可以为每个模块设置不同的使用等级,例如设置为“超级版主”,则超级版主及更高的管理者可以使用此模块。
插件变量配置:插件接口中提供了一个通用的插件配置管理程序,在大多数情况下可实现插件的参数配置,省却了插件开发者自行编写后台管理模块(即上面提到的“扩展项目管理中心”模块)的麻烦。
通常情况下,应优先使用通用插件配置管理程序来实现插件的参数配置,只有在通用程序确实无法实现时,才自行编写后台管理模块。
输入配置名称和配置变量名、选择合适的配置类型后,即可为此插件增加一个配置变量,点“详情”可以编辑此配置变量的更多信息。
为了方便插件程序调用使用者配置好的参数,配置变量同样被存放在了缓存文件中,读取方法将在后面的《参数读取与缓存控制》中详细说明。
注意:您只有在插件管理中将插件设置为“可用”,以上设置才能生效。
参数读取与缓存控制编写插件程序时,可能需要读取一些插件的信息,如果插件需要使用者进行配置,还需要读取使用者设置的参数值。
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'] 中。