站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
PhpWind:插件开发
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
<span style="float:right; padding:6px; text-align:center; border:1px solid #000;"><strong>导航:</strong> [[PhpWind:论坛使用手册|上一级]] | [[PhpWind]] | {{Template:PhpWind导航}}</span> <div style="clear:both;"></div> <p> 为统一[[插件]]开发规范,促进[[PHPWind]][[论坛]]程序的插件开发,以及提高广大PHPWind用户安装插件更加简易,同时尽量避免 升级论坛程序而带来的插件失效,特撰写本开发手册,供插件开发者参考,以及给有兴趣开发插件的朋友们提供帮助。使用本规则,将会避免当前插件体系所能导致的所有常见低级错误:前台文件后台文件填写颠倒,不知道如何执行[[SQL]],不知道如何设置文件777属性,因为没有默认的缓存文件而导致的空白错误。</p> '''一、插件专用常量/变量/函数:''' <ul style="list-style:decimal; margin-left:35px;"> <li>H_P 插件根目录,用途相当于R_P等常量,为插件专用。R_P."index.php"为论坛根目录下的index.php, H_P."index.[[php]]",即指当前插件目录下的index.php文件 <li>$basename 插件主文件,程序中任何需要引用到自身的可以用此变量代替。 <li>$hkimg 插件图片目录,插件所使用的图片存放路径,相对路径为 /BBS根目录/Hack目录/插件目录/image目录, 此变量的目的在于使得插件目录更灵活,在文件中引用图片路径更简单。 <li>PrintHack 得到模板文件路径,区别于默认的PrintEot <li style="list-style:none;">以上内容将为插件的目录结构,插件的程序开发提供极大的灵活性,我们倘若修改了名称或者唯一ID之后,唯一需要做的只是修改一下[[FTP]]上文件夹的名称跟唯一ID保持一致即可。备注:PHP程序忽略变量以及函数的大小写,如果本文列举的内容大小写跟实际存在出入,可以不予考虑。</ul> '''二、 插件目录结构,以及文件名约定规则:''' 举例插件名称为打工插件,唯一ID为work,那么插件的文件夹名称应该跟唯一ID保持一致,其所有文件应该存放在hack/work目录下,以下内容将以此插件为例说明。 <ul style="list-style:decimal; margin-left:35px;"> <li>插件根目录 hack/work目录 存放插件主要文件,包括在根目录下的文件内容如下: <ul style="list-style:lower-alpha;"> <li>index.php 插件前台主文件,如果不存在此文件,插件则不显示前台界面。 <li>admin.php 插件后台主文件,如果不存在此文件,插件则无后台管理功能。 <li>sql.txt 插件安装所需要执行的SQL语句,禁止Drop PHPWind自身数据以及删除已有数据等危险操作。如果不需要执行SQL语句变动[[数据库]],可以不存在此文件。 <li>readme.txt 插件使用说明,来提供给用户相关说明文档。 <li>倘若无前台显示/后台设置等,可以没有相应的文件,如果有相应功能,则文件命名必须按照指定规则。</ul> <li>图片目录 hack/work/image 此目录存放插件文件中所使用到的图片文件,强烈要求在文件中使用$hkimg 变量来指定此目录,这样指定目录将会让文件有极大的灵活性。 <li>插件包含文件 hack/work/require 倘若插件比较大,可以把一些常用的函数写成文件放入到require文件夹。 <li>插件模板文件夹 hack/work/template 不同于5.0之前的版本,所有模板均放置到template下,前台放置于template /wind后台放置于template/admin,而现有的插件体系规定所有的插件模板均放置在这一个目录下,不再需要分别放到两个 文件夹中。 <li>缓存文件 出于文件777属性考虑,以及缓存文件的统一部署,建议插件开发者将缓存文件存储为data/bbscache 目录下(此目录已经可写,否则无法使用),同时,出于进一步的为插件使用者着想,建议缓存文件使用程序生成, 来避免第一次使用插件时,因为没有缓存文件或者缓存文件不可写而导致的错误--我们必须考虑到,部分用户不熟悉 电脑操作,并不了解如何设置文件777属性,所以建议并不附带默认的缓存文件,而默认的缓存文件,在插件使用者 第一次使用的时候,自动生成到data/bbscache目录下,这样将避免插件安装中频繁出现的777问题。[备注提示:一 般附带缓存的文件,可内置某些默认值,然后插件完成安装之后,使用者应该进行一次设置提交来保存它所需要的设 置,在这个时候设置再生成缓存文件到data/bbscache目录下一个缓存文件,能够有效的避免需要设置777的问题]</ul> '''三、旧版本插件升级方法''' <p> 按照标准的格式开发安装的插件--通过论坛管理后台添加的插件,需要进行一定修改。旧有用户升级需要对原有插件的文件布局做较小的改动。插件作者倘若发布新版本插件,建议采用新的开发方法。而旧版本插件--仅仅指按照标准方法开发的插件,通过论坛后台添加的。需要进行如下三个地方的修改,非常简单:</p> <ul style="list-style:decimal; margin-left:35px;"> <li>首先按照插件的唯一ID建立一个文件夹在hack目录下,比如插件唯一ID为work,那么则需要在Hack目录下添加一个 目录为work目录,即为hack/work目录。 <li>然后把插件前台文件改名为index.php,后台文件改名为admin.php(如果存在前台或者后台文件的话) <li>把改名之后的文件放入到刚刚建立的相应目录中去,比如work目录 <li>完成。其他部分均不需要修改。</ul> '''四、主要相关函数''' <ul style="list-style:decimal; margin-left:35px;"> <li>Refreshto [前台文件相关] <p> 函数可在执行某操作之后,将页面跳转到指定的网址,附带三个参数,第一个参数为跳转的网址,第二个参数为跳转过程中提示的内容,第三个参数为跳转页面停留的时间。前两个参数必须,第三个参数可选。举例为: refreshto("thread.php?fid=9","您的操作已成功");</p> <li>Showmsg [前台文件相关] <p> 函数一般用来返回某错误信息,并终止程序的下一步操作,继而供用户返回前一页面。本函数只有一个参数,即犯错的错误提示内容。举例为:Showmsg("您无权访问本页面");</p> <li>Writeover [前台后台通用] <p> 文件写函数,本函数将指定的字符串信息写入到指定的文件中去,有两个必选参数,第一个是文件名,第二个是字符串内容。举例为:$str="abcdefg";writeover(D_P."data/bbscache/aa.php",$str);</p> <li>Char_cv [前台后台通用] <p> 对于POST等方法传递过来的变量内容,推荐使用本函数进行处理,本函数将过滤字符串中的危险内容。提高安全性。本函数举例如下:$str=Char_cv($str);</p> <li>PrintHack [前台后台通用] <p> 函数为插件专用,用来返回一个模板的路径,作为require/include等函数的参数传递。只有两个参数,第一个为模板文件的主文件名,该参数必须,第二个参数为模板文件的扩展名(后坠),该参数可选,默认为htm。举例为: require PrintHack("info"); 包含插件目录下的template目录下的info.htm文件。倘若要包含info.html文件,则应该为 require PrintHack("info","html");</p> <li>Adminmsg [后台文件使用] <p> 函数主要用于在后台操作时返回某个提示信息,函数有三个参数,第一个参数必选,为返回的信息内容,第二个参数为可选,不带此参数程序将自动返回操作前的页面,带此参数则跳转到该参数指定的页面,第三个参数为跳转页面停留时间。举例如下:adminmsg("系统设置成功");adminmsg("备份成功,现在继续备份下一个文件", "backup.php?step=2");</p> <li>Get_date [前台后台通用] <p> 本函数用来格式化时间,包含两个参数,前者为一个10位的[[Unix]]时间戳,后者为时间的格式,后者为可选参数。建议使用本函数来格式化一个时间,在没有第二个格式参数的时候,将按照默认的年-月-日 小时:分:秒的格式来处理。</p> <li>PCV [前后台通用]</ul> <p> 本函数为5.0版本新增函数,倘若您所要包含的文件中含有变量,要被包含文件使用到--b.php为被包含文件,a.php为包含文件,a.php需要包含b.php来获取某个变量的值--建议使用本函数来过滤b.php文件,来防止跨站攻击等,本函数的使用可以进一步提高安全性。举例说明:include_once Pcv("xxxxx.php");</p> '''五、PHP开发建议''' <p> 不使用默认的getdate函数获取日期,而使用get_date函数(PW系统自带),这样将能够保持跟系统时间保持一致 (PW后台的时间校正,时区等设置将会生效)。</p> <p> 推荐使用include函数包含缓存文件,因为require可能缺少文件而产生一个致命错误--空白,而Include函数则不会 有致命错误的产生。</p> '''六、其他相关建议''' <p> 为了避免PHPWind程序/补丁更新而导致的文件变动,建议插件开发者按照本参考标准开发插件,并尽可能避免修改论坛自身文件,以避免倘若论坛升级之后插件全部失效。另外,插件的数据建议尽可能采用新的数据表,而不要改动原有的数据表,这样也可以有效地避免升级论坛程序而导致的论坛插件数据丢失。对于新建立的插件数据表,建议使用pw_hack_xxx格式来建立,便于区分。</p> '''七、插件开发实例''' <p> 请参考PHPWind程序中的系统自带插件参考其中的具体写法。相关函数内容请参考admin/admincp.php global.php常用的系统函数均在这两个文件之内。</p> ==相关条目== *[[PhpWind:PhpWind插件大全|PhpWind插件大全]] [[category:PhpWind使用手册|C]] [[category:PHPWind插件]] [[Category:论坛插件|P]] [[Category:插件|P]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:PhpWind导航
(
查看源代码
)(受保护)