请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

怎样开发插件、发布插件资源

一、插件的程序文件和数据表简介

  软件采用模块化结构,每个模块的前后台程序、模板都放在单独得模块目录下,例如:文章模块的目录是news,该目录下包含了文章管理后台(admin)、插件目录(module)、模板目录(templates)等,各模块目录名的介绍请参考《软件文件系统结构说明》,本文主要介绍插件开发相关的程序结构。
  每个插件由一个插件程序、一个默认模板、一条插件参数数据记录等三个元素构成。我们以“文章列表”插件为例,说明插件的文件和数据结构。“文章列表”插件程序是存放在news/module/目录中NewsList.php;插件的默认模板是news/templates/目录中的tpl_newslist.htm;插件记录存放在数据表“_base_plusdefault ”中,每个插件一条记录,记录了该插件的参数,其中pluslable字段的值就是该插件的标签名,文章列表的pluslable是modNewsList。其中的规则是,pluslable标签名去掉前面的“mod”,就是插件的程序文件名,程序依据此规则找到插件程序并运行。
  另外:
  _base_plus数据表记录了每个页面上插入了那些插件、插件的位置、显示参数等信息
  _base_plustemp数据表记录了插件的扩展模板

二、插件记录表_base_plusdefault结构说明

  每个插件在_base_plusdefault数据表中有一条记录,该记录决定了插件允许插入在哪些页面、有哪些参数可以设置、默认的设置参数是什么等信息。插件参数设置是和插件程序相配合的,设置了哪些可选项目,就要在程序中进行判断并正确体现出来。各字段说明如下:
id     自增量ID,新增插件记录时自动产生,无需特别指定
coltype   插件的来源模块代码(如:news),根据此值寻找插件程序和模板文件的位置
pluslable  唯一的插件标签名,不可重名,和插件程序文件名称对应,如modNewsList
plusname  插件的中文名,考虑到排版时在插件管理面板显示完整,一般不要超过16个字符
plustype  允许在哪些模块使用该插件,all表示该插件可以在全站所有模块使用
pluslocat  允许在哪些页面使用该插件,all表示全部页面;和plustype配合用以规定插件的可用范围
tempname  插件的默认模板文件名(扩展模板则记录在_base_plustemp表中)
tempcolor  插件的默认颜色方案编号。除了导航菜单可选配色方案,其他插件均填-1,即不可选配色方案;程序支持所有插件均可选配色方案,但是这样做将使插件模板开发增加15倍工作量,故暂时只有导航菜单使用了这一机制

showborder 插件默认选用的边框编号。A001代表001号边框模板,配色代号为A(配色编号从A-P共16种颜色,可以填写B001、P001等,但不推荐);1000表示自定义边框,如果插件默认不显示边框,可在此填写1000,并将borderwidth填为0。

bordercolor 自定义边框的颜色,仅在showborder为1000自定义边框时有效 
borderwidth 自定义边框的宽度,仅在showborder为1000自定义边框时有效
borderstyle 边框的样式,solid表示实线,dotted表示点状,dashed表示虚线...
borderlable 用于标签式边框填写被控插件编号,默认记录不要填任何内容
borderroll  用于标签式边框的切换方式,默认记录不要填任何内容
showbar  自定义边框是否显示插件标题栏,仅在showborder为1000自定义边框时有效
barbg   自定义边框的标题栏背景色,仅在showborder为1000自定义边框时有效
barcolor  自定义边框的标题栏文字色,仅在showborder为1000自定义边框时有效
backgroundcolor 自定义边框的背景色,仅在showborder为1000自定义边框时有效
morelink    默认的更多链接,填-1表示不可设置更多链接
width     插件默认的宽度,根据插件的理想显示尺寸填写
height     插件的默认高度,根据插件的理想显示尺寸填写
top      插件的顶边距,是相对于容器的顶边距,一般填0,方便用户在同一位置找到新插入的插件
left      插件的左边距,是相对于容器的左边距,一般填0,
zindex     插件的Z轴位置,一般填写99,使插件插入时位于其他插件的前方
padding    插件边框的内边距,即边框和内容之间的距离
shownums   内容默认显示条数,如不可控制内容条数,填-1
ord      内容的排序参数,根据插件来源数据表可提供排序的参数,以“|”分割,如不允许设置,填-1
sc       内容的排序方法,asc或desc,如不允许设置,填-1
showtj     是否只显示推荐内容,1表示默认选中“只显示推荐内容”,0表示不规定是否显示推荐内容,如果不可设置是否显示推荐内容,填-1
cutword    内容标题截取文字,填数字,不可设置时填-1
target     链接打开方式,_self或_blank,不可设置时填-1
catid     默认选择的分类id,用于选择内容的显示分类。当该值不是-1时,必须在classtbl字段中填如对应的数据表名,该数据表的结构必须符合PHPWEB的catpath分类方法,如文章、下载分类等均按此标准规划分类。
cutbody    内容截取字数,一般配合程序截取body,memo等字段,不可设置时填-1
picw     缩图宽度,一般用于图片展示等插件,不可设置时填-1
pich      缩图高度,一般用于图片展示等插件,不可设置时填-1
fittype    缩图的默认自适应方法,填fill或不可设置时填-1
title    默认的插件标题
body     在插件设置时可直接输入html编辑内容,-1为不可填
pic      在插件设置时可直接上传图片,-1为不可上传图片
piclink 在插件设置时可直接上传图片的配套链接,-1为不可填
attach     在插件设置时可直接上传文件,-1为不可上传文件
movi     在插件设置时可填写视频来源网址,-1为不可填
sourceurl   在插件设置时可填写其他来源网址,-1为不可填

word、word1、word2、word3、word4、text、text1、link、link1、link2、link3、link4
这些字段用于自定义内容模块中的组合内容插件,一般不使用,填-1

code  用于输入代码,不可输入填-1
tags 为空时可设置匹配标签,-1时不可设置
groupid 用于选择分组,如友情链接、广告组等插件,填-1时不可选择分组
projid  用于选择专题,如文章列表插件,填-1时不可选择专题
moveable 预留字段,全部填1
classtbl  对应catid的分类数据表名
grouptbl  对应groupid的分组数据表名
projtbl  对应projid的专题数据表名

setglobal 是否允许全站同时插入插件,1为可同时插入,0为不可同时插入。注意事项:一般只能允许每页只可插入一个的插件进行全站同时插入,否则会弄乱页面

overflow 内容溢出是是否自动增加高度,对于可预知高度的应设为hidden,不可预知高度得设为visible
bodyzone 插件默认插入的容器,可选填top、content、bottom
display 预留字段,填1
ifmul 一个页面中是否允许多次插入本插件,注意插入多个会产生互相冲突的一般应设为0
ifrefresh  插入插件后是否刷新页面,一般带js的插件应设为1,需要刷新后才能看到效果,普通插件设为0

重要提示:插件记录表默认参数的设置属于开发范畴,所设置的参数必须进行对应的程序开发才能体现,非程序开发人员切勿在数据表中随意更改已有插件的参数,否则可能导致程序出错!

三、插件程序开发

  在规划好一个插件应该按什么样的规则显示、有哪些参数可以设置后,就可以进行插件程序开发了。插件程序的作用就是按可选参数设置,将内容取出来,交给模板显示内容。接下来以“文章列表”插件为例,说明插件程序的开发方法:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

    热门帖子
  • 精华
  • 新帖
快速回复 返回顶部 返回列表