规范化的插件开发可以提高插件的可用性,同时还可以避免升级论坛适合导致插件无法使用。本文旨在供插件开发者们参考。
一、插件目录和文件命名的规范
hack根目录下是pw自带的一些插件:
本例假定 插件根目录 hack/test目录 存放插件主要文件,包括在根目录下的文件内容如下:
比如我建立一个test目录结构如下
hack/ 论坛插件根目录
test/ 用户制定目录
template/ 模板目录
image/ 图片目录,强烈建议使用$hkimg变量来制定此目录,这样可以让文件有极大的灵活性
admin.php 插件后台控制文件,如果无此文件,则插件无后台管理功能
index.php 插件前台控制文件,如果不存在,插件不显示前台界面
sql.txt 建表sql语句文件,禁止Drop PHPWind自身数据以及杀出已有数据等危险操作
info.xml 插件名称信息
readme.txt插件使用说明,来提供给用户相关说明的文档
倘若无前台显示/后台设置等,可以没有相应的文件,如果有相应功能,则文件命名必须按照指定规则 。另外,如果插件比较大, 可以把一些常用的函数写成文件放入到hack根目录下的require文件夹
倘若插件比较大,可以把一些常用的函数写成文件放入到require文件夹。
二、缓存文件
出于文件777属性考虑,以及缓存文件的统一部署,建议插件开发者将缓存文件存储为data/bbscache 目录下(此目录已经可写,否则无法使用),同时,出于进一步的为插件使用者着想,建议缓存文件使用程序生成,来避免第一次使用插件时,因为没有缓存文件或者缓存文件不可写而导致的错误--我们必须考虑到,部分用户不熟悉电脑操作,并不了解如何设置文件777属性,所以建议并不附带默认的缓存文件,而默认的缓存文件,在插件使用者第一次使用的时候,自动生成到data/bbscache目录下,这样将避免插件安装中频繁出现的777问题。[备注提示:一般附带缓存的文件,可内置某些默认值,然后插件完成安装之后,使用者应该进行一次设置提交来保存它所需要的设置,在这个时候设置再生成缓存文件到data/bbscache目录下一个缓存文件,能够有效的避免需要设置777的问题]
三、插件专用常量/变量
可以参考论坛根目录hack.php,hack.php是所有插件的入口文件:
1) H_P 插件根目录,用途相当于R_P等常量,为插件专用。R_P."index.php"为论坛根目录下的index.php,H_P."index.php",即指当前插件目录下的index.php文件
2) $basename 插件主文件,程序中任何需要引用到自身的可以用此变量代替。
3) $hkimg 插件图片目录,插件所使用的图片存放路径,相对路径为 /BBS根目录/Hack目录/插件目录/image目录,此变量的目的在于使得插件目录更灵活,在文件中引用图片路径更简单。
以上内容将为插件的目录结构,插件的程序开发提供极大的灵活性,我们倘若修改了名称或者唯一ID之后,唯一需要做的只是修改一下FTP上文件夹的名称跟唯一ID保持一致即可。
四、插件相关主要函数
1) Refreshto [前台文件相关]
函数可在执行某操作之后,将页面跳转到指定的网址,附带三个参数,第一个参数为跳转的网址,第二个参数为跳转过程中提示的内容,第三个参数为跳转页面停留的时间。前两个参数必须,第三个参数可选。举例为:
refreshto("thread.php?fid=9","您的操作已成功");
2) Showmsg [前台文件相关]
函数一般用来返回某错误信息,并终止程序的下一步操作,继而供用户返回前一页面。本函数只有一个参数,即犯错的错误提示内容。举例为:
Showmsg("您无权访问本页面");
3) Writeover [前台后台通用]
文件写函数,本函数将指定的字符串信息写入到指定的文件中去,有两个必选参数,第一个是文件名,第二个是字符串内容。举例为:
$str="abcdefg";
writeover(D_P."data/bbscache/aa.php",$str);
4) Char_cv [前台后台通用]
对于POST等方法传递过来的变量内容,推荐使用本函数进行处理,本函数将过滤字符串中的危险内容。提高安全性。本函数举例如下:
$str=Char_cv($str);
5) PrintHack [前台后台通用]
函数为插件专用,用来返回一个模板的路径,作为require/include等函数的参数传递。只有两个参数,第一个为模板文件的主文件名,该参数必须,第二个参数为模板文件的扩展名(后坠),该参数可选,默认为htm。举例为:
require PrintHack("info"); 包含插件目录下的template目录下的info.htm文件。倘若要包含info.html文件,则应该为require PrintHack("info","html");
6) Adminmsg [后台文件使用]
函数主要用于在后台操作时返回某个提示信息,函数有三个参数,第一个参数必选,为返回的信息内容,第二个参数为可选,不带此参数程序将自动返回操作前的页面,带此参数则跳转到该参数指定的页面,第三个参数为跳转页面停留时间。举例如下:
adminmsg("系统设置成功");
adminmsg("备份成功,现在继续备份下一个文件", "backup.php?step=2");
7) Get_date [前台后台通用]
本函数用来格式化时间,包含两个参数,前者为一个10位的Unix时间戳,后者为时间的格式,后者为可选参数。建议使用本函数来格式化一个时间,在没有第二个格式参数的时候,将按照默认的年-月-日小时:分:秒的格式来处理。
8) PCV [前后台通用]
本函数为5.0版本新增函数,倘若您所要包含的文件中含有变量,要被包含文件使用到--b.php为被包含文件,a.php为包含文件,a.php需要包含b.php来获取某个变量的值--建议使用本函数来过滤b.php文件,来防止跨站攻击等,本函数的使用可以进一步提高安全性。举例说明:
include_once Pcv("xxxxx.php");
五、写在最后的建议
1) 不使用默认的getdate函数获取日期,而使用get_date函数(PW系统自带),这样将能够保持跟系统时间保持一致(PW后台的时间校正,时区等设置将会生效)。
2) 推荐使用include函数包含缓存文件,因为require可能缺少文件而产生一个致命错误--空白,而Include函数则不会有致命错误的产生。
3)为了避免PHPWind程序/补丁更新而导致的文件变动,建议插件开发者按照本参考标准开发插件,并尽可能避免修改论坛自身文件,以避免倘若论坛升级之后插件全部失效。另外,插件的数据建议尽可能采用新的数据表,而不要改动原有的数据表,这样也可以有效地避免升级论坛程序而导致的论坛插件数据丢失。对于新建立的插件数据表,建议使用pw_hack_xxx格式来建立,便于区分。
phpwind插件开发规范
类别:Phpwind 作者:码皇 来源:互联网 点击:
规范化的插件开发可以提高插件的可用性,同时还可以避免升级论坛适合导致插件无法使用。本文旨在供插件开发者们参考。 一、插件目录和文件命名的规范 hack根目录下是pw自带的一些插件: 本例假定 插件 ,魔客吧
相关热词搜索:
phpwind插件开发规范