开源jforum 的二次开发 2008-06-29 09:33
今天想看看jforum.想做一下它的二次开发.
1、准备环境:TOMCAT6.0、JDK1.5、jforum2.1.7、mysql.5.0
2、下载jforum,可以到http://www.jforum.net/download.jsp上下载。下载后讲war文件部署在tomcat/webapps下
3、在mysql中建数据库jforum:create database jforum character set utf8,执行jforum\WEB-INF\config\database\mysql下的mysql_db_struct.sql建表,在 mysql命令行下执行:source mysql_db_struct.sql。
4、启动tomcat,运行http://localhost:8080/jforum/install.jsp进行安装,注意两项设置,默认显示语言选择Chinese Simplifed (zh_CN)数据库编码选择utf-8,对其他项设置,点击下一步:核对设置,点击开始安装:安装成功,点击进入论坛。
1. 在modulesMapping.properties文件中添加:mydwbi=com.mydwbi.MydwbiAction
此文件用来映射模块名.即添加一个叫mydwbi的模块.
2. 在templatesMapping.properties文件中添加:
mydwbi.contact = contact.htm
mydwbi.advertisement = advertisement.htm
此文件映射action和result 模板的关系,学过freemarker的可能会好理解些.
3. 在urlPattern.properties中添加:
mydwbi.contact.0 =
mydwbi.advertisement.0 =
此文件设置每个action参数.我们这个action无参数.
4. 修改net.jforum.util.preferences.TemplateKeys类,添加:
public static final String MYDWBI_CONTACT = "mydwbi.contact";
public static final String MYDWBI_AD = "mydwbi.advertisement";
5. 新建一个类:com.mydwbi.MydwbiAction
package com.mydwbi; import net.jforum.Command; import net.jforum.util.preferences.TemplateKeys; public class MydwbiAction extends Command { public void list() { } public void contact() { this.setTemplateName(TemplateKeys.MYDWBI_CONTACT); } public void advertisement() { this.setTemplateName(TemplateKeys.MYDWBI_AD); } } package com.mydwbi; import net.jforum.Command; import net.jforum.util.preferences.TemplateKeys; public class MydwbiAction extends Command { public void list() { } public void contact() { this.setTemplateName(TemplateKeys.MYDWBI_CONTACT); } public void advertisement() { this.setTemplateName(TemplateKeys.MYDWBI_AD); } }
6. 修改jforum\templates\default\header.htm, 添加:
view plaincopy to clipboardprint?
<a /mydwbi/contact")}"> <img />${I18n.getMessage("mydwbi.contact")} </a> </span>
<a /mydwbi/advertisement")}"> <img />${I18n.getMessage("mydwbi.Advertisement")} </a> </span>
<a /mydwbi/contact")}"> <img />${I18n.getMessage("mydwbi.contact")} </a> </span>
<a /mydwbi/advertisement")}"> <img />${I18n.getMessage("mydwbi.Advertisement")} </a> </span>
7. 添加两个文件contact.htm,advertisement.htm 在目录:jforum\templates\default\下:
contact.htm:
view plaincopy to clipboardprint?
<#include "header.htm"/>
<center>
${I18n.getMessage("mydwbi.contactDesc")}:admin@mydwbi.com
</center>
<#include "bottom.htm"/>
<#include "header.htm"/>
<center>
${I18n.getMessage("mydwbi.contactDesc")}:admin@mydwbi.com
</center>
<#include "bottom.htm"/>
advertisement.htm
view plaincopy to clipboardprint?
<#include "header.htm"/>
<center>
${I18n.getMessage("mydwbi.adDesc")}:admin@mydwbi.com
</center>
<#include "bottom.htm"/>
<#include "header.htm"/>
<center>
${I18n.getMessage("mydwbi.adDesc")}:admin@mydwbi.com
</center>
<#include "bottom.htm"/>
8. 添加国际化文件:
native2ascii -encoding GBK messages.properties messages_ZH.properties
注意要加-encoding 参数,且参数值不是utf8.