PJBlog插件制作详细说明

目录
[隐藏]

在blog下面有个plugins的目录,里面包含了PJBlog2的插件。新下载的PJBlog自带了三个插件。分别是留言本插件、个人档案插件和最新日志插件。

插件的安装: 登陆后台 "界面设置"->"安装插件"这里会列出可以安装的插件。已经安装的插件,可以到"已装插件管理"进行插件管理,或者到"设置模块"里修改。

 

插件的组成文件

插件必须要 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代码,只对contentsidebar类型有效

<PluginASPCode> 插件包含的ASP 代码, 允许给插件添加 ASP代码,只对contentsidebar类型有效,插件添加后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> 辅助插件类型,辅助插件只允许contentsidebar 类型

<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"

点赞 (0)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code