練功房推薦書單

  • 猛虎出柙雙劍合璧版--最新 OCA / OCP Java SE 7 Programmer 專業認證 (電子書)
  • 流浪教師存零股存到3000萬(全新增修版)(書+DVD)
  • 開始在關西自助旅行(京都‧大阪‧神戶‧奈良)(全新增訂版)
  • 不敗教主的300張股票存股術

[v2.1.8][新增功能]語系切換 RSS feed
討論區首頁 » JForum中文社群 JForum Chinese Users Community
發表人 內容
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
功能需求:讓匿名訪客不用登入前也可以選擇自己偏好的語言。

設計:
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,測試是否正常。

大功告成!
 檔案名稱 user_lang.htm [Disk] 下載
 描述 語言選擇頁面
 檔案大小 5 Kbytes
 下載次數:  21 次

 檔案名稱 header.htm [Disk] 下載
 描述 加上超連結的header.htm
 檔案大小 6 Kbytes
 下載次數:  15 次


分享經驗 累積智慧
[WWW]
 
討論區首頁 » JForum中文社群 JForum Chinese Users Community
前往:   
行動版