⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 defaultrender.java~110~

📁 云网论坛CWBBS 源码,内容丰富,学习,参考,教学的好资料,具体见内说明,
💻 JAVA~110~
📖 第 1 页 / 共 2 页
字号:
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.UserPrivDb;
import com.redmoon.forum.person.UserGroupPrivDb;

public class DefaultRender implements IPluginRender {
    static Logger logger = Logger.getLogger(DefaultRender.class.getName());

    public DefaultRender() {
    }

    public String RenderTitle(HttpServletRequest request, MsgDb md) {
        UserDb user = new UserDb();
        user = user.getUser(md.getName());
        if (!user.isValid()) {
            return "";
        }
        String str = "<img src='images/brow/" + md.getExpression() + ".gif' border=0>&nbsp;<b>" + StrUtil.toHtml(md.getTitle()) + "</b>";
        return str;
    }

    public String RenderVote(HttpServletRequest request, MsgDb md) {
        UserDb user = new UserDb();
        user = user.getUser(md.getName());
        if (user.isValid())
            return md.getVoteOption();
        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 doRendContent(HttpServletRequest request, MsgDb md) {
        UserDb user = new UserDb();
        user = user.getUser(md.getName());
        if (!user.isValid()) {
            showAttachment = false;
            return LoadString(request, "info_user_invalid");
        }
        String content = md.getContent();
        Privilege privilege = new Privilege();
        String seeUserName = privilege.getUser(request);
        UserDb seeUser = user.getUser(seeUserName);
        // 如果是UBB的格式
        if (md.getIsWebedit() == md.WEBEDIT_UBB) {
            content = StrUtil.toHtml(content);
            // UBB代码处理
            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);
        }

        String subStr = LoadString(request, "info_need_reply"); // "===== 以下为隐藏信息 回帖后才能显示 =====";
        String subStrExp = LoadString(request, "info_need_exprience"); // "===== 以下为隐藏信息 经验值高于$e时才能显示 =====";

        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 = StrUtil.replyCanSee(content, true, subStr);
        } else {
            patternStr = "(\\[REPLY\\])(.[^\\[]*)(\\[\\/REPLY\\])";
            pattern = Pattern.compile(patternStr,
                                      Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
            matcher = pattern.matcher(content);
            // 如果存在有限制回复可见的UBB代码
            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;
                }
            }
        }

        // 处理经验值高于某值时可见
        patternStr = "(\\[HIDE_EXP=([0-9]*)\\])(.[^\\[]*)(\\[\\/HIDE_EXP\\])";
        pattern = Pattern.compile(patternStr,
                                  Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
        matcher = pattern.matcher(content);
        // 如果存在有限制经验值可见的UBB代码
        if (matcher.find()) {
            String exp = "";
                exp = matcher.group(2);
                if (!StrUtil.isNumeric(exp))
                    exp = "0";
            subStrExp = subStrExp.replaceFirst("\\$e", exp);
            if (canEdit)
                content = StrUtil.experienceCanSee(content, true, subStrExp);
            else {
                int e = seeUser.getExperience();
                int iexp = Integer.parseInt(exp);
                boolean canSee = e>=iexp?true:false;
                if (canSee) {
                    content = matcher.replaceAll(subStrExp + "<BR>" + "$3");
                }
                else {
                    content = matcher.replaceAll(subStrExp);
                    showAttachment = false;
                }
            }
        }

        String subStrPoint = LoadString(request, "info_need_fee"); // "===== 以下为隐藏信息 需付费 $f $e $w 才能查看 =====";
        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 {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -