首先是让我们了解PJblog2 的插件是如何工作的。
在blog下面有个plugins的目录,里面包含了PJBlog2的插件。新下载的PJBlog2自带了三个插件。分别是留言本插件、个人档案插件和最新日志插件。
插件的安装: 登陆后台 “界面设置”->“安装插件”这里会列出可以安装的插件。已经安装的插件,可以到“已装插件管理”进行插件管理,或者到“设置模块”里修改。
插件的组成文件
插件必须要 install.xml 文件支持,这个文件保存了插件所使用的基本信息。我们来看看 install.xml 文件结构,这里以留言本的 install.xml 作为例子
<?xml version="1.0" encoding="UTF-8"?> <PluginInstall> <main> <PluginName>GuestBookForPJBlog</PluginName> <PluginTitle>GuestBook</PluginTitle> <PluginType>function</PluginType> <PluginHtmlCode><![CDATA[]]></PluginHtmlCode> <PluginASPCode><![CDATA[]]></PluginASPCode> <PluginPath><![CDATA[guestbook.asp]]></PluginPath> <SettingFile>setting.xml</SettingFile> <CreateTableSQL><![CDATA[]]></CreateTableSQL> <UpdateTableSQL><![CDATA[]]></UpdateTableSQL> <DropTable></DropTable> <Author>PuterJam</Author> <pubDate>2005-7-31</pubDate> <About><![CDATA[PJblog 留言本激活插件 1.0]]></About> </main> <SubItem> <item> <PluginTitle>最新留言</PluginTitle> <PluginType>sidebar</PluginType> <PluginHtmlCode><![CDATA[<$NewMsg$>]]></PluginHtmlCode> <PluginASPCode><![CDATA[代码]]></PluginASPCode> </item> </SubItem> </PluginInstall> |
<main> 插件主要信息
<PluginName> 插件名称,只允许英文和数字,这个名字作为插件的标识部允许重复
<PluginTitle> 插件标题,一般用来显示在侧边或在菜单上
<PluginType> 插件类型,目前PJBlog的插件和模块分三个类型
Content 类型: 内容模块类型,一般显示在主体部分里。比如可以在日志列表上面或底
部加上内容。可以在设置模块, 已装插件管理里面设置
Sidebar类型: 侧边模块类型,显示在侧边上的模块,比如系统自带的日历,归档等
可以在设置模块, 已装插件管理里面设置
function类型: 功能插件和上面两种类型有所不同。这个无法在设置模块里设置,必须
先安装然后在,已装插件管理里面找到该类型的插件
<PluginHtmlCode> 插件包含的HTML 代码,允许给插件添加html代码,只对content,sidebar类型有效
<PluginASPCode> 插件包含的ASP 代码, 允许给插件添加 ASP代码,只对content,sidebar类型有效,插件添加后asp会自动写入plugins.asp 文件中,然后每次打开页面都回执行里面的内容。实现模块动态效果。一般的做法是使用字符代替的方法。比如,在HTML代码中添加了 <$NewMsg$>特殊字符串,然后执行ASP后用replace的方法替换 <$NewMsg$> 特殊字符串就可以达到动态效果了。
一般HTML代码都保存在以下几个变量中。只要用 replace 方法替换里面的特殊字符串就好了
side_html_default="" '首页侧栏代码 side_html="" '普通页面侧栏代码 content_html_Top_default="" '首页内容代码顶部 content_html_Top="" '普通页面内容代码顶部 content_html_Bottom_default="" '首页内容代码底部 content_html_Bottom="" '普通页面内容代码底部 |
<PluginPath> 插件路径只对function 类型有效,告诉系统,这个插件需要外部文件支持,大家可以参照留言本的写法体会一下
<SettingFile> 插件配置文件已XML文件形式存在,具体说明看这里
<CreateTableSQL> 插件创建数据库语句,请使用标准的SQL语句插入新的表
<UpdateTableSQL> 插件升级数据库语句,当创建数据库失败的时候则自动执行升级SQL语句,同样使用标准的SQL语句
<DropTable> 插件反安装的时候需要删除的表名,这里只要写数据表的名称就可以了
<Author> 插件作者
<pubDate> 插件发布日期
<About> 关于插件的说明
<SubItem> 插件辅助模块信息
<item> 插件辅助功能对象。一个插件可以包含多个辅助模块
<PluginTitle> 辅助插件标题,一般用来显示在侧边或在菜单上
<PluginType> 辅助插件类型,辅助插件只允许content,sidebar 类型
<PluginHtmlCode> 辅助插件包含的HTML 代码
<PluginASPCode> 辅助插件包含的ASP代码
插件的配置文件
我们以系统自带的个人档案插件作为说明
<?xml version="1.0" encoding="UTF-8"?> <PluginOptions> <Key name="MyName" value="无名人士" type="input" description="站长昵称" size="6"/> <Key name="MyFace" value="Plugins/aboutMe/Myface.jpg" type="input" description="头像地址(140X220)" size="40"/> <Key name="Age" value="未知" type="input" description="年 龄" size="6"/> <Key name="MyDay" value="未知" type="input" description="生 日" size="10"/> <Key name="Sex" value="保密" type="select" description="性 别"> <option value="保密">保密</option> <option value="男">男</option> <option value="女">女</option> </Key> <Key name="MyBrood" value="未知" type="input" description="血 型" size="6"/> <Key name="MyStar" value="未知" type="input" description="星 座" size="6"/> <Key name="Address" value="未知" type="input" description="地 址" size="30"/> <Key name="MyDes" value="这家伙很懒什么也没留下" type="input" description="个人说明" size="40"/> <Key name="ILike" value="" type="input" description="兴趣爱好" size="40"/> </PluginOptions> |
每个插件配置的参数都是 <key> 开头的他的属性HTML标签input的属性基本一样。主要区别是select类型,在<key>下面还包含<option>字段。这些内容在插件安装后,会自动保存在数据中,后台的插件配置也是根据这个文件生成表单的。
name 提交后台的字段关键字名字
value 提交到后台的数值
type 类型目前支持的类型有 select, input, textarea
description 字段描述
size 输入框的长度
程序如何读取插件配置信息
1.定义变量:Dim LoadModSet
2.创建 ModSet 对象: Set LoadModSet=New ModSet
3.打开插件名称: LoadModSet.open("<插件名称>")
4.读取插件配置: LoadModSet.getKeyValue("<字段关键字>")
5.获得 ModSet 错误信息: LoadModSet.PasreError
-18901 没有打开插件 使用open方法打开
-18902 插件配置没有保存到缓存里
-18903 没有安装插件
6.重新设置 ModSet 缓存: LoadModSet.ReLoad()
7.获得插件 安装路径: LoadModSet.GetPath
PJBlog 常用变量说明
SiteName '站点名字
SiteURL '站点地址
blog_Title 'Blog副标题
blogPerPage '每页日志数
blog_LogNums '日志总数
blog_CommNums '评论总数
blog_MemNums '会员总数
blog_VisitNums '访问量
blogcommpage '每页评论数
blogaffiche '公告
blogabout '备案信息
blog_TbCount '引用通告总数
blog_commTimerout '发表评论时间间隔
blog_commUBB '是否禁用评论UBB代码
blog_commIMG '是否禁用评论贴图
blog_postFile '是否动态输出日志文件
blog_postCalendar '是否动态输出日志日历文件
blog_DefaultSkin '默认界面
blog_SplitType '日志分割类型
blog_introChar '日志预览最大字符数
blog_introLine '日志预览切割行数
blog_validate '发表评论是否都需要验证
blog_ImgLink '是否在首页显示图片友情链接
blog_commLength '评论长度
blog_version '当前PJBlog版本号
blog_UpdateDate 'PJBlog最新更新时间
PJBlog 权限变量说明
stat_title '当前权限的标题
stat_AddAll '是否允许添加日志
stat_Add '是否允许添加日志,目前功能同上 -_-!
stat_EditAll '是否允许编辑所有文章
stat_Edit '是否允许编辑自己的文章
stat_DelAll '是否允许删除所有文章
stat_Del '是否允许删除自己的文章
stat_CommentAdd '是否允许发表评论
stat_CommentDel '是否允许删除评论
stat_FileUpLoad '是否允许上传附件
stat_Admin '是否是系统管理员
UP_FileSize '上传文件大小
UP_FileTypes '上传文件类型
其他说明
1. 系统的 Plugins/sample/ 目录下有个标准的插件外部文件样板sample.asp,制作function类型的插件时请使用该文件作为模版来修改。
2. 如果制作function类型时,需要用到 <PluginPath> 里没有定义的文件需要引用 系统根目录下的p_conn.asp 插件辅助文件专用的数据库联接文件,可以参考留言本的辅助文件 bookaction.asp 中的写法
3. 提示信息函数 showmsg(title,des,icon,showType)
title 提示标题
des 提示描述,支持HTML语句
icon 提示图标
showType 提示类型.默认为空,如果是由插件辅助文件提交的信息就用 “plugins”
评论前必须登录!
注册