JspRun

来自站长百科
Spider.flynn讨论 | 贡献2009年12月5日 (六) 17:00的版本 →‎相关条目
跳转至: 导航、​ 搜索

论坛软件系统亦称电子公告板(BBS)系统,它伴随社区BBS的流行而成为互联网最重要的应用之一,也逐渐成为网站核心竞争力的标志性体现。 2006年7月 CNNIC 发布的最新统计表明,43.2% 的中国网民经常使用论坛/BBS/讨论组,论坛社区应用首次超过即时通讯 IM ,成为仅次于收发Email的互联网基本应用。
JspRun!是北京飞速创想科技有限公司推出的一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务。JspRun! 的基础架构采用世界上最先进流行的 web 编程组合 JAVA+MySQL 实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。系统采用struts、hibernate框架及中间件的结合既实现了业务逻辑与控制逻辑的有效分离,提高了层次结构的清晰度,提高了复用的粒度降低了开发代价和维护代价,同时保证了软件的质量使其更具有鲁棒性和可维护性。
对于站长而言,利用 JspRun! 均能够在最短的时间内,花费最低的费用,采用最少的人力,架设一个性能优异、功能全面、安全稳定的社区论坛平台。

对于网民而言,注册任何一个由 JspRun! 软件系统建立的网站/论坛,将能方便、快捷地享受到论坛带来的互动体验,进行发/回帖、添加/修改资料、站内短信、社区搜索等数百项基本论坛操作,以及进行社区交易、论坛悬赏等数十项高级社区应用。

Jsprun logo.jpg

功能特点

一、强大而完善的功能
功能全面而强大,且简单易用,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务;同时Jsprun!社区论坛系统还提供了很大限度的个性化设定。众多功能在后台预留开关,可按企业需要启用。前台全部采用编译模板技术构建,更换界面易如反掌。完善的权限设定,使管理员可控制到每个用户,每个组及所在每个分论坛的各种权限。
二、周密的安全部署和攻击防护
Jsprun! 社区论坛系统能有效处理页面格式,保证页面及表格的完整性。安全检查应用于每一个Jsprun!代码中,可自动屏蔽贴子及签名等中的恶意代码和跨站脚本攻击。独有的全程操作记录,使论坛运行情况随时有据可查。Jsprun!社区论坛系统采用的基于J2EE的安全机制使整个系统的安全性大大提高,同时增加了 CC攻击防御策略和DDOS攻击防御策略使用户更省心更放心地使用Jsprun!社区论坛系统。
三、卓越的访问速度和负载能力
Jsprun!的数据缓存和自动更新机制坚固的数据结构及最少化数据库查询设计,使得Jsprun! 可以在极为繁忙的服务器环境下快速稳定运行,切实节约企业成本,提升企业形象。
四、JspRun!跨平台性
Jsprun!社区论坛系统具备跨平台特性,可以运行于 Linux/FreeBSD/Unix/SunOS 及微软 Windows2000/2003/2008 等各种操作系统环境下。
五、、持久的创新和广阔的前景
JspRun! 拥有一支富于创新的开发队伍,持续性的技术优势和不断增长的市场经验,除了强化已有的市场竞争力以外,更增强了已有和潜在客户的信心,我们并不满足于现有成果,我们时刻关注国内外相关领域内的最新进展和动态,不断的进步和创新,已使越来越多的人相信JspRun! 辉煌的明天。
如果您正在寻找一个出色的论坛解决方案,如果原有产品无法适应您企业的不断增长,如果您为不断提升的硬件需求而苦恼,如果您的网站因为服务器的不堪重负而停滞不前,JspRun! 将为您提供一个崭新的机遇和选择。


运行环境

操作系统要求

JspRun! 具备跨平台特性,可以运行于 Linux/FreeBSD/Unix/SunOS 及微软 Windows 2000/2003 等各种操作系统环境下。我们已在软件中针对上述操作系统做了大量的测试和实地检验,保证 JspRun! 可以在上述系统中安全稳定的运行,但您仍然需要做好服务器操作系统级的安全防备措施,例如 Windows 用户需更改 MySQL for Windows 的初始 root 密码,避免跨目录的文件读写;类Unix 用户需避免使用过于简单的密码,避免跨用户目录的文件读写,做好服务器上其他相关软件(如 Sendmail, ftpd, httpd)等的安全防范,使用较新的软件版本等。如果您租用虚拟主机,一般正规和技术力量较强的虚拟主机提供商会已经做好操作系统的各项准备,用户可不必关注此部分。
推荐使用 Linux/FreeBSD 操作系统,不仅完全免费,而且可以获得更好的稳定性和负载能力。

语言及数据库支撑环境要求

JspRun! 需要服务器上装有如下软件:
1、可用的 httpd 服务器(如 Apache、Tomcat5.0以上等)
2、 JDK 1.5 及以上
3、 Tomcat 5.0 及以上(tomcat6.0以上的某些版本对某些EL表达式不兼容)
4、 MySQL 3.23 及以上(仅针对 MySQL 版 JspRun!)
推荐使用 jdk 1.5.x+Apache 2.2.x+tomcat 5.x+mod_jk-1.2.x+mysql 5.x 的环境来安装JspRun!论坛。
以上软件均为跨平台的免费软件,推荐使用以上软件的最新稳定版本,不仅拥有更多的功能,而且通常已修复了已知老版本的安全漏洞。 如果您租用虚拟主机,请咨询虚拟主机提供商,您的空间服务器是否已安装了上述软件。一般的JSP虚拟主机商都会提供2个版本的环境软件供您选择。
您的 MySQL 数据库账号应当拥有 CREATE、DROP、ALTER 等执行权限,同时文件空间需不低于 30M,数据库空间不低于 5M,通常您的虚拟空间都会满足这个条件,以满足包括 JspRun! 在内的绝大多数网络软件的正常运行。如果您不了解具体情况,请咨询您的空间提供商。

技术手册

安装说明

工具软件

JspRun! 开发组尽量使得安装步骤简单方便,但仍然可能会用到一些常用的工具软件。如果您通过网络将 JspRun! 软件上传到服务器上,您将可能需要一个 FTP 客户端软件。通过您的服务器 FTP 账号,使用该 FTP 客户端软件将相关文件上传到服务器上。同时您可能需要一个简单的文本文件编辑软件,用以对配置文件进行参数修改,一般操作系统自带的如 Windows 的“记事本”或第三方软件如 UltraEdit 等都能胜任。
JspRun! 要求使用 FTP 软件上传 jsp 文件时,使用二进制(BINARY)方式进行,否则将无法正常使用。

详细步骤

第一步:在JspRun!的官方论坛上下载适合自己的版本。
首先到 官方网站下载所需版本的 JspRun!6.0 到本地或服务器。
在这里要说明一下:我们提供了 4 种不同的编码。包括 GBK 简体中文版(推荐)、UTF-8 简体中文版、BIG5 繁体中文版(推荐)、UTF-8 繁体中文版,请根据服务器 MySQL 的版本,选择相应版本的论坛程序下载。同时,我们还提供不同编码版本的WAR包下载,您可以根据虚拟主机商项目部署相应的要求下载。
注:MySQL4.0 及以下版本没有字符集这个概念。

第二步:解压并上传论坛程序到服务器上并且修改相应目录权限。
1、上传论坛程序到服务器上
本次演示以 GBK 版本为例下载到本地,解压缩得到如图 1 所示的文件:

Jsprun setup1.gif


只需要上传 upload 这个目录下面的所有文件到 FTP 上就可以了;
将其中 upload 目录下的所有文件使用 FTP 软件上传到空间(服务器或者虚拟主机商指定的目录),如图 2 所示:

Jsprun setup2.gif


如果您下载的是JspRun!_6.0.0_GBK_WAR版本,那么解压缩得到如图3所示的文件:

Jsprun setup3.gif


此时得到的war包您可以根据虚拟主机商指定的war包名称重命名,例如有些需要指定war包的名称为ROOT.war(区分大小写) ,那么此时您需要把upload.war重命名为ROOT.war后上传到空间指定的目录,如图4所示;(war包上传服务器后,服务器会自动解压,对于不会自动解压的虚拟主机商一般会提供在线解压的工具)

Jsprun setup4.gif


2、设置相关的目录属性,以便数据文件可以被程序正确读写
使用 FTP 软件登录您的服务器,将服务器上以下目录、以及该目录下面的所有文件的属性设置为 777,Win 主机请设置 internet 来宾帐户可读写属性。如果下面目录中含有您没有的目录,就不用设置了。
onfig.properties
./templates
./attachments
./customavatars
./forumdata
./forumdata/templates
./forumdata/cache
./forumdata/threadcaches
./forumdata/logs

第三步:安装过程
上传完毕后,在浏览器中运行安装程序(在浏览器地址栏敲入install.jsp,即访问 http://您的域名/论坛目录/install.jsp)进入准备安装页面,如图 5 所示:

Jsprun setup5.gif


上图中阅读许可协议后点击“我同意”就进入到下面的检查配置文件页面,如图 6 所示:

Jsprun setup6.gif


(有些虚拟主机没有足够的权限获取分配的磁盘空间大小,可以跟虚拟主机的管理员确认分配的磁盘空间超过30m足够安装JspRun即可)检查配置过关后点击“下一步”进入数据库信息配置页面,如图 7 所示:

Jsprun setup7.gif


注:如果是虚拟主机用户,数据库端口号,数据库用户名和密码一般是由虚拟主机空间商提供;如果是独立主机,数据库用户名和密码就是你安装 MySQL 时填写的用户名(一般为root)和密码(建议新建个数据库用户安装,使用 root 会有安全问题)。
有些情况下,使用locahost的数据库服务器地址会提示连接不上数据库,这时可以尝试将数据库服务器地址改为127.0.0.1。
“系统Email”是指论坛系统用户可以联系到的 Email,一般都填写站长的 Email 地址。在前台显示为“联系我们”这个链接。
填写好“数据库用户名”和“数据库密码”后,点击“下一步”进入如图8 所示页面:填写管理员帐号密码。

Jsprun setup8.gif


上图中填写好管理员帐号密码后,点击“下一步”进入安装页面,如图9 所示:

Jsprun setup9.gif


安装完毕点击“恭喜您论坛安装成功,点击进入论坛首页”则进入安装好的论坛首页,如图10 所示:

Jsprun setup10.gif


自此,JspRun!6.0 论坛安装成功!您可以使用了!

使用说明

前台使用

普通会员

一、 用户须知:
1、我必须要注册吗?
这取决于管理员如何设置 JspRun! 论坛的用户组权限选项,您甚至有可能必须在注册成正式用户后后才能浏览帖子。当然,在通常情况下,您至少应该是正式用户才能发新帖和回复已有帖子。强烈建议您注册,这样会得到很多以游客身份无法实现的功能。
2、我如何登录论坛?
如果您已经注册成为该论坛的会员,哪么您只要通过访问页面右上的登录,进入登陆界面填写正确的用户名和密码(如果您设有安全提问,请选择正确的安全提问并输入对应的答案),点击“提交”即可完成登陆如果您还未注册请点击这里。如果需要保持登录,请选择相应的 Cookie 时间,在此时间范围内您可以不必输入密码而保持上次的登录状态。
3、忘记我的登录密码,怎么办?
当您忘记了用户登录的密码,您可以通过注册时填写的电子邮箱重新设置一个新的密码。点击登录页面中的 取回密码,按照要求填写您的个人信息,系统将自动发送重置密码的邮件到您注册时填写的 Email 信箱中。如果您的 Email 已失效或无法收到信件,请与论坛管理员联系。
4、我如何使用个性化头像?
在控制面板中的“编辑个人资料”,有一个“头像”的选项,可以使用论坛自带的头像或者自定义的头像。
5、我如何修改登录密码?
在控制面板中的“编辑个人资料”,填写“原密码”,“新密码”,“确认新密码”。点击“提交”,即可修改。
6、我如何使用个性化签名和昵称?
在控制面板中的“编辑个人资料”,有一个“昵称”和“个人签名”的选项,可以在此设置。

二、 帖子相关操作:
1、我如何发表新主题?
在论坛版块中,点“新帖”,如果有权限,您可以看到有“投票,悬赏,活动,交易”,点击即可进入功能齐全的发帖界面。
注意:一般论坛都设置为高级别的用户组才能发布这四类特殊主题。如发布普通主题,直接点击“新帖”,当然您也可以使用版块下面的“快速发帖”发表新帖(如果此选项打开)。一般论坛都设置为需要登录后才能发帖。
2、我如何发表回复?
回复有分三种:第一、贴子最下方的快速回复; 第二、在您想回复的楼层点击右下方“回复”; 第三、完整回复页面,点击本页“新帖”旁边的“回复”。
3、我如何编辑自己的帖子?
在帖子的右下角,有编辑,回复,报告等选项,点击编辑,就可以对帖子进行编辑。
4、我如何出售购买主题?
出售主题: 当您进入发贴界面后,如果您所在的用户组有发买卖贴的权限,在“售价(金钱)”后面填写主题的价格,这样其他用户在查看这个帖子的时候就需要进入交费的过程才可以查看帖子。 购买主题: 浏览你准备购买的帖子,在帖子的相关信息的下面有[查看付款记录] [购买主题] [返回上一页] 等链接,点击“购买主题”进行购买
5、我如何出售购买附件?
上传附件一栏有个售价的输入框,填入出售价格即可实现需要支付才可下载附件的功能。点击帖子中[购买附件]按钮或点击附件的下载链接会跳转至附件购买页面,确认付款的相关信息后点提交按钮,即可得到附件的下载权限。只需购买一次,就有该附件的永远下载权限。
6、我如何上传附件?
发表新主题的时候上传附件,步骤为:写完帖子标题和内容后点上传附件右方的浏览,然后在本地选择要上传附件的具体文件名,最后点击发表话题。发表回复的时候上传附件,步骤为:写完回复楼主的内容,然后点上传附件右方的浏览,找到需要上传的附件,点击发表回复。 7、我如何实现发帖时图文混排效果?
发表新主题的时候点击上传附件左侧的“[插入]”链接把附件标记插入到帖子中适当的位置即可。
8、我如何使用JspRun!代码?

JspRun!代码 效果
[b]粗体文字 Abc[/b] 粗体文字 Abc
[i]斜体文字 Abc[/i] 斜体文字 Abc
[u]下划线文字 Abc[/u] 下划线文字 Abc
[color=red]红颜色[/color] 红颜色
[size=3]文字大小为 3[/size] 文字大小为 3
[font=仿宋]字体为仿宋[/font] 字体为仿宋
[align=Center]内容居中[/align] 内容居中
[url]http://www.jsprun.com[/url] http://www.jsprun.com (超级链接)
[url=http://www.JspRun.net]JspRun! 论坛[/url] JspRun! 论坛(超级链接)
[email]myname@mydomain.com[/email] myname@mydomain.com (E-mail链接)
[email=support@JspRun.net]JspRun! 技术支持[/email] JspRun! 技术支持(E-mail链接)
[quote]JspRun! Board 是由北京飞速创想科技有限公司开发的论坛软件[/quote] 引用:

原帖由 admin 于 2006-12-26 08:45 发表
JspRun! Board 是由北京飞速创想科技有限公司开发的论坛软件

[code]JspRun! Board 是由北京飞速创想科技有限公司开发的论坛软件[/code] 代码:
JspRun! Board 是由北京飞速创想科技有限公司开发的论坛软件
[hide]隐藏内容 Abc[/hide] 效果:只有当浏览者回复本帖时,才显示其中的内容,否则显示为“**** 隐藏信息 跟帖后才能显示 *****”
[hide=20]隐藏内容 Abc[/hide] 效果:只有当浏览者积分高于 20 点时,才显示其中的内容,否则显示为“**** 隐藏信息 积分高于 20 点才能显示 ****”
list][*]列表项 #1[*]列表项 #2[*]列表项 #3[/list] * 列表项 #1
* 列表项 #2
* 列表项 #3
[img]http://www.JspRun.net/images/default/logo.gif[/img] 帖子内显示为:
Jsprunlogo.gif
[img=88,31]http://www.JspRun.net/images/logo.gif[/img] 帖子内显示为:Jsprunlogo.gif
[media=400,300,1]多媒体 URL[/media] 帖子内嵌入多媒体,宽 400 高 300 自动播放
[fly]飞行的效果[/fly] ]飞行的效果
[flash]Flash网页地址 [/flash] 帖子内嵌入 Flash 动画
[qq]123456789[/qq] 在帖子内显示 QQ 在线状态,点这个图标可以和他(她)聊天
X[sup]2[/sup] X2

9、我如何使用表情代码?
表情是一些用字符表示的表情符号,如果打开表情功能,JspRun! 会把一些符号转换成小图像,显示在帖子中,更加美观明了。目前支持下面这些表情:

表情符号 对应图像
:) Face smile.gif
:( Face sad.gif
:D Face biggrin.gif
:\'( Face cry.gif
:@ Face huffy.gif
:o Face shocked.gif
:P Face tongue.gif
:$ Face shy.gif
;P Face titter.gif
:L Face sweat.gif
:Q Face biggrin.gif
:lol Face lol.gif
:hug: Face hug.gif
:victory: Face victory.gif
:time: Face time.gif
:kiss: Face kiss.gif
:handshake Face handshake.gif
:call: Face call.gif

三、 基本功能操作:
1、我如何使用短消息功能?
您登录后,点击导航栏上的短消息按钮,即可进入短消息管理。 点击[发送短消息]按钮,在"发送到"后输入收信人的用户名,填写完标题和内容,点提交(或按 Ctrl+Enter 发送)即可发出短消息。
如果要保存到发件箱,以在提交前勾选"保存到发件箱中"前的复选框。

  • 点击收件箱可打开您的收件箱查看收到的短消息。
  • 点击发件箱可查看保存在发件箱里的短消息。
  • 点击已发送来查看对方是否已经阅读您的短消息。
  • 点击搜索短消息就可通过关键字,发信人,收信人,搜索范围,排序类型等一系列条件设定来找到您需要查找的短消息。
  • 点击导出短消息可以将自己的短消息导出htm文件保存在自己的电脑里。
  • 点击忽略列表可以设定忽略人员,当这些被添加的忽略用户给您发送短消息时将不予接收。

2、我如何向好友群发短消息?
登录论坛后,点击短消息,然后点发送短消息,如果有好友的话,好友群发后面点击全选,可以给所有的好友群发短消息。
3、我如何查看论坛会员数据?
点击导航栏上面的会员,然后显示的是此论坛的会员数据。注:需要论坛管理员开启允许你查看会员资料才可看到。
4、我如何使用搜索?
点击导航栏上面的搜索,输入搜索的关键字并选择一个范围,就可以检索到您有权限访问论坛中的相关的帖子。
5、我如何使用“我的”功能?
会员必须首先登录,没有用户名的请先注册登录之后在论坛的左上方会出现一个“我的”的超级链接,点击这个链接之后就可进入到有关于您的信息。

四、 其他相关问题:
1、我如何向管理员报告帖子?
打开一个帖子,在帖子的右下角可以看到:“编辑”、“引用”、“报告”、“评分”、“回复”等等几个按钮,点击其中的“报告”按钮进入报告页面,填写好“我的意见”,单击“报告”按钮即可完成报告某个帖子的操作。
2、我如何“打印”,“推荐”,“订阅”,“收藏”帖子?
当你浏览一个帖子时,在它的右上角可以看到:“打印”、“推荐”、“订阅”、“收藏”,点击相对应的文字连接即可完成相关的操作。
3、我如何设置论坛好友?
设置论坛好友有3种简单的方法。
当您浏览帖子的时候可以点击“发表时间”右侧的“加为好友”设置论坛好友。 当您浏览某用户的个人资料时,可以点击头像下方的“加为好友”设置论坛好友。 您也可以在控制面板中的好友列表增加您的论坛好友。
4、我如何使用RSS订阅?
在论坛的首页和进入版块的页面的右上角就会出现一个rss订阅的小图标Jsprun rss.gif,鼠标点击之后将出现本站点的rss地址,你可以将此rss地址放入到你的rss阅读器中进行订阅。
5、我如何清除Cookies?
cookie是由浏览器保存在系统内的,在论坛的右下角提供有"清除 Cookies"的功能,点击后即可帮您清除系统内存储的Cookies。 以下介绍3种常用浏览器的Cookies清除方法(注:此方法为清除全部的Cookies,请谨慎使用)
Internet Explorer: 工具(选项)内的Internet选项→常规选项卡内,IE6直接可以看到删除Cookies的按钮点击即可,IE7为“浏览历史记录”选项内的删除点击即可清空Cookies。对于Maxthon,腾讯TT等IE核心浏览器一样适用。 FireFox:工具→选项→隐私→Cookies→显示Cookie里可以对Cookie进行对应的删除操作。 Opera:工具→首选项→高级→Cookies→管理Cookies即可对Cookies进行删除的操作。
6、我如何联系管理员?
您可以通过论坛底部右下角的“联系我们”链接快速的发送邮件与我们联系。也可以通过管理团队中的用户资料发送短消息给我们。
7、我如何开通个人空间?
如果您有权限开通“我的个人空间”,当用户登录论坛以后在论坛首页,用户名的右方点击开通我的个人空间,进入个人空间的申请页面。
8、我如何将自己的主题加入个人空间?
如果您有权限开通“我的个人空间”,在您发表的主题上方点击“加入个人空间”,您发表的主题以及回复都会加入到您空间的日志里。

五、 论坛高级功能使用:
论坛快速跳转关键字列表
JspRun! 支持自定义快速跳转页面,当某些操作完成后,可以不显示提示信息,直接跳转到新的页面,从而方便用户进行下一步操作,避免等待。 在实际使用当中,您根据需要,把关键字添加到快速跳转设置里面(后台 -- 基本设置 -- 界面与显示方式 -- [提示信息跳转设置 ]),让某些信息不显示而实现快速跳转。以下是 JspRun! 当中的一些常用信息的关键字:

关键字 提示信息页面或者作用
login_succeed 登录成功
logout_succeed 退出登录成功
thread_poll_succeed 投票成功
thread_rate_succeed 评分成功
register_succeed 注册成功
usergroups_join_succeed 加入扩展组成功
usergroups_exit_succeed 更新扩展组成功
buddy_update_succeed 好友更新成功
post_edit_succeed 编辑帖子成功
post_edit_delete_succeed 删除帖子成功
post_reply_succeed 回复成功
post_newthread_succeed 发表新主题成功
post_reply_blog_succeed 文集评论发表成功
post_newthread_blog_succeed blog 发表成功
profile_avatar_succeed 头像设置成功
profile_succeed 个人资料更新成功
pm_send_succeed 短消息发送成功
pm_delete_succeed 短消息删除成功
pm_ignore_succeed 短消息忽略列表更新
admin_succeed 管理操作成功〔注意:设置此关键字后,所有管理操作完毕都将直接跳转〕
admin_succeed_next? 管理成功并将跳转到下一个管理动作
search_redirect 搜索完成,进入搜索结果列表
管理操作

在这里仅针对 JspRun! 前台的一些管理操作做的说明,具有这些管理权限的会员一般是管理员、超级版主及版主,主要有以下几个方面的管理:删除主题、删除回帖、移动主题、屏蔽帖子、高亮显示、主题分类、关闭/打开主题、复制主题、分割主题、合并主题、修复主题、提升/下沉主题、置顶/解除置顶、加入/解除精华。 这些管理操作有两个位置可以操作:
1、版块页面帖子最下方,如图 1 所示:

Jsprun FrontManagement1.gif


这里可以操作的管理选项有:删除主题、移动主题、高亮显示、主题分类、关闭/打开主题、提升/下沉主题、置顶/解除置顶、加入/解除精华。
这里的管理操作可以对帖子进行批量管理操作。
2、帖子页面右下角,如图 2 所示:

Jsprun FrontManagement2.gif


这里可以操作的管理选项有:删除回帖、删除主题、屏蔽帖子、关闭主题、移动主题、复制主题、高亮显示、主题分类、设置精华、主题置顶、分割主题、合并主题、提升主题、修复主题。
这里的管理操作仅针对该帖子而言,不影响其他帖子。
下面一一介绍每个管理操作的使用方法:
1、删除主题
版块页面的“删除主题”管理选项可以用来批量删除多个帖子,使用方法:在帖子前面的多选框里选中帖子,然后点下方的“删除主题”按钮,如图 3 所示:

Jsprun FrontManagement3.gif


上图中点“删除主题”后进入如图 4 所示界面:

Jsprun FrontManagement4.gif


在这里您还可以继续选择是否删除选中的这些主题,如果“后悔了”还可以将主题签名的多选框取消选中;同时,这里还有“定时删除主题”的功能,如果您需要把这些主题保留一段时间后删除,那么你可以在“执行时间”的编辑框中输入执行“删除”操作的具体时间:例如,您选择执行时间为 2008-11-28日,那在点击“提交”后,这些主题都将会在2008-11-28日定时删除,如果需要立即执行则把执行时间留空;如果不需要做什么修改直接“提交”即可。
对于“定时删除功能”说明:
“定时删除功能”定时的时间只能指定到哪天执行,至于要设定删除那天的哪个时间执行,则需要进入论坛后台->其它设置->计划任务->限时操作清理:

Jsprun FrontManagement26.gif


点击“编辑”进入里面设置执行的具体时间:

Jsprun FrontManagement27.gif


关于操作原因在这里做个说明:
(1)管理操作及评分理由选项添加及管理
进入论坛后台 -> 基本设置 -> 论坛功能 -> 管理操作及评分理由选项,如图 5 所示:

Jsprun FrontManagement5.gif


注意:用户可选择本设定中预置的理由选项或自行输入,这里添加的是系统默认自带的操作原因选项。
(2)用户组里设置相应用户组是否需要强制输入操作原因
进入论坛后台 -> 用户管理 -> 用户组 -> (选择某个用户组比如版主)详情 -> 操作理由短消息通知作者,如图 6 所示:

Jsprun FrontManagement6.gif


2、删除回帖
帖子页面,点击“删除”按钮进入删除页面直接删除回帖,或者选中回帖右下方的多选框,如图7所示:

Jsprun FrontManagement7.gif


然后点击图 2 中的“删除回帖”,“提交”后即可删除。
3、移动主题
“移动主题”的操作在版块页面或者帖子页面都可以操作,版块页面可以进行批量主题移动,帖子页面只能移动当前帖子。
需要提一下的是,操作页面针对移动方式有两个选项:移动主题、移动主题并在原来的版块中保留转向。如图 8 所示:

Jsprun FrontManagement8.gif


移动主题:主题直接被移动到目标版块。
移动主题并在原来的版块中保留转向:主题被移动到目标版块后在当前版块继续保留一个帖子链接,点击该链接则进入被移动到目标版块的帖子里了;转向链接的帖子前面会有一个“移动”标志,并且帖子状态为锁定状态。如图 9 所示:

Jsprun FrontManagement9.gif


关于“定时移动主题”功能
对于“定时移动主题”,如果您移动的主题需要在原版块保留一段时间后再移动,那么您可以在“移动主题”的操作页面上的“执行时间”框内输入执行移动操作的时间。执行时间的设定跟“定时删除主题”功能一致,详见“删除主题”。
4、屏蔽帖子
单帖屏蔽功能是一个超级实用的功能,它可以在版主认为用户发布的某个帖子不符合版规或内容有待商榷时使用。单帖屏蔽后,将在帖子内容处显示“内容被屏蔽”,此时用户将无法浏览帖子内容,但论坛管理团队的工作人员仍然可以查看帖子内容,并且屏蔽的只是这个帖子,不会影响他的帐号和其他帖子。如果将来对帖子内容有分歧,也可以很方便地将改帖再开放,让大家查看、讨论。
使用方法类似于“删除回帖”操作,在帖子右下角的多选框选中要屏蔽的帖子,在帖子页面右下角的管理选项里选择“屏蔽帖子”,则该帖子被屏蔽。您也可以直接在该帖子的右下方点击“屏蔽”按钮直接屏蔽:
被屏蔽的帖子内容只有管理员能看到,帖子作者本人和其他会员都看不到帖子内容,如图 10 所示:

Jsprun FrontManagement10.gif


5、关闭/打开主题
关闭主题功能主要用于一些不想让别人跟帖的帖子,使用方法也很简单,版块页面可以批量关闭多个帖子,帖子页面关闭当前帖子。
关闭后的帖子其他会员无法回复,并且帖子显示锁定状态,如图 11 所示:

Jsprun FrontManagement11.gif


6、复制主题
“复制主题”功能的操作方法类似于“移动主题”,选择目标版块后,该主题将被移动到目标版块里,这里需要注意的是只会将主题复制过去,不会复制其后面的回帖和查看数。
7、主题分类
“主题分类”功能主要用于将已有的没有选择“主题分类”的帖子强制进行主题分类,操作方法如图 12 所示:

Jsprun FrontManagement12.gif


8、高亮显示
“高亮显示”主题功能主要用于对一些比较重要的或者很有价值的帖子进行高亮,以便更多的会员看到,更容易引人注意。
操作界面如图 13 所示:

Jsprun FrontManagement13.gif


9、加入/解除精华
这也是个很常用到的功能,管理员或者版主经常会将自己认为不错的值得收藏的帖子加为精华,在 JspRun! 系统里,总共有三种精华:一级精华、二级精华和三级精华。如图 14 所示:

Jsprun FrontManagement14.gif


系统默认自带的积分策略对加精华的设置分别为:加入一级精华则威望增加 10,加入二级精华威望增加 20,加入三级精华威望增加 30。
帖子被加入精华后在查看版块页面可以看到其帖子标题后面有精华级别图标,如图 15 所示:

Jsprun FrontManagement15.gif


10、提升/下沉主题
“提升主题”主要用来突出显示一个主题,想让它总是浮在帖子列表第一页;而“下沉主题”相反的,用于让一个帖子迅速消失在帖子列表的第一页。
其操作方法很简单,如图 16 所示:

Jsprun FrontManagement16.gif


11、置顶/解除置顶
这是个对版主和管理员来说经常用到的操作,版主或者管理员经常会置顶一些类似于公告、版规、引导帖、问题总结等等的帖子。
JspRun! 系统总共有三种置顶:本版置顶、分类置顶和全局置顶。如图 17 所示:

Jsprun FrontManagement17.gif


本版置顶:此种置顶的帖子只在本版块内置顶显示,不影响其他版块及子版块。
分类置顶:此种置顶的帖子将在本分区下面的所有版块内置顶显示,包括该分区下的所有版块及子版块。
全局置顶:此种置顶的帖子将在本论坛内所有版块内置顶显示,包括所有版块和子版块。
12、分割主题
“分割主题”功能主要用来把某个帖子的主题或者回复分割出来成为一个新的主题,操作如图 18 所示:

Jsprun FrontManagement18.gif


13、合并主题
“合并主题”功能用于把两个主题贴合二为一。
操作方法:进入帖子页面,在右下角的管理选项中点击“合并主题”,在“主题tid”那里填写即将与当前主题合并的 tid,合并后的主题为当前主题,与当前主题进行合并的主题变为当前主题的回复。如图 19 所示:

Jsprun FrontManagement19.gif


14、修复主题
有的时候我们查看某个帖子的时候发现这个帖子的一些回复打不开等等一些情况,这个时候我们就可以通过“修复主题”功能使该主题恢复正常。
操作方法:进入帖子页面,在右下角的管理选项中点击“修复主题”,如图 20 所示:

Jsprun FrontManagement20.gif


下面再说明下管理员和版主日常管理会用到的几个操作:
1、评分
进入帖子页面,在帖子的右下角我们可以看到“评分”管理选项,如图 21 所示:

Jsprun FrontManagement21.gif


给一个帖子进行评分后的效果如图 22 所示:

Jsprun FrontManagement22.gif


注意:用户不可以给自己的帖子评分。
2、编辑帖子
管理员或者版主有时候因为一些需要可能会编辑其他会员的帖子,比如该会员帖子中有不文明或者敏感词等等的时候。
操作方法有两种:
1)双击帖子内容
双击帖子内容后的编辑页面如图 23 所示:

Jsprun FrontManagement23.gif


2)点击帖子右下角的“编辑”按钮,如图 24 所示:

Jsprun FrontManagement24.gif


其编辑页面类似于发帖页面,如图 25 所示:

Jsprun FrontManagement25.gif


后台使用

基本设置

JspRun!基本设置是论坛常用功能和全局配置的总开关。通常论坛安装完毕,您首先需要对 基本设置 进行配置。配置完毕基本设置后,您需要对论坛的一些常见功能 论坛功能 进行合理化的配置,从而提供给用户所需功能。最后您需要根据用户的访问习惯来配置 界面与显示方式,进而带给用户一个良好的浏览体验。
同时我们还提供以下设置内容给各位站长,方便您更差异化的配置个性化站点。
注册与访问控制,可以提供给站长灵活自由的注册机制和访问限制。
积分设置,内置多种积分策略,同时提供灵活的设置机制亦可制定出多种适合自己的积分计算公式,并且有积分交易的多维设置。
时间设置,为了满足不同用户的需求,我们允许站长自定义时间格式等。另外我们提供了一个以时间为条件的权限控制策略,以便站长管理论坛更轻松便捷。
wap设置,wap设置主要是针对手机访问用户,是多种访问方式的一种。

另外为了针对不同的站点运行情况和服务器硬件配置,我们提供了如下优化内容,让论坛更适合每一位站长的使用。
搜索引擎优化 ,针对于本论坛设置有效的SEO参数,真正的做到精准优化。JspRun!的 JspRun! URL 静态化功能,通过进行 URL 静态化转换从而使论坛内容更容易被搜索引擎挖掘,提高被收录的机率。
页面缓存配置,对于大型论坛来说,一个高效灵活的缓存是必不可少的。
服务器优化,针对于服务器的硬件配置,站长可以设置更适合自己论坛的优化方案,以减小服务器负载,增加论坛运载性能。
附件设置,对论坛的附件进行存放管理,水印管理,防盗链设置。为您站点的附件提供更加合理的存放和显示方案。
邮件设置,通过论坛来向您的会员发送电子邮件,让您的管理与服务更加的专业和体贴。
验证码和验证问答,为防止SPAM骚扰,我们提供了强大的验证码和验证问答机制以抵御垃圾信息的传播。

针对于所有的会员,我们提供了如下的全局配置,希望您更加简单方便地管理论坛用户的权限。
用户权限设置,基于用户基本权限的控制,方便统一化管理。
个人空间设置,个人空间让每一个会员都拥有一个展示自我的机会。

论坛管理

论坛安装之后,需要为自己的论坛增加版块,每个版块又有不同的限制,您在论坛管理里可以迅速完成版块创建和版块设置。如添加版块,设置版块名称,发帖权限,浏览权限,针对每个版块的积分策略等等,尽在版块设置一栏!
添加版块:为站点增加新的分类,版块和子板块。
编辑版块:设置每个版块的权限,名称。
版块设置复制:版块设置复制可将源版块栏目的某些设置应到其它多个版块,用于以一个版块的设置为基础,快速设置一批版块。
版块方案设置:让您轻松快捷设置版块。
如何设置版主:在此设置某个版块的版主。
合并版块:将两个版块合二为一。
主题分类:用于给分版块中的主题进行归类。
JspRun!6.0 的 结构化数据功能,为了更加聚合论坛的信息,您可以设置论坛的分类信息。自定义信息模型,自定义信息类别,自定义分类信息选项,根据站点的类型和会员的喜好您可以设置不同类型的模型,大大增强了站点信息的融合度。
为了降低站长修改模板的门槛,JspRun! 提供了直接在后台修改页面显示的功能,而不必自己修改 css 文件。您可以在论坛管理的 界面风格 里,修改页面显示,如字体大小、颜色,边框颜色,宽度等等。这样使得您不必非常了解 css 结构即可修改论坛的界面和风格。

用户管理

用户是每个站点至关重要的一个部分,设置合理的用户组权限,有利于站点的扩大。在用户管理这项设置里您可以对站点用户组权限进行设置,对会员的奖惩也在此设置。如果希望会员填写更多的资料,您还可以设置用户栏目定制。
添加用户:为站点增加新的用户。
编辑用户:单独设置某个会员的具体属性。
禁止用户:对违规用户的惩罚方式。
合并用户:将几个会员合并为一个会员。
禁止IP:设置不允许访问站点的IP。
积分奖惩:从积分的方面对会员进行奖励和惩罚,即增减积分。
审核新用户:如果站点开启人工审核新注册会员,站长在此审核新注册会员。
用户栏目定制:为站点设置更加丰富的会员资料,有利于聚合会员。

在此您可以设置每个用户组的基本权限,发特殊主题权限,发帖子权限,发布附件权限,使用道具的权限,评分权限,邀请注册的权限。奖惩会员同样在此设置。
管理组:设置具备管理权限的用户组权限。
用户组设置方案详解:让您轻松快捷设置用户组权限。
发帖数级别:根据发帖数划分的用户级别,该级别只是一种头衔称谓,并不与实际用户权限产生联系。
JspRun!具有强大的用户组功能,以上是对基本的用户组和管理组权限进行介绍。接下来为您介绍:如何增加用户组 和 JspRun! 多用户组分析及详解,您可以从宏观上了解JspRun!用户组功能。

帖子管理

论坛发展到一定规模之后,有大量的帖子,为了方便站长统一管理,JspRun!提供批量主题管理的功能。
论坛开启了审核主题功能之后,部分会员的主题或者回复需要站长 统一审核,审核之后的主题才会在论坛的页面显示出来。
批量管理主题 ,删除帖子 ,管理附件 ,方便站点对站点信息的统一整理。
JspRun!6.0提供了 主题推荐 功能,能够更有效地将重要信息展示到会员面前。
设置 JspRun!代码,如Flash代码,Fly代码等,开启这些代码后,极大地丰富了帖子的展现形式。
Tag是互联网关联信息的好工具,标签管理 既是管理论坛的Tag信息。关于主题TAG的开启和使用方法看这里:JspRun!6.0 主题TAG开启及使用详解
词语过滤 为站点设置禁止直接发布的词语,可以完全抵制会员发布违规信息。
丰富的表情能够更加表达会员的喜怒哀乐,表情管理 是您提供增加独特表情的途径。
主题图标 是显示在主题页面,每个主题前面的小图标,不要忽视这个小图标哦,小小的图标更能反映会员发帖时的心理状态。
附件类型尺寸 让您定义站点允许上传的附件类型和附件大小,注意这里是全局的附件类型设置。
主题回收站 为您提供被删除主题的处理方式。

扩展设置

JspRun! 扩展设置是针对论坛功能之外的其他需求所做的一个扩展接口。这里主要包括以下几个方面的设置:“检测服务器信息”、“会员IP分布”、“搜索引擎设置”。

其他设置

“其他设置”包含“论坛公告”、“广告管理”、“联盟论坛”、“计划任务”、“论坛帮助”这些常用设置;以及“勋章编辑”、“在线列表定制”等的细节设;还有酷炫“道具中心”,增加论坛的趣味性和人性化。
论坛公告 论坛公告是每个站长最常用到的功能,您可以通过这里发布一些您想告知所有会员的信息。
勋章编辑 如果您想拥有与众不同的勋章图标,那就来这里添加和编辑吧。
广告管理 JspRun! 系统默认自带的广告位有 8 种:页头通栏广告、尾部横幅广告、页内文字广告、帖内广告、帖间通栏广告、飘浮广告、对联广告、分间类广告。想知道每一种广告的添加方法和显示效果吗?来这里看看就全明白啦!
友情链接 友情链接也是每个论坛都会用到的一个功能,友情链接的呈现方式有以下三种:竖排完全显示文字和 logo、横排纯 logo 显示、横排纯文字显示。您需要哪种方式的联盟论坛排列方式?或者说哪几种友情链接的显示方式更适合您?
计划任务 计划任务是每个站点必用到的一个功能,计划任务的作用是通过执行计划任务,使得系统在规定时间自动执行某些特定任务的功能。例如:在每天的某个时刻,通过执行计划任务,清空当日发帖量。
论坛帮助 论坛帮助主要是针对站点会员而提供的,方便会员能快捷地找到自己需要了解的内容。站长可以根据站点情况,随意添加帮助信息。想知道如何添加吗?
在线列表定制 在线列表定制类似于勋章编辑,对论坛来说是一个风格显示上的不同,特别设计的在线列表小图标可以使你的站点更具独特性。
道具中心 JspRun! 道具中心的设计思想部分来自于流行的网络游戏,再加上我们对社区论坛系统的深刻理解,开创了一套灵活而生态的社区道具体系。

论坛安全

JspRun! 论坛安全为广大站长提供了各种安全机制,站长可以调整这些设置来增强论坛的安全性能和防御性能。
基本设置 包括了当数据库和程序出错时向版主报告的设置,以及管理人员后台登录安全甄别和设置管理员是否能在论坛后台运行 SQL 语句、恢复论坛数据、在线编辑论坛模板。
CC 防御 则包括了cookie 刷新限制、限制代理访问、二次请求回答问题(第一次访问时需要回答问题)可以有效抵御cc攻击。
DDOS 防御 不仅给出了DDOS的攻击原理同时也给出了对应的方案。

系统工具

JspRun! 系统工具包含了多种针对 JspRun! 论坛的实用工具,比如:数据库备份和恢复功能、数据库升级功能(可执行 SQL 语句)、数据表优化功能、数据库校验功能、文件权限检查功能、文件校验功能、论坛通知功能、更新缓存功能、更新论坛统计功能、JS 调用向导、积分策略向导、清理短消息功能、论坛方案设置,还有各种操作的运行记录。
JspRun!数据库备份和恢复 JspRun! 后台自带了数据库备份和恢复的功能,管理员可以在站点正常运行的时候对站点数据进行备份,保证数据的安全性;资料恢复功能保证管理员可以在当前站点出问题的时候及时恢复之前的备份数据。
JspRun!数据库升级 数据库升级功能允许管理员在这里执行 SQL 语句,主要用来通过执行 SQL 语句批量进行一些操作,不过在这里操作前一定要备份好数据,以免操作失误导致不必要的损失。
JspRun!数据表优化 JspRun! 后台的数据表优化功能,能够检验出存在碎片的数据文件并对碎片进行清除,提高了论坛的读取速度。
JspRun!数据库校验 数据库校验就是用当前版本的论坛的标准数据库结构和您当前的数据库结构进行对比,从而可以发现不标准的表和字段。。
JspRun!文件权限检查 文件权限检查是针对 JspRun! 本身的运行环境需要,检查站点所有的目录权限是否已设置正确。。
JspRun!文件校验 文件校验功能可以使你及时发现论坛程序是否被非法篡改。通过文件校验可以看得到你的哪些文件被修改过了,哪些文件是新增的,哪些文件被删除了,这些问题都一目了然,方便您可以很快的发现问题并且解决问题。
JspRun!论坛通知 论坛通知功能顾名思义就是针对站内会员发布论坛通知,JspRun! 论坛通知是以发送站内短消息或者邮件的形式发布轮通知给知道的用户或者用户组。
JspRun!更新缓存 论坛后台的更新缓存主要是清空了 \forumdata\cache 和 \forumdata\templates 两个目录下的所有文件。
JspRun!更新论坛统计 论坛的总体信息变换的很频繁,比如删除帖子,发表帖子都会影响帖子总数,所以难免会出现一些统计信息和你的论坛的实际信息不符的情况,怎样才能让论坛的总体信息更为准确呢?那么JspRun!的更新论坛统计一定能够满足您的需求。
JspRun!JS 调用向导 JS 调用功能是 JspRun! 一个很经典的功能,它可以将论坛新帖、论坛会员、论坛排行等资料嵌入到您的普通网页中,访问者无需访问论坛即可获知论坛最近更新的情况,很方便的组合成首页系统。
JspRun!积分策略向导 JspRun!论坛有强大的积分体系,强大的功能后面必然有庞大的设置。由于积分是深入到论坛的每一个细节的,所以将深入到每个细节的积分设置都提取起来进行设置的话,那样管理起积分来就十分的得心应手了,这就是——积分策略向导!
JspRun!清理短消息 论坛运营过程中,随着会员数的增加,发帖数的增多,数据库变得很大,这时候会消耗更多的资源,为论坛“瘦身”势在必行,当然站长肯定不愿意删除帖子和会员了,但是有一项数据,它既不会很影响论坛,又很占用数据库大小,这就是短消息。所以清理短消息功能对于比较大的站点来说很小但很有用。
JspRun!论坛方案设置 不同性质的论坛,对版块,用户组权限,积分等的设置需求是不同的,JspRun! 论坛提供了方便的论坛设置方案功能,您可以根据自己的需要,设置几套版块方案,用户组方案和积分策略方案,然后就可以通过选择方便地设置论坛了。
JspRun!运行记录 记录论坛各个运行状态的运行记录,方便站长了解论坛的运行情况。

插件开发

序言

插件,是基于 JspRun! 论坛系统之上,设计开发的一种小程序或小方案,用来实现对论坛现有功能扩展和改进。由于 JspRun! 已具有相当完备的底层架构,因此插件并不需要具备很多深层的设计思想,也不需要很专业的开发人员,只要把想实现的功能与论坛的基本体系挂接起来,论坛就能拥有更加个性化的功能。插件与界面风格都是实现论坛个性化的有效方式,前者多用于论坛功能和特性的扩充,后者则用来满足访问者多样化的审美取向。
JspRun! 采用了标准的开发方式,为了方便程序员开发插件和用户安装使用插件,特别设计了一套完整的插件接口,为外挂型插件提供了一系列完善的支持。如果您是程序员,想为论坛实现某些附加功能,请仔细阅读插件设计和插件安装两部分的说明;如果您是论坛建立者,想使用他人开发好的插件模块,则只需阅读插件安装部分的说明。
JspRun! 的插件接口,是JspRun! 开发组设计的一套接口规范,尽量使得插件设计、发布、安装和使用都更加方便,同时与论坛结合的更紧密,有助于程序员把最大限度的精力投入到插件本身去,而无需考虑过多的挂接和兼容问题。
JspRun! 的插件接口采用外挂程序的方式,拥有相对独立而完整的功能,此种方式通常用来实现较多和较为复杂的论坛功能,可以通过 JspRun! 插件接口实现傻瓜化的安装和配置,同时兼容性较好,安装和升级比较方便。
本文档主要对功能相对独立,使用外挂程序方式的插件的设计与使用作以说明。

插件安装

作为论坛软件的使用者,您将可能获得丰富而多样的论坛插件。此类插件通常由第三方开发,其中大部分为免费提供的形式,在 JspRun! 现有功能的基础上,提供了更加个性化的选择。如果您热衷于为您的网友提供更加个性化的论坛服务,或把 DIY 您的论坛作为一项个人爱好,使用插件进行论坛扩充将会是很好的选择。作为软件开发商,我们无法对插件的安装和使用提供技术支持,因此您使用插件的重要前提,是自身具有相当的经验和程序调试能力,以便在出现问题时妥善的解决,不至于影响到正常的论坛服务。
如果您是插件开发者,并希望公开发布您设计的论坛插件,也请仔细阅读本文档。更多的了解使用者的心态和感受,并将获得的经验应用于插件设计中去,将使您的插件受到更多使用者的欢迎和好评。

使用插件的风险
安装和使用插件无疑为使用者提供了令人兴奋的扩展特性,但您在动手之前必须要考虑清楚使用插件的风险,依据对风险的评估来决定是否安装插件,毕竟对于网站论坛来说,运行稳定和访问快速是压倒一切的根本目标。插件由第三方开发的性质,决定了插件的质量可能参差不齐,可能导致的问题有:

  • 由于对系统权限控制的不精通和安全编码经验的不充足导致的论坛安全性下降,严重时插件可能会被作为攻击论坛系统、非法获取管理权限的入口;
  • 并不是所有的插件作者和开发团队都深谙高效的编码技术和优化的数据结构设计,例如一条编写不当的 SQL 语句,可能会耗费比整个论坛系统更多的服务器资源。因此有些插件可能导致论坛变得不稳定、访问速度变慢、资源消耗提高;
  • 由于 JspRun! 开发组长期坚持对论坛系统的功能及结构进行改进,以实现更优化的系统效率和更强大的系统功能。虽然采用插件接口推荐的设计方式,可以尽可能的避免兼容性问题,但由于插件实现方式的多样性,您使用的插件仍然有可能无法兼容于未来的 JspRun! 版本。通常适用于老版本的插件稍作修改就可以用于新版本 JspRun! 上,因此您需要等待插件开发团队提供专供新版本的插件升级包,或自行修改代码。某些情况下,因为模板和程序代码的升级,即便插件具有后续兼容性,您仍然需要重复修改插件用到的这些模板和代码,才能把插件挂接在新的版本上;
  • 不少插件作者是属于兼职或个人爱好的性质,并不能坚持对插件提供升级和技术支持,因此您不能奢望插件作者一直帮助您解决使用插件的疑难问题,您自身良好的代码调试能力和丰富的 Web 应用程序开发使用经验,是使用论坛插件的必要保证。

安装插件的流程
如果您经过以上的风险评估,认为使用插件适合您当前的自身情况,就可以开始插件的安装了。如果插件基于 JspRun! 插件接口进行开发(请参考《插件设计》中的说明),则插件安装的流程就变得非常简单,可以按照如下的步骤进行:

  • 下载所需的插件,仔细阅读插件说明书;
  • 在 系统设置 的 插件管理中,将插件提供的导入代码粘贴到文本框中并提交;
  • 按照插件说明书的描述,修改指定模板、程序,上传相应的插件文件到指定的目录;
  • 按照插件说明书的描述,开启插件、设置插件参数并开始使用插件。

注意:上述步骤只是按照通用流程进行描述的,如果本文介绍的安装流程与插件说明书中的描述不符,请以插件提供者的描述为准。

插件设计

您在开始论坛插件的设计之前,有必要了解一下我们所推荐的插件设计方式,更好的规范性和兼容性,将使得您设计的插件受到更多使用者的欢迎,对于程序员而言,也有助于形成良好的编码习惯,实现自身能力的提升。如果您有意编写 JspRun! 论坛插件,请按照先后顺序仔细阅读本文档。

准备工作

插件实现流程
开始编写论坛插件,您应当首先对插件实现的流程有一个大致的了解,以下是我们推荐的插件编写流程:

  • 熟练使用 JspRun! 论坛系统后,对希望完善或补充的个性化功能进行评估,进而提出插件的功能需求。
  • 对插件做一个概括性的设计,例如:需要使用什么菜单、什么参数,配置哪些选项、数据结构如何设计、前后台实现哪些功能等等。。
  • 阅读本文档并在系统设置中实际体验 JspRun! 插件接口所实现的功用,例如:您的插件应当如何设计才能良好的挂接到论坛系统中来。插件接口能够实现哪些功能、不能实现哪些功能,插件为此而需要做的优化、改造和取舍。
  • 编写相应程序代码和模板语句,实现所需的功能并进行代码测试、兼容性测试和代码改进。
  • 如果需要公开您的插件,可以用插件导出的方式,将插件配置信息导出到一个文本文件中,连同相应的程序和模板文件一同打包。同时,编写一个适合新手的插件的说明书也是必不可少的,其中包括:插件适用的 JspRun! 版本、功能概述、兼容性声明、安装方法、使用方法、卸载方法等等。
  • 将插件提供给他人,或自己使用,根据使用者反馈,对插件进行完善。插件实现流程至此结束。

文件命名规范
JspRun! 按照如下的规范对程序和模板进行命名,请在设计插件时尽量遵循此命名规范:

  • 可以直接通过浏览器访问的普通程序文件,以 .jsp后缀命名。
  • 被普通程序文件引用的程序文件,以 .inc.jsp后缀命名。
  • 被普通程序文件,或引用程序文件引用的函数库或类库,以 .func.jsp(函数库) 或 .class.jsp(类库) 后缀命名。
  • 模板文件,以 .jsp 后缀命名,模板文件只存在于 ./templates/default 目录中。
  • 动态缓存文件,存放于 ./forumdata/cache 目录中,依据不同的功能进行独立的命名。
  • 使用后台数据备份功能生成的备份文件,通常以 .sql 为后缀,存放于 ./forumdata/ 目录中。
  • 有些目录中存在内容为空白的 index.htm 文件,此类文件是为了避免 Web 服务器打开 Directory Index 时可能产生的安全问题。

OnlineFilter.java功能白皮书
cn.jsprun.filter.OnlineFilter.java是 JspRun! 的通用初始化过滤程序,其在所有的可执行代码之前被执行,在您开始插件设计之前,可以先对该模块的大致功能做一定的了解。OnlineFilter.java主要完成了以下任务:

  • 对不同 JSP 及操作系统环境做了判断和兼容性处理,使得 JspRun! 可以运行于各种不同配置的服务器环境下。
  • 通过 config.properties 中提供的数据库账号信息,建立数据库连接。
  • 判断用户是否登录并存储在当前会话(HttpSession)中,如登录标记 jsprun_uid 为非 0,同时将 jsprun_user(加了 slash 的用户名,可用于不加修改的插入数据库)、 jsprun_userss(原始的用户名,可用于页面显示)、jsprun_pw(用户密码的MD5串)、jsprun_secques(登录提示问题的加密串)等相应用户信息赋值。
  • 判断用户管理权限并存储在当前会话(HttpSession)中,将管理权限标记 jsprun_adminid 为 -1~3 中间的值。-1 代表为特殊用户组用户。0 代表普通用户;1 代表论坛管理员;2 代表超级版主;3 代表论坛版主。将用户权限按照其所在的主用户组 ID 标记为 jsprun_groupid,相关权限从该 jsprun_groupid 所对应的系统缓存中读出(forumdata/cache/usergroup_${jsprun_groupid}.jsp)。将用户扩展权限按照其扩展用户组 ID 标记为 extgroupids,中间以 \t(tab) 分隔,格式为“groupid1\tgroupid2...”,扩展用户组用于确定用户的扩展浏览权限,例如能否访问某些有特殊权限设定的论坛等。
  • 读入系统设置中的各种变量,并根据 Cache 模块的设定,根据当前被调用的程序文件名(如 index.jsp,forumdisplay.jsp等等)读入相应的缓存代码。缓存代码被存放于 ./forumdata/cache/ 中。除了对应当前程序的缓存,可能还会加载一些通用的缓存数据,例如整个论坛的设置(./forumdata/cache /cache_settings.jsp)、界面风格(./forumdata/cache/style_x.jsp)、当前用户的用户组(. /forumdata/cache/usergroup_x.jsp)、管理组权限(./forumdata/cache /admingroup_x.jsp)等。
  • 缓存数据的格式,大多是存放在 ${cachename} 数组中,有些常用的参数,如系统设置中的参数、风格界面等,通常还被进行了展开操作(extract)或使用常量进行赋值。
  • 用户如果处在登录状态,会自动读出 members 表相关用户的参数值,用户的个性设置参数:如时差、时间格式、界面风格等等,会根据实际情况覆盖系统默认值,因此在后续程序通常不用再做判断。
  • 如果程序提交的 URL 中包含 tid=x 或 fid= x,OnlineFilter.java模块会自动读出其所对应的论坛记录及包括 access masks、版主设定等相应权限。


插件接口概述

使用管理员账号登录 JspRun! 系统设置,在左侧菜单将可以看到“插件设置”和“插件管理”两个选项,使用超级版主或版主账号登录,将只出现“插件设置”一个选项。“插件管理”是控制插件打开与否、设计插件模块、菜单、参数和使用权限的地方,插件开发者可以依照设计意图,在此进行插件的初步设置,这里同时也提供插件导入和插件开关的功能,用于导入他人设计的插件和对插件的可用状态进行变更。“插件设置”是对已经安装的插件进行设置的地方,供使用者对插件参数进行调整以实现不同的插件功能。即前者主要面向开发者,后者主要面向使用者。
开始编写一个新插件,请首先在插件管理中,输入新插件的名称和惟一标识符。名称用于表明此插件的用途,例如设置为“虚拟银行插件”。惟一标识符用于在后续的插件模块中调用本插件,不可与现有插件重复,命名规则限制与 java 变量命名相同,虽然初次设置后仍可改动,但强烈建议一次性将此配置设置好,否则可能涉及到很多代码方面的变更,增加编码的麻烦。请注意:惟一标识符请不要设置的过短,或使用有可能与其他插件重复的命名,例如制作此插件的公司叫做 JspRun Inc.,插件名称是“虚拟银行插件”,惟一标识符可设置为“jsprun_virtual_bank”,后面将以“虚拟银行插件”和 “jsprun_virtual_bank”为例进行说明。
在插件管理中添加插件后,仅仅是增加了一条插件记录,后面还需要很多相关的设计和设置。在列表中选择插件的“详情”进入插件的详细设置。插件设置分为三个部分:

  • 插件基本设置:
    设置插件的基本参数,配置项目右边括号中的内容,为此设置对应的参数名称,调用方法将在后面的《参数读取与缓存控制》中详细说明。
  • 插件模块和自定义菜单:
    插件接口默认提供六种可选的模块方式:
    • 直接链接(前台菜单):可在前台右上角加入一个菜单项,可自主指派菜单链接的 URL。注意:由于引用外部程序,因此即便设置了模块的使用等级,您的程序如需权限判断,仍需要引用 OnlineFilter.java 和插件相关的缓存文件(将在后面的《参数读取与缓存控制》中详细说明),并自行判断使用等级是否合法。
    • 前台调用(前台菜单):与直接链接类似,但其调用的是插件的一个模块,模块文件名指派为“./plugins/插件目录/插件模块名.inc.jsp”,由 plugin.jsp调用此模块,调用 URL 将在后面的《编写插件的原则与注意事项》中详细说明。
    • 后台调用(后台菜单):可在后台插件设置中为此插件增添一个管理模块,模块文件名指派为“./plugins/插件目录/插件模块名.inc.jsp”,由 admincp.jsp调用此模块,调用 URL 将在后面的《编写插件的原则与注意事项》中详细说明。
    • 包含运行(无菜单):可设置一个在论坛所有页面均包含运行的脚本,此脚本在 OnlineFilter.java 中加载,脚本文件名指派为“./plugins/插件目录/插件模块名.inc.jsp”。请注意,为了不导致错误的插件影响论坛运行,在 OnlineFilter.java 加载此模块时,屏蔽了错误信息,因此请务必仔细检查是否存在语法错误,任何微小的语法错误都将不被提示出来,并且导致此模块不被正常加载。如果您配置了不正确的包含脚本而导致论坛系统设置无法使用,删除服务器上相应的脚本文件即可解决。
    • 直接链接(前台下拉菜单):可在前台右上角加入一个菜单项,并以下拉的方式显示。调用及加载方式同“直接链接(前台菜单)”。
    • 前台调用(前台下拉菜单):可在前台右上角加入一个菜单项,并以下拉的方式显示。调用及加载方式同“前台调用(前台菜单)”。
    您可以为每个模块设置不同的使用等级,例如设置为“超级版主”,则超级版主及更高的管理者(例如论坛管理员)可以使用此模块。
  • 插件钩子设置:
    插件钩子能够将插件代码埋藏在程序中的任意位置,从而实现更加灵活的插件功能,最大限度的减少对原有程序代码的修改。 论坛版本升级后,只需将相应钩子重新埋入相应程序中,原有插件即可继续使用。 关于插件钩子的具体设计方法请见下面的《插件钩子的设计》。
  • 插件变量配置:
    插件接口中提供了一个通用的插件配置管理程序,在大多数情况下可实现插件的参数配置,省却了插件开发者自行编写后台管理模块(即上面提到的“后台调用(后台菜单)”模块)的麻烦。通常情况下,应优先使用通用插件配置管理程序来实现插件的参数配置,只有在通用程序确实无法实现时,才自行编写后台管理模块。输入配置名称和配置变量名、选择合适的配置类型后,即可为此插件增加一个配置变量,点“详情”可以编辑此配置变量的更多信息。为了方便插件程序调用使用者配置好的参数,配置变量同样被存放在了缓存文件中,读取方法将在后面的《参数读取与缓存控制》中详细说明。

注意:您只有在插件管理中将插件设置为“可用”,以上设置才能生效。

参数读取与缓存控制

编写插件程序时,可能需要读取一些插件的信息,如果插件需要使用者进行配置,还需要读取使用者设置的参数值。JspRun! 允许插件程序使用数据库读取和缓存读取这两种方法获取插件信息和参数。JspRun! 的插件接口已经对插件信息进行了合理的缓存,使用缓存读取的方式,将比数据库读取速度更快,消耗的资源更是几乎可以忽略不计。缓存读取唯一的局限是需要插件使用插件接口提供的通用后台管理程序。如果使用自定义后台模块的方式,需要后台模块将参数存放到 pluginvars 数据表中,才能被系统正常缓存。我们强烈推荐您通过缓存读取插件信息和配置数据。

插件数据结构
插件数据使用两个数据表存放,分别是 plugins 和 pluginvars。前者用于存放插件信息:安装了多少个插件,就有多少条记录;后者用于存放插件的配置参数和配置值:所有已安装的插件总共有多少个配置项目,就有多少条记录。下面的表格列出了这两个表的主要字段及其用途说明。

plugins 表
字段名 用途说明
pluginid 插件的惟一 ID,自动递增
available 插件是否可用,1=是,0=否
adminid 使用系统设置中插件接口自带的插件参数设置程序所需的最低权限等级要求,1=管理员,2=超级版主,3=版主
name 插件名称
identifier 插件惟一标识符
description 插件简介
datatables 插件数据表,不包含前缀,多个表使用半角逗号“,”分隔
directory 插件所在目录,例如设置为 jsprun_bank,则对应论坛目录的位置为 ./plugins/jsprun_bank/
copyright 插件版权信息
modules 插件模块信息,数组格式,使用 serialize() 序列化后存放


pluginvars 表:
字段名 用途说明
pluginvarid 插件配置的惟一 ID,自动地增
pluginid 本项配置所隶属的插件 ID
displayorder 本项配置的显示顺序,数值低的排在前面
title 插件配置的名称
description 插件配置的简介
variable 插件配置的变量名
type 插件配置的类型
value 插件配置的值
copyright 插件版权信息
extra 当本项配置为“选择(select)”时,可选的取值范围


如果您使用自行编写的插件后台管理模块进行插件参数配置,请尽量将配置项目按照 pluginid 的对应关系,将参数存储于 pluginvars 表中,这样系统就可以自动将您增加的配置参数缓存起来,以供插件程序进行调用。

插件参数读取
了解了 JspRun! 插件存储的数据结构后,您可以在插件程序中根据需要选择合适的数据读取方式。由于数据库读取方式可以由数据结构推断而来,因此这里只介绍缓存读取的方式,这种方式是我们强烈推荐的插件数据读取方式。
在管理者配置好插件信息,或用户进行插件的参数设置之后,系统将根据插件设置的惟一标识符,自动生成一个插件数据的缓存文件,例如惟一标识符为 jsprun_virtual_bank,则缓存文件位于 ./forumdata/cache/plugin_jsprun_virtual_bank.jsp,您可以打开此文件查看其中的数据内容和格式。缓存采用数组的方式进行存储,引用此文件即可将所需的插件参数一次性赋值。
其中,${jsprun_virtual_bank} 这个数组下标,为插件的惟一标识符,所有插件缓存数据,一经被引用,就会赋值到 HashMap集合中。modules 描述了这个插件的模块信息,其中 type 为 1~4 的整数值,从小到大依次为“直接链接(前台菜单)”、“前台调用(前台菜单)”、“后台调用(后台菜单)”、“包含运行(无菜单)”;vars 描述了这个插件的配置变量,前面为变量名,后面为使用者赋予这个变量的值。

编写插件的原则与注意事项

请在您动手编写插件之前,还需要仔细的阅读以下原则,遵循这些原则,将有效的避免可能发生的问题:

  • 所有与插件的程序,包括其全部的前后台程序,请全部放入 ./plugins 目录中,同时在插件的安装说明中指出,插件的文件需要复制到哪些目录。为了避免与其他插件冲突,请尽量建立 ./plugins 下的子目录,并将插件程序放置于子目录下,这样您编写的插件将获得更好的兼容性。
  • 如果您的插件包含“前台调用(前台菜单)”模块,该模块将统一用plugin.jsp?identifier=xxx&module= yyy 的方式调用,请在相应链接、表单中使用此方式。其中 xxx 为插件的惟一标识符,yyy为模块名称。前台插件外壳程序plugin.jsp已经加载了通用初始化模块(OnlineFilter.java),不需再次引用。
  • 如果您的插件包含“后台调用(后台菜单)”模块,该模块将统一用admincp.jsp?action=plugins& amp;identifier=xxx&mod= yyy的方式调用,请在相应链接、表单中使用此方式。其中xxx和yyy的定义与“前台调用(前台菜单)”模块中的相同。系统还允许用 admincp.jsp?action=plugins&edit=${edit}&mod=${mod} 的方式来生成链接和表单地址,${edit} 和 ${mod} 变量已经被插件后台管理接口赋值,因此将这两个变量值带入 URL 中也是被支持的。由于后台模块是被 admincp.jsp 调用,因此已加载了通用初始化模块(OnlineFilter.java)并进行了后台管理人员权限验证,因此模块程序中可直接写功能代码,不需再进行验证。
  • 请勿绕过插件的前后台外壳(plugin.jsp和 admincp.jsp)而以直接调用某程序的方式编写插件,因为这样既导致了用户使用不便,代码冗余和不规范,同时又产生了因验证程序考虑不周到而带来的安全隐患。您可以在任何地方,包括链接、表单等处方便的使用上述 URL 地址对插件模块进行调用。

以免其被 URL 直接请求调用,产生安全问题。

  • 一般情况下,您发布插件请使用插件导出的功能,以方便使用者一次性导入插件的配置数据,极特殊的情况下,也可以分步骤告知使用者如何进行插件配置管理和安装此插件。
  • 如果功能独立,请尽量使用单独程序的方式编写插件(即外挂型插件),而尽量少的对论坛本身代码进行修改,这将为使用者今后的升级带来很大方便。
  • 您可以修改 JspRun! 本身的数据结构,但更推荐在不很影响效率的前提下将插件数据用另外的数据表存储,因为不能排除您增加的字段或索引和今后版本 JspRun! 核心数据字段重名的可能。在任何情况下,请不要删除 JspRun! 标准版本数据结构中已有的字段或索引。
  • 请在插件说明书中对插件做以详尽的描述,例如增加了哪些字段、哪些表,修改了或新增了哪些程序,版本兼容性,后续支持的提供方式(例如不提供支持,或以什么样的方式提供)。如果方便,请尽可能提供插件的卸载方法,例如去除哪些字段、删除哪些新增的程序、将哪些被插件修改的程序恢复原状等等,使用者会感激您为此付出的辛勤劳动,甚至愿意支付相应的费用支持您未来的发展。
  • 如果插件使用另外的数据表存储,请在插件管理中准确的设置插件所使用的数据表名称(不包含前缀),这样用户在备份数据的时候,能够把插件数据一同备份。
  • JspRun! 内置了 8 种自定义积分,存储于 members 表中的 extcredits1 至 extcredits8 字段中,类型为有符号整数,您可以在引用 OnlineFilter.java 后,在 ${settings.extcredits} 中读取 8 种积分的启用信息(详情请参考 ./forumdata/cache/cache_settings.jsp)。插件程序中如需更新用户积分,可直接 UPDATE 相应的积分字段,无需其他操作。


插件钩子的设计

插件钩子的设计,需要您具有一定编程基础,比较了解 JspRun! 论坛程序的结构,并能够使用 JSP 语言撰写代码。对于普通用户,可以略过以下内容。插件钩子(以下简称“钩子”)属于插件的一部分,因此在设计钩子之前应当首先进入后台——插件管理,新增插件或者编辑一个现有的插件,即可看到相关设置。

钩子的添加

  • 钩子名称:在一个插件内,钩子的名称是唯一的,不可重复。名称可以由英文字母、数字和“_”组成,不支持中文,最长255个字符。为了便于理解和记忆钩子的作用, 名称应当尽量简洁清晰,能够表述一定的含义。注意:钩子名称对字母大小敏感,例如:Index_start 和 index_start 将视为两个不同的钩子。
  • 钩子描述:对钩子的详细说明,如功能介绍、调用方法、使用方法等。
  • JSP代码:这里是钩子的核心内容,也是一段JSP代码,需要您自行设计,完成钩子需要处理的数据或者需要执行的操作。
  • 可用:每个插件允许有多个钩子,您可以自由选择关闭或者开启某个钩子。


钩子的删除
在钩子管理界面,您可以随时删除某一个钩子。 钩子删除以后,您应当及时修正放置钩子的程序文件,清除钩子标记,以免影响您论坛的正常使用。

钩子的编辑与升级

  • 编辑:插件设计阶段,您可能需要随时编辑钩子,每次更改,系统会自动更新缓存文件,您可以立即看到更改的效果。如果是更改钩子名称,那么您可能需要调整钩子放置的程序,修改钩子调用的名称。
  • 升级:论坛程序进行升级之前,您应当使用插件的导出功能,导出插件备份。论坛升级并正常运行后,再导入插件备份,修改相关程序,重新安放钩子。


钩子的放置与调用
钩子设计完成以后,您需要在相应的程序中安放钩子,不同钩子由于作用的不同,放置的位置也是不同的。 安放钩子,您仅仅需要将钩子的调用代码放入即可。

设计范例
此处我们为您提供一个使用钩子技术的插件范例,完成功能十分简单,旨在使您直观的了解钩子的使用。此范例实现了当游客访问论坛首页时,强制用户登录的功能。

  • 进入系统设置中的插件管理,添加一个名称和惟一标识符均为 demo 的插件。
  • 编辑插件 demo 详情,找到“插件钩子设置”,添加一个名为 index_force_loggedin 的钩子,然后提交。
  • 编辑钩子 index_force_loggedin,按如下内容填写设置:
    • 钩子描述:当游客访问论坛首页的时候,程序会弹出提示框,并自动跳转到登陆页面。
    • JSP代码:
      if(jsprun_uid==0){ 
                   request.setAttribute("successInfo", "请您登陆后访问本站,现在将转入登录页面。"); 
                   request.setAttribute("requestPath","logging.jsp?action=login");
                   return mapping.findForward("showMessage");
                 }
  • 提交后,回到此插件的设置页面。将钩子 index_force_loggedin 设置为可用。
  • 点击左侧导航,进入插件管理,将插件 demo 设置为可用。
  • 编辑论坛程序 index.jsp 安放钩子,方法如下:
    • 查找代码:
      jsprun_action = 1;
    • 在上述代码下放添加代码:
       ${hooks.demo_index_alter
    • 保存文件后将文件上传到服务器。
    • 至此,一个简单的使用钩子实现的插件已经彻底完成。您可以退出登陆并访问论坛首页,测试一下插件的效果。

JspRun! 插件的钩子技术,为广大的插件开发者提供了一个更加灵活的插件设计机制。当 JspRun! 升级后,用户只需重新将钩子调用代码安放到程序中原来的位置,就几乎可以继续使用原来已安装的插件,降低了对于程序修改的幅度和插件安装的难度,更加有利于插件程序的规范、管理、维护、相互交流。因此我们强烈建议插件开发者能够深入研究个应用这一机制,创作出越来越多的优秀插件。

插件设置及管理

插件,是基于 JspRun! 论坛系统之上,设计开发的一种小程序或小方案,用来实现对论坛现有功能扩展和改进。由于 JspRun! 已具有相当完备的底层架构,因此插件并不需要具备很多深层的设计思想,也不需要很专业的开发人员,只要把想实现的功能与论坛的基本体系挂接起来,论坛就能拥有更加个性化的功能。
那么我针对插件管理和设置做一个详细的说明。插件管理主要是针对插件设计者使用,而一般的使用者,使用插件设置即可。
我们进到后台 -> 扩展设置 -> 论坛插件,可以看到个当前安装的插件。如图 1 所示:

Jsprun PluginManagement1.gif


对于插件设计者来说,插件管理到底是怎么使用的呢?或者怎么设计一个插件呢?进插件管理选项。首先得新增加一个插件的配置,那么在新增那里,填写好插件名称和唯一标识符,提交后,就可以得到一个新的插件配置了的。如图 2 所示:

Jsprun PluginManagement2.gif


下面的那个导入插件数据,这个文本输入框,这个是把插件作者设计好的配置,直接粘贴,即可导入论坛。如果插件在论坛的版本不一致的情况下开发的,那么勾选上 允许导入不同版本 JspRun! 的插件(易产生错误!!) 即可导入插件的配置详细。
在我们新增加了一个插件配置后,我们得对插件的配置进行细节的配置。
那么我们增加好的列表里面,选择对应的插件,点详情,如图 3 所示:

Jsprun PluginManagement3.gif


这个就是点帐户中心的详情,进来看到的各个基本配置。但是有这个基本配置还是不够的。
那么需要增加对应的模块来实现需要的功能。但是因为为了插件的安全和使用我们提供的统一调用接口,那么配置对应的模块:如图 4 所示:

Jsprun PluginManagement4.gif


增加对应模块的方法,同样是写上模块的名称(模块的标识符)和 菜单名称即可增加新的模块。
直接链接URL,这个选项,如果填写,那么这个就是在前台增加一个url链接,直接跳转到你填写的地址。

模块类型有下面几种:
直接链接(前台菜单):可在前台右上角加入一个菜单项,可自主指派菜单链接的 URL。注意:由于引用外部程序,因此即便设置了模块的使用等级,您的程序如需权限判断,仍需要引用 OnlineFilter.java和插件相关的缓存文件,并自行判断使用等级是否合法。
前台调用(前台菜单):与直接链接类似,但其调用的是插件的一个模块,模块文件名指派为“./plugins/插件目录/插件模块名.inc.jsp”,由 plugin.jsp调用此模块。
后台调用(后台菜单):可在后台插件设置中为此插件增添一个管理模块,模块文件名指派为“./plugins/插件目录/插件模块名.inc.jsp”,由 admincp.jsp调用此模块。
包含运行(无菜单):可设置一个在论坛所有页面均包含运行的脚本,此脚本在 OnlineFilter.java中加载,脚本文件名指派为“./plugins/插件目录/插件模块名.inc.jsp”。请注意,为了不导致错误的插件影响论坛运行,在 OnlineFilter.java加载此模块时,屏蔽了错误信息,因此请务必仔细检查是否存在语法错误,任何微小的语法错误都将不被提示出来,并且导致此模块不被正常加载。如果您配置了不正确的包含脚本而导致论坛系统设置无法使用,删除服务器上相应的脚本文件即可解决。
您可以为每个模块设置不同的使用等级,例如设置为“超级版主”,则超级版主及更高的管理者(例如论坛管理员)可以使用此模块。
前后台调用方式为:
如果您的插件包含“前台调用(前台菜单)”模块,该模块将统一用plugin.jsp?identifier=xxx& module=yyy 的方式调用,请在相应链接、表单中使用此方式。其中 xxx 为插件的惟一标识符,yyy 为模块名称。前台插件外壳程序 plugin.jsp已经加载了通用初始化模块(OnlineFilter.java),不需再次引用。
如果您的插件包含“后台调用(后台菜单)”模块,该模块将统一用admincp.jsp?action=plugins& identifier=xxx&mod=yyy的方式调用,请在相应链接、表单中使用此方式。其中xxx和yyy的定义与“前台调用(前台菜单)”模块中的相同。系统还允许用admincp.jsp?action=plugins&edit=${edit}& mod=${mod} 的方式来生成链接和表单地址,${edit} 和 ${mod} 变量已经被插件后台管理接口赋值,因此将这两个变量值带入 URL 中也是被支持的。由于后台模块是被 admincp.jsp调用,因此已加载了通用初始化模块(OnlineFilter.java)并进行了后台管理人员权限验证,因此模块程序中可直接写功能代码,不需再进行验证。
这些是模块的设计,基本的变量设置,例如本插件需要用到的设置变量,那么该怎么增加的呢?
在前面点进某个插件的详情,在最下面,就是显示的是本插件当前所有的变量设置:如图 5 所示:

Jsprun PluginManagement5.gif


变量的增加和前面插件的增加类似。例如增加好了一个 管理员是否可用的 这个变量设置,点详情,如图 6 所示:

Jsprun PluginManagement6.gif


根据每一项的左边的提示就可以完成一个变量的设置。
我们设计的插件变量已经设置好了之后,如果我们需要修改到 JspRun! 本身的文件,那么我们可以使用插件钩子。如图 7 所示:

Jsprun PluginManagement7.gif


点详情:如图 8 所示:

Jsprun PluginManagement8.gif


最后调用是在需要修改代码的页面增嵌入例如 ${hooks.accounts_hook}; 这样的代码即可。
现在整个插件的管理我介绍的差不多了。
那么设计出来的插件效果是什么样的呢,那么我们可以到插件设置来看,进入插件设置,如图 9 所示:

Jsprun PluginManagement9.gif


这里就把论坛安装的所有的插件都罗列出来。
就以我们增加的插件帐户中心来看看我们的设计:
首先是插件参数设置:如图 10 所示:

Jsprun PluginManagement10.gif


对应插件管理的设置:如图 11 所示:

Jsprun PluginManagement11.gif


参数设置的效果就是这个样子表现了的。< /p>

那么模块:绑定搜索的效果,如图12所示:(访问的地址:admincp.jsp?action=plugins&identifier=accounts&mod=stats)

Jsprun PluginManagement12.gif


这个对应的插件管理,如图 13 所示:

Jsprun PluginManagement13.gif


那么实际上是后台调用执行了我自己写的模块代码:./plugins/accounts/stats.inc.jsp,如图 14 所示:

Jsprun PluginManagement14.gif


模块:参数设置的效果,如图15所示:(访问地址:admincp.jsp?action=plugins&identifier=accounts&mod=setting)

Jsprun PluginManagement15.gif


对应插件管理:如图 16 所示:

Jsprun PluginManagement16.gif


那么实际上是后台调用执行了我自己写的模块代码:./plugins/accounts/setting.inc.jsp。
后台的插件设置已经已经介绍完毕,那么刚才还有一个 帐户中心的这个模块,这个到哪去了呢?
这个设置为前台的链接:如图 17 所示:

Jsprun PluginManagement17.gif


可以看出是前台的菜单模块,而且是直接链接的。
那么到前台看是什么效果的呢?如图 18 所示:

Jsprun PluginManagement18.gif


就是显示一个链接,跳到你设置的直接链接的 url 。
一个插件配置设计基本就是上面说明了的,我们可以根据需要关闭或者导出这个插件配置如图 19 所示:

Jsprun PluginManagement19.gif


看完上面所有的说明,是不是发现设计一个插件也是如此简单!

插件代码的安全规范

总的来说 JSP 还是相对安全的 Web 程序,但是由于一些代码在处理方式上的不成熟导致了安全隐患。
那么,对于插件安全究竟我们要做些什么怎么做?
1、变量的初始化
这里不讨论 magic_quotes_gpc 和 register_globals 的设置情况,大家只要注意不要“无中生有”变量,每个变量的得到都是自己初始化过的。
2、逻辑关系清楚
对于逻辑的判定不是一句话能够说明白的,举个简单的例子,在判断上传文件的时候,我们判断的依据是他的后缀是否在我们允许的后缀里面,如果是允许的就执行上传,反之就提示上传文件后缀不对,但是如果用户上传的文件名是 webshell.xxx.mht(允许mht 文件上传,mht 是一种网页存储格式),于是文件上传了,在 apache 系统的默认配置下,这个文件是会用 JSP 来解析的,利用这个算是 BUG 的问题吧,小版本人就曾伙同JSP安全界知名人士(帮他匿了)对我们学校的服务器完成了入侵,并最终取得了 root 权限(目前俺们学校的服务器已经修正此问题),举这个例子是为了说明程序处理的重要性,如果当时多一步判断上传的文件,也许这个安全问题就不再存在,其实这个例子来说明逻辑关系并不是很合适,但是程序处理真的是一个非常重要的部分。
3、' '与" "的区别运用
单引号中,任何变量(var)、特殊转义字符(如“\t \r \n”等)不会被解析,因此JSP的解析速度更快,转义字符仅仅支持“\’”和“\\”这样对单引号和反斜杠本身的转义;
双引号中,变量(var)值会代入字符串中,特殊转义字符也会被解析成特定的单个字符,还有一些专门针对上述两项特性的特殊功能性转义,例如“\$”和“${key}.这样虽然程序编写更加方便,但同时JSP的解析也很慢;
因此,在绝大多数可以使用单引号的场合,禁止使用双引号.依据上述分析,可以或必须使用单引号的情况包括但不限于下述:
字符串为固定值,不包含“\t”等特殊转义字符;
4、数据的过滤与处理
对于任何得到的数据在不能确定或者不能充分确定其来路的时候一定要进行过滤与处理,在数据进入程序运行处理阶段之前,一定要保证它的准确性和正确性。
5、不要相信任何数据的准确性和正确性
这条视乎是和上面一条雷同,但是即使是从数据库中查出来的数据也一样不能确定,比如生成 cache 文件,如果用户 POST 的数据错误不是我们期望的数据,而“恰巧”生成到文件中,于是一个webshell产生了,同样这个例子也不是很合适,我只是希望大家明白这么一点,如果我们没有一个很好的处理数据的方式,那么代码的安全崩溃也就指日可待。
6、不要妄图直接把低版本的 JspRun! 插件直接运行
由于每个大版本的升级都会带来系统构架的一些变化,可能旧版本的插件仍然可以使用,但是或许一些不可预料的问题正在隐藏中,所以建议任何低版本的 JspRun! 插件最好是经过仔细研究之后再公告说可以适用新版本 JspRun! 插件。

转换工具DataChanger 使用方法详解

JspRun! 重磅推出 DataChanger 转换程序,该转换程序可以转换目前常见的所有论坛程序,想转换到 JspRun! 的用户再也不用到处找适合自己版本的转换程序了,现在所有的论坛程序只需要这一个 DataChanger 转换程序就都可以转换到 JspRun! 来,方便实用简单功能强大,欢迎想投入 JspRun! 怀抱的广大朋友都来体验一把!

第一版本包含的转换程序子体有以下 7个,以后还会不断扩充:
phpwind 5.3
phpwind 6.0
dvbbs 8.0 sql
dvbbs 8.0 access
JspRun! 5.5
JspRun! 6.0
JspRun! 6.1

下面以 JspRun! 6.0.0 转换到 JspRun! 6.0 为例为大家做演示以说明 DataChanger 的使用方法。
(一)、转换前的准备
1、请确认您已经成功安装了 JspRun! 6.0
注:推荐使用 EasyJspRun!6.0.0 在本地搭建环境并安装 JspRun!6.0.0(JspRun! 论坛环境和 JspRun! 论坛一键安装)
2、下载 DataChanger 转换程序到本地或服务器,主要包含以下几个文件,如图 1 所示:

Jsprun DataChanger1.gif


3、如果是在本地转换,导入 dz 数据库到本地的 MySQL 数据库中,主要区分下列两种情况处理:
(1)、从 phpmyadmin 里导出的备份数据:
注:导入时确保原论坛备份数据的字符集和新建数据库的字符集保持一致以免出现乱码问题。
如果不确定原dz论坛的数据库字符集,可以打开dz的备份数据,搜索“default charset”这项是什么则原dz论坛的数据库字符集就是什么,如图2所示本次演示的dz论坛的数据库字符集为utf8。

Jsprun DataChanger2.jpg


使用phpmyadmin新建字符集为utf-8的数据库,命名为“dzdata”,如图3所示:

Jsprun DataChanger3.jpg


点击“创建”按钮,然后将dz的备份数据导入即可,具体如图4所示,这里只需在“文本文件的位置”出浏览dz的备份数据即可,然后点下方的“执行”按钮。

Jsprun DataChanger4.jpg


自此,dz备份数据导入成功!
(2)、直接打包备份的 dz 数据库,则只需要停止本地的 MySQL 服务,然后把 dz 备份数据库拷贝到本地数据库目录下,然后再启动 MySQL 服务。本次演示就是这种情况。

(二)、转换详细步骤
1、将 DataChanger 文件夹上传到 web 可以访问的目录下,在浏览器里输入 http://yourwebsite.com/DataChanger/ 就看到了授权协议,点击“确定”就可以看到如图 5 所示的界面:

Jsprun DataChanger5.gif


2、在上图上点击“dz60”后就看到如图 6 所示的界面:上部分是转换说明,下部分是转换配置信息。

Jsprun DataChanger6.gif


必须正确配置转换信息才可以正常转换,具体看如图 7 的方法配置:

Jsprun DataChanger7.gif


下面着重提一下需要说明的几点:
Discuz6.0 数据库字符集:有 GBK、utf8、两种,如果你不知道自己网站的数据库字符集,选择其中的一种,点击右方的“检查此设置”,程序就会提取你填写的 dz 库里的一些数据转换做个测试,如果显示正常就说明你的数据库字符集就是这个,否则重新选择检查此设置直到显示正常为止。
下面举个例子:本次需要转换的 dz 库为 jsprun 这个库,我们选择其数据库字符集为 GBK ,点击“检查此设置”则弹出如图 8 所示的窗口,显然这个显示是正确的,说明 jsprun 这个库的字符集就是 GBK。

Jsprun DataChanger8.gif


接下来我们选择数据库字符集为 utf8 试试,点击“检查此设置”则弹出如图 9 所示的窗口,显然这个显示是乱码。

Jsprun DataChanger9.gif


3、图 4 中点击“开始转换”最后得到如图 10 所示界面:

Jsprun DataChanger10.jpg


1)、正常情况下,转换过程是全自动的,您无需干预,请坐下来喝杯茶,静静等待出现转换完成的提示;
2)、如果转换过程中程序终止运行,请根据出错提示信息进行调整,然后刷新页面继续进行转换;
3)、转换所需时间取决于您的数据量大小、数据结构的标准与否、转换程序所在平台的性能、网络状况等因素。

(三)、转换后的工作
1、请将 Discuz 6.0 的头像目录 images/avatars 及其下所有文件移至 JspRun! 的头像目录 images/avatars 下;
2、请将 Discuz 6.0 的用户自定义头像目录 customavatars 及其下所有文件移至 Jsprun! 的自定义头像目录 customavatars 下;
3、请将 Discuz 6.0 的附件目录 attachments下所有文件移至 Jsprun! 的附件目录 attachments 下;
4、请用您的管理员帐号登录 JspRun! 后台执行更新缓存操作;
5、确认成功转换后请终止此程序;
6、由于权限控制的不同,需要您在后台重新编辑各用户组的权限。

相关资源

官方地址:http://www.jsprun.com/
软件类型:商业软件
下载地址:下载地址1 下载地址2

操作详解

JspRun! 后台基本设置详解

说明:这个功能主要涉及到后台基本设置与论坛的前台显示效果有关的一系列设置。下面主要介绍一下这个功能的使用方法和注意事项。 基本设置 如下图所示:

Jsprun BackgroundSet0.gif


1、论坛创始人
论坛创始人 UID, 可以支持多个创始人,之间使用 “,” 分隔。[出于安全考虑,请务必设置一名管理员为创始人]
设置成功后,该UID对应的用户组变为“论坛创始人”。显示如图 1 所示:

Jsprun BackgroundSet1.gif


2、论坛名称
将显示在浏览器的导航条和标题中。

Jsprun BackgroundSet2.gif


3、网站名称
将显示在浏览器页面底部的联系方式处。

Jsprun BackgroundSet3.gif


4、网URL
将作为链接显示在页面底部(网站名称的超链接)。
5、首页文件名
设置论坛首页的文件名,默认为“index.jsp”,如果您更改了此设置,那么您需要使用“FTP工具”手动重命名文件名称。

Jsprun BackgroundSet4.gif


备注:可以设置为板块的链接或者其他的文件名,例如:http://www.jsprun.com 首页文件名设置为http://www.jsprun.com/faq.jsp?action =message&id= 2,那么打开http://http://www.jsprun.com直接跳转到http://www.jsprun.com/faq.jsp?action=message&id=2页面。
6、网站备案信息代码
页面底部可以显示 ICP 备案信息,如果网站已备案,在此输入您的授权码,它将显示在页面底部,如果没有请留空。

Jsprun BackgroundSet5.gif


7、显示授权信息链接
选择“是”将在页脚显示商业授权用户链接,链接将指向 JspRun! 官方网站,用户可通过此链接验证其所使用的 JspRun! 是否经过商业授权

Jsprun BackgroundSet6.gif


8、论坛关闭
论坛访问开关,暂时将论坛关闭,其它人无法访问,但不影响管理员访问
9、论坛关闭的原因
论坛关闭时出现的提示信息

JspRun! 后台论坛功能的详细说明

相关条目

BBS 社区 论坛

参考来源

参考来源1