forumdesktopunit.java
来自「cwbbs 云网论坛源码」· Java 代码 · 共 286 行
JAVA
286 行
package com.redmoon.forum.ui;import javax.servlet.http.HttpServletRequest;import cn.js.fan.util.DateUtil;import com.redmoon.forum.MsgDb;import cn.js.fan.module.cms.ui.DesktopItemDb;import cn.js.fan.module.cms.ui.DesktopMgr;import cn.js.fan.module.cms.ui.DesktopUnit;import cn.js.fan.module.cms.ui.IDesktopUnit;import cn.js.fan.util.StrUtil;import com.redmoon.forum.ThreadBlockIterator;import com.redmoon.forum.ForumDb;import java.util.Vector;import java.util.Iterator;import com.redmoon.forum.ForumSkin;import com.redmoon.forum.MsgMgr;import com.redmoon.forum.Leaf;import com.redmoon.forum.person.UserDb;import cn.js.fan.base.ObjectBlockIterator;import java.util.HashMap;import cn.js.fan.web.Global;public class ForumDesktopUnit implements IDesktopUnit{ public ForumDesktopUnit() { } public String getPageList(HttpServletRequest request, DesktopItemDb uds) { DesktopMgr dm = new DesktopMgr(); DesktopUnit du = dm.getDesktopUnit(uds.getModuleCode()); String url = du.getPageList(); String boardcode = uds.getModuleItem(); url += "boardcode=" + StrUtil.UrlEncode(boardcode); return url; } public String displayOnlineRank(HttpServletRequest request, DesktopItemDb di) { String str = "<ul>"; UserDb ud = new UserDb(); ObjectBlockIterator oi = ud.listUserRank("online_time", di.getCount()); String rootPath = request.getContextPath(); while (oi.hasNext()) { ud = (UserDb) oi.next(); str += "<li>"; str += "<a href='" + rootPath + "/userinfo.jsp?username=" + StrUtil.UrlEncode(ud.getName()) + "'>" + ud.getNick() + "</a>"; str += "</li>"; } str += "</ul>"; return str; } public String displayExperienceRank(HttpServletRequest request, DesktopItemDb di) { String str = "<ul>"; UserDb ud = new UserDb(); ObjectBlockIterator oi = ud.listUserRank("experience", di.getCount()); String rootPath = request.getContextPath(); while (oi.hasNext()) { ud = (UserDb) oi.next(); str += "<li>"; str += "<a href='" + rootPath + "/userinfo.jsp?username=" + StrUtil.UrlEncode(ud.getName()) + "'>" + ud.getNick() + "</a>"; str += "</li>"; } str += "</ul>"; return str; } public String displayBoardRank(HttpServletRequest request, DesktopItemDb di) { String str = "<ul>"; Leaf lf = new Leaf(); Iterator bir = lf.getBoardsByTodayPost(di.getCount()).iterator(); int i = 1; String rootPath = Global.getRootPath(); if (request!=null) rootPath = request.getContextPath(); while (bir.hasNext()) { lf = (Leaf) bir.next(); str += "<li>"; str += i + ".『 <a href='" + rootPath + "/forum/listtopic.jsp?boardcode=" + StrUtil.UrlEncode(lf.getCode()) + "'>" + lf.getName() + "</a> 』" + lf.getTodayCount(); str += "</li>"; i++; } str += "</ul>"; return str; } public String displayHot(HttpServletRequest request, DesktopItemDb di) { String str = "<ul>"; MsgMgr mm = new MsgMgr(); MsgDb md = null; Home home = Home.getInstance(); int[] v = home.getHotIds(); int hotlen = v.length; if (hotlen != 0) { HashMap props = di.getProps(); boolean isDateShow = false; String dateFormat = ""; String dt = (String)props.get("date"); if (dt!=null) { isDateShow = dt.equals("true") || dt.equals("yes"); dateFormat = (String)props.get("dateFormat"); if (dateFormat==null) { dateFormat = "yy-MM-dd"; } } String rootPath = Global.getRootPath(); if (request!=null) rootPath = request.getContextPath(); for (int k = 0; k < hotlen; k++) { md = mm.getMsgDb(v[k]); if (md.isLoaded()) { str += "<li><a href='" + rootPath + "/forum/showtopic.jsp?rootid=" + md.getId() + "' title='" + md.getTitle() + "'>"; if (!md.getColor().equals("")) str += "<font color='" + md.getColor() + "'>"; if (md.isBold()) str += "<b>"; str += StrUtil.getLeft(md.getTitle(), di.getTitleLen()); if (md.isBold()) str += "</b>"; if (!md.getColor().equals("")) str += "</font>"; str += "</a> "; if (isDateShow) { str += " [" + DateUtil.format(md.getAddDate(), dateFormat) + "]"; } str += "</li>"; } } } str += "</ul>"; return str; } public String displayNotice(HttpServletRequest request, DesktopItemDb uds) { String str = ""; ForumDb fd = ForumDb.getInstance(); Vector v = fd.getAllNotice(); Iterator ir = v.iterator(); String rootPath = Global.getRootPath(); if (request!=null) rootPath = request.getContextPath(); while (ir.hasNext()) { MsgDb md = (MsgDb) ir.next(); str += "<a href='" + rootPath + "/forum/showtopic.jsp?rootid=" + md.getId() + "' target='_blank'>"; if (!md.getColor().equals("")) str += "<font color='" + md.getColor() + "'>"; if (md.isBold()) str += "<b>"; str += md.getTitle(); if (md.isBold()) str += "</b>"; if (!md.getColor().equals("")) str += "</font>"; str += " [" + DateUtil.format(md.getAddDate(), "yyyy-MM-dd") + "]</a> "; } return str; } public String display(HttpServletRequest request, DesktopItemDb di) { DesktopMgr dm = new DesktopMgr(); DesktopUnit du = dm.getDesktopUnit(di.getModuleCode()); String str = ""; str += "<ul>"; if (di.getModuleItem().equals("newTopic")) { HashMap props = di.getProps(); boolean isDateShow = false; String dateFormat = ""; String dt = (String)props.get("date"); if (dt!=null) { isDateShow = dt.equals("true") || dt.equals("yes"); dateFormat = (String)props.get("dateFormat"); if (dateFormat==null) { dateFormat = "yy-MM-dd"; } } String rootPath = request.getContextPath(); MsgDb md = new MsgDb(); String topmsgsql = "select id from sq_thread order by lydate desc"; long[] newMsgs = md.getNewMsgs(topmsgsql, di.getCount()); int newMsgsLen = newMsgs.length; for (int i = 0; i < newMsgsLen; i++) { md = md.getMsgDb((int) newMsgs[i]); str += "<li><a href='" + rootPath + "/" + du.getPageShow() + "?rootid=" + md.getId() + "' target='_blank' title='" + StrUtil.toHtml(md.getTitle()) + "'>" + StrUtil.toHtml(StrUtil.getLeft(md.getTitle(),di.getTitleLen())); if (isDateShow) { str += " [" + DateUtil.format(md.getAddDate(), dateFormat) + "]"; } str += "</a></li>"; } } else if (di.getModuleItem().equals("notice")) { return displayNotice(request, di); } else if (di.getModuleItem().equals("hot")) { return displayHot(request, di); } else if (di.getModuleItem().equals("boardRank")) { return displayBoardRank(request, di); } else if (di.getModuleItem().equals("onlineTimeRank")) { return displayOnlineRank(request, di); } else if (di.getModuleItem().equals("experienceRank")) { return displayExperienceRank(request, di); } else if (di.getModuleItem().equals("flashImages")) { return dispalyFlashImages(); } else { String boardcode = di.getModuleItem(); HashMap props = di.getProps(); boolean isDateShow = false; String dateFormat = ""; String dt = (String)props.get("date"); if (dt!=null) { isDateShow = dt.equals("true") || dt.equals("yes"); dateFormat = (String)props.get("dateFormat"); if (dateFormat==null) { dateFormat = "yy-MM-dd"; } } String rootPath = request.getContextPath(); String sql = "select id from sq_thread where boardcode=" + StrUtil.sqlstr(boardcode) + " and check_status=" + MsgDb.CHECK_STATUS_PASS + " and msg_level<=" + MsgDb.LEVEL_TOP_BOARD + " ORDER BY msg_level desc,redate desc"; MsgDb md = new MsgDb(); ThreadBlockIterator irmsg = md.getThreads(sql, boardcode, 0, di.getCount()); while (irmsg.hasNext()) { md = (MsgDb) irmsg.next(); str += "<li><a href='" + rootPath + "/" + du.getPageShow() + "?rootid=" + md.getId() + "' target='_blank' title='" + StrUtil.toHtml(md.getTitle()) + "'>"; if (!md.getColor().equals("")) str += "<font color='" + md.getColor() + "'>"; if (md.isBold()) str += "<b>"; str += StrUtil.toHtml(StrUtil.getLeft(md.getTitle(), di.getTitleLen())); if (md.isBold()) str += "</b>"; if (!md.getColor().equals("")) str += "</font>"; if (isDateShow) { str += " [" + DateUtil.format(md.getAddDate(), dateFormat) + "]"; } str += "</a></li>"; } } str += "</ul>"; return str; } public String dispalyFlashImages() { Home home = Home.getInstance(); String str = "<script>"; for (int i = 1; i <= 5; i++) { str += "imgUrl" + i + "=\"" + StrUtil.getNullStr(home.getProperty("flash", "id", "" + i, "url")) + "\";\n"; str += "imgtext" + i + "=\"" + StrUtil.getNullStr(home.getProperty("flash", "id", "" + i, "text")) + "\";\n"; str += "imgLink" + i + "=\"" + StrUtil.getNullStr(home.getProperty("flash", "id", "" + i, "link")) + "\";\n"; } str += "</script>"; return str; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?