練功房推薦書單

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

[修正]讓主題列表時只要該主題內有一篇文章有附件便顯示附件圖示 RSS feed
討論區首頁 » JForum中文社群 JForum Chinese Users Community
發表人 內容
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
原本JForum的設計是依某個主題最後一篇文章是否有附件來決定要不要顯示附件圖示, 但是通常容易讓網友錯過有檔案可以下載的文章,我們可以透過修改SQL語法來修正, 由於我的網站是用PostgreSQL作為後端資料庫, 故我需要修改WEB-INF/config/database/postgresql/postgresql.sql:

TopicModel.selectAllByForumByLimit = SELECT t.*, p.user_id AS last_user_id, p.post_time, (SELECT SUM(p.attach) \
FROM jforum_posts p \
WHERE p.topic_id = t.topic_id \
AND p.need_moderate = 0) AS attach \
FROM jforum_topics t, jforum_posts p \
WHERE (t.forum_id = ? OR t.topic_moved_id = ?) \
AND p.post_id = t.topic_last_post_id \
AND p.need_moderate = 0 \
ORDER BY t.topic_type DESC, t.topic_last_post_id DESC \
OFFSET ? LIMIT ?

TopicModel.selectByUserByLimit = SELECT t.*, p.user_id AS last_user_id, p.post_time, (SELECT SUM(p.attach) \
FROM jforum_posts p \
WHERE p.topic_id = t.topic_id \
AND p.need_moderate = 0) AS attach \
FROM jforum_topics t, jforum_posts p \
WHERE p.post_id = t.topic_last_post_id \
AND t.user_id = ? \
AND p.need_moderate = 0 \
AND t.forum_id IN(:fids:) \
ORDER BY t.topic_last_post_id DESC \
OFFSET ? LIMIT ?

登入管理介面後清除主題的Cache即可

分享經驗 累積智慧
[WWW]
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
除了此外,要讓文章一發表時如果有附件就立即能顯示附件圖示,還要修改net.jforum.view.forum.PostAction這個類別的insertSave()和editSave()兩個methods,主要是在新增完附件後,設定Topic物件的hasAttach屬性為true。我們可透過判斷Post物件的hasAttachments()來決定剛發表或修改的文章有沒有附件,另外,為避免被最後一篇發表的文章誤導,我們還要用原本Topc已有的hasAttach()來一起判斷,只要兩個其中一個為true,即表示該主題有附件:
insertSave():

attachments.insertAttachments(p);
t.setHasAttach(t.hasAttach() || p.hasAttachments());

editSave():

attachments.insertAttachments(post);
t.setHasAttach(t.hasAttach() || post.hasAttachments());

不過,這個方法有個bug,就是如果該主題只有一篇文章有附件,然後又把附件都刪光了,還是會顯示有附件。但是,一般來說通常發表有附件的文章後不太會去刪附件,而且重先載入JForum後也會正常顯示,所以這個應該算可以接受的bug吧!

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