📄 defaultrender.java
字号:
package com.redmoon.forum.plugin;import java.util.regex.Matcher;import java.util.regex.Pattern;import javax.servlet.http.HttpServletRequest;import cn.js.fan.util.*;import cn.js.fan.web.Global;import cn.js.fan.web.SkinUtil;import com.redmoon.forum.*;import com.redmoon.forum.person.UserDb;import com.redmoon.forum.plugin.base.IPluginRender;import org.apache.log4j.Logger;import com.redmoon.forum.plugin.base.IPluginScore;import com.redmoon.forum.person.UserGroupDb;import com.redmoon.forum.person.UserGroupPrivDb;import java.util.Vector;import com.redmoon.forum.person.UserMgr;import com.redmoon.forum.setup.UserLevelDb;public class DefaultRender implements IPluginRender { static Logger logger = Logger.getLogger(DefaultRender.class.getName()); public DefaultRender() { } public String RenderTitle(HttpServletRequest request, MsgDb md) { if (!md.getName().equals("")) { UserDb user = new UserDb(); user = user.getUser(md.getName()); if (!user.isValid()) { return "==========="; } } String str = ""; if (md.getExpression()!=MsgDb.EXPRESSION_NONE) str += "<img src='images/brow/" + md.getExpression() + ".gif' border=0> "; str += "<b>" + StrUtil.ubb(request, StrUtil.toHtml(md.getTitle()), true) + "</b>"; return str; } public static String RenderFullTitle(HttpServletRequest request, MsgDb md) { boolean isUBB = false; if (!md.getName().equals("")) { UserDb user = new UserDb(); user = user.getUser(md.getName()); if (user.isLoaded() && !user.isValid()) { return "==========="; } if (user.isLoaded()) { com.redmoon.forum.Config cfg = com.redmoon.forum.Config. getInstance(); isUBB = cfg.getBooleanProperty("forum.isUBBTopicTitle"); if (isUBB) { int level = StrUtil.toInt(cfg.getProperty( "forum.UBBTopicTitleUserLevel"), 0); if (level > 0 && user.getUserLevelDb().getLevel() < level) { isUBB = false; } } } } String str = StrUtil.toHtml(md.getTitle()); if (isUBB) str = StrUtil.ubb(request, str, true); return str; } public static String RenderTitle(HttpServletRequest request, MsgDb md, int len) { if (!md.isLoaded()) return ""; String str = RenderFullTitle(request, md); str = StrUtil.getLeft(str, len); return str; } public MsgPollDb RenderVote(HttpServletRequest request, MsgDb md) { UserDb user = new UserDb(); user = user.getUser(md.getName()); if (user.isValid()) { MsgPollDb mpd = new MsgPollDb(); return (MsgPollDb)mpd.getQObjectDb(new Long(md.getId())); } else return null; } public String RenderContent(HttpServletRequest request, MsgDb md) { return doRendContent(request, md); } public String LoadString(HttpServletRequest request, String key) { return SkinUtil.LoadString(request, "res.forum.plugin.DefaultRender", key); } public String doRendContentCommon(HttpServletRequest request, MsgDb md) { String content = md.getContent(); if (md.getIsWebedit() == md.WEBEDIT_UBB) { content = StrUtil.toHtml(content); if (md.getShowUbbcode() == 1) { if (md.getShowSmile() == 1) { content = StrUtil.ubb(request, content, true); } else content = StrUtil.ubb(request, content, false); } } else { content = StrUtil.ubbWithoutAutoLink(request, content); } return content; } public String doRendContent(HttpServletRequest request, MsgDb md) { UserMgr um = new UserMgr(); if (!md.getName().equals("")) { UserDb user = um.getUser(md.getName()); if (!user.isValid()) { showAttachment = false; return LoadString(request, "info_user_invalid"); } } String content = doRendContentCommon(request, md); Privilege privilege = new Privilege(); String seeUserName = privilege.getUser(request); String subStr = LoadString(request, "info_need_reply"); String subStrExp; String patternStr = ""; Pattern pattern; Matcher matcher; boolean canEdit = false; try { canEdit = privilege.canEdit(request, md); } catch (ErrMsgException e) { logger.info("RenderContent:" + e.getMessage()); } if (canEdit) { content = replyCanSee(content, true, subStr); } else { patternStr = "(\\[REPLY\\])(.*?)(\\[\\/REPLY\\])"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); if (matcher.find()) { boolean canSee = false; if (md.getReplyid()==-1) canSee = md.isUserReplyerOfMsg(seeUserName); else { long rootid = md.getRootid(); MsgDb rootMsg = md.getMsgDb(rootid); canSee = rootMsg.isUserReplyerOfMsg(seeUserName); } if (canSee) { content = matcher.replaceAll(subStr + "<BR>" + "$2"); } else { content = matcher.replaceAll(subStr); showAttachment = false; } } } if (!md.getName().equals("")) { UserDb seeUser = um.getUser(seeUserName); patternStr = "(\\[HIDE=([a-z|A-Z]*),\\s*([0-9]*)\\])(.*?)(\\[\\/HIDE\\])"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); if (matcher.find()) { String moneyCode = matcher.group(2); if (moneyCode.equals("experience")) subStrExp = LoadString(request, "info_need_exprience"); else subStrExp = LoadString(request, "info_need_credit"); String exp = matcher.group(3); if (!StrUtil.isNumeric(exp)) exp = "0"; subStrExp = subStrExp.replaceFirst("\\$e", exp); if (canEdit) content = canSee(content, true, subStrExp); else { int e = 0; if (moneyCode.equals("experience")) e = seeUser.getExperience(); else e = seeUser.getCredit(); int iexp = Integer.parseInt(exp); boolean canSee = e >= iexp ? true : false; if (canSee) { content = matcher.replaceFirst(subStrExp + "<BR>" + "$4"); } else { content = matcher.replaceFirst(subStrExp); showAttachment = false; } } } String subStrPoint = LoadString(request, "info_need_fee"); patternStr = "(\\[point=([a-z|A-Z]*),\\s*([0-9]*)\\])(.*?)(\\[\\/point\\])"; pattern = Pattern.compile(patternStr, Pattern.DOTALL | Pattern.CASE_INSENSITIVE); matcher = pattern.matcher(content); if (matcher.find()) { String moneyCode = matcher.group(2); String strsum = matcher.group(3); int sum = 0; String usePoint = ParamUtil.get(request, "usePoint"); try { sum = StrUtil.toInt(strsum); } catch (Exception e) { logger.info("doRenderContent:" + e.getMessage()); } ScoreMgr sm = new ScoreMgr(); ScoreUnit su = sm.getScoreUnit(moneyCode); subStrPoint = subStrPoint.replaceFirst("\\$f", "" + su.getName()); subStrPoint = subStrPoint.replaceFirst("\\$e", "" + sum); subStrPoint = subStrPoint.replaceFirst("\\$w", su.getDanWei()); boolean canSee = canEdit; String reason = ""; String info = ""; if (usePoint.equals("true")) { if (!privilege.isUserLogin(request)) { canSee = false; reason = SkinUtil.LoadString(request, "err_not_login"); } else { IPluginScore isc = su.getScore(); if (isc != null) { try { isc.pay(seeUserName, isc.SELLER_SYSTEM, sum); String tmp = LoadString(request, "info_fee_detail"); tmp = tmp.replaceFirst("\\$f", su.getName() + sum + su.getDanWei());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -