練功房推薦書單

  • Google!Android 3手機應用程式設計入門(第四版)
  • 賈伯斯傳(軟皮精裝版)
  • 猛虎出閘制霸版:最新OCP Java SE 6 Programmer專業認證(附原始程式碼及範例檔)
  • SCWCD 5 猛虎出閘:Java Web 應用程式專業認證
[v2.1.8][新增功能]語系切換  XML
Forum Index » JForum中文社群 JForum Chinese Users Community
Author Message
andowson

六段學員
[Avatar]

Joined: 2007-01-02 22:20:40
Messages: 652
Location: 台北
Offline

功能需求:讓匿名訪客不用登入前也可以選擇自己偏好的語言。

設計:
1.在header.htm上新增一個超連結到/user/changeLang.page。
2.按下/user/changeLang.page時JForum內部呼叫UserAction.java的changeLang()來顯示選擇語言畫面(user_lang.htm)。
3.按下送出後JForum呼叫UserAction.java的changeLangDone()來修改UserSession中的語言設定。

參考作法:
1.修改WEB-INF/config/urlPattern.properties,增加兩個keys:
user.changeLang.0 =
user.changeLangDone.0 =


2.修改WEB-INF/config/templatesMapping.properties,增加一個key:
user.changeLang = user_lang.htm


3.修改templates/default/user_forum.htm,將跟語言無關的欄位刪除,另存新檔為user_lang.htm。

4.修改templates/default/header.htm,加上超連結,例如我選擇在原本登入的後面加上。

5.修改net/jforum/view/forum/UserAction.java,加上以下兩個methods:
	public void changeLang()
	{
		int userId = SessionFacade.getUserSession().getUserId();
		UserDAO um = DataAccessDriver.getInstance().newUserDAO();
		User u = um.selectById(userId);
		this.context.put("u", u);
		this.context.put("action", "changeLangDone");
		this.context.put("pageTitle", I18n.getMessage("UserProfile.profileFor") + " " + u.getUsername());			
		this.setTemplateName(TemplateKeys.USER_CHANGE_LANG); 
	}

	public void changeLangDone()
	{
		SessionFacade.getUserSession().setLang(request.getParameter("language"));
		this.context.put("editDone", true);
		this.changeLang();
	}


6.修改net/jforum/util/preferences/TemplateKeys.java,增加一個key:
	public static final String USER_CHANGE_LANG = "user.changeLang";


7.編譯程式

8.重新載入JForum,測試是否正常。

大功告成!
 Filename header.htm [Disk] Download
 Description 加上超連結的header.htm
 Filesize 6 Kbytes
 Downloaded:  14 time(s)

 Filename user_lang.htm [Disk] Download
 Description 語言選擇頁面
 Filesize 5 Kbytes
 Downloaded:  19 time(s)

This message was edited 3 times. Last update was at 2008-03-01 12:23:32


分享經驗 累積智慧
[WWW] [MSN]
 
Forum Index » JForum中文社群 JForum Chinese Users Community
Go to: