📄 viewcoder.java
字号:
/*
* Created on 2007-3-22
* Last modified on 2007-7-3
* Powered by YeQiangWei.com
*/
package com.yeqiangwei.club.view.util;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.yeqiangwei.club.module.music.service.ConfigService;
import com.yeqiangwei.club.param.FavoriteParameter;
import com.yeqiangwei.club.service.ServiceLocator;
import com.yeqiangwei.club.service.ServiceWrapper;
import com.yeqiangwei.club.service.forum.FavoriteForumService;
import com.yeqiangwei.club.service.forum.ForumService;
import com.yeqiangwei.club.service.model.FavoriteForumModel;
import com.yeqiangwei.club.service.model.ForumModel;
import com.yeqiangwei.club.service.security.UserPower;
import com.yeqiangwei.club.service.user.UserLogin;
import com.yeqiangwei.club.service.user.UserService;
import com.yeqiangwei.club.service.util.BasicInfoService;
import com.yeqiangwei.club.service.util.NoAllowedCharService;
import com.yeqiangwei.club.util.BeanUtils;
import com.yeqiangwei.club.view.model.ForumLabelView;
import com.yeqiangwei.club.view.model.ForumView;
import com.yeqiangwei.club.view.model.ReplyView;
import com.yeqiangwei.club.view.model.TopicView;
import com.yeqiangwei.club.view.model.UserView;
import com.yeqiangwei.html.OutPrint;
import com.yeqiangwei.util.FormatDateTime;
import com.yeqiangwei.util.ParamUtils;
import com.yeqiangwei.util.StringHelper;
import com.yeqiangwei.util.TypeChange;
import com.yeqiangwei.util.Validator;
public class ViewCoder {
private static UserPower USER_POWER;
public static String signaturesFilter(String str){
str = StringHelper.htmlEncoder(str); //过滤为安全字符
str = EnCoder.simpleTag(str);
/*
str = EnCoder.ubbPattern(str, "\\[img\\](.*?)\\[/img\\]"
,"<img onload=\"javascript:if(this.width > screen.width-350){this.width = screen.width-350};\" onerror=\"javascript:this.src='/club/images/imgErr.gif'\" src=\"$1\" />");
str = EnCoder.ubbPattern(str, "\\[url\\](.*?)\\[/url\\]","$1");
str = EnCoder.ubbPattern(str, "\\[url=(.*?)\\](.*?)\\[/url\\]","$2");
*/
str = EnCoder.ubbPattern(str, "\\[bg=(.*?)\\](.*?)\\[/bg\\]","<span style=\"$1\">$2</span>");
str = EnCoder.ubbPattern(str,"\\[move\\](.*?)\\[/move\\]","<marquee scrollamount=\"3\" delay=\"3\" direction=\"left\" onmouseout='start()' onmouseover='stop()'>$1</marquee>");
str = EnCoder.ubbPattern(str,"\\[fly\\](.*?)\\[/fly\\]","<marquee scrollamount=\"3\" delay=\"3\" direction=\"left\" onmouseout='start()' onmouseover='stop()'>$1</marquee>");
return str;
}
public static String getStorey(int storey){
StringBuffer sb = new StringBuffer();
switch(storey){
case 0:
sb.append("楼主");
break;
case 1:
sb.append("沙发");
break;
case 2:
sb.append("板凳");
break;
case 3:
sb.append("地板");
break;
default:
sb.append(storey);
sb.append("楼");
break;
}
return sb.toString();
}
public static String copyright(byte b){
StringBuffer sb = new StringBuffer();
sb.append("<div class=\"copyright\">");
switch(b){
case 1:
sb.append("作者声明:该文版权归作者个人所有,");
sb.append(getBasicInfoService().findOnly().getName());
sb.append("享有网络发表权,其他网站、媒体未经书面许可,不得以任何形式转载!");
break;
case 2:
sb.append("作者声明:该文版权为网络共享,大家喜欢的话可以任意转载,传抄,谢绝传统媒体转载!");
break;
case 3:
sb.append("作者声明:该文在未经商业用途的情况下,可任意转载,传抄……");
break;
}
sb.append("</div>");
return sb.toString();
}
public static String favoriteForum(HttpServletRequest request, ForumView forum){
StringBuffer sb = new StringBuffer("");
int forumId = 0;
if(!Validator.isEmpty(forum)){
forumId = forum.getForumId();
}else{
forumId = ParamUtils.getIntParameter(request,"forumId");
}
FavoriteParameter param = new FavoriteParameter();
param.setForumId(forumId);
long i = ViewCoder.getFavoriteForumService().countByParameter(param);
FavoriteForumModel model = getFavoriteForumService().findOnlyByUserIdAndForumId(UserLogin.getUserId(request),forumId);
if(Validator.isEmpty(model)){
sb.append("<a href=\"forum.do?act=doFavorite&forumId=");
sb.append(forumId);
sb.append("\">订阅本版</a><span class=\"gray\">(已有");
sb.append(i);
sb.append("人订阅)</span>");
}else{
sb.append("<a href=\"favoriteForum.jsp?forumId=");
sb.append(forumId);
sb.append("\">有");
sb.append(i);
sb.append("个人订阅了本版</a>");
}
return sb.toString();
}
public static String photo(HttpServletRequest request, UserView user, String rel){
StringBuffer sb = new StringBuffer();
if(!Validator.isEmpty(user)){
sb.append("<a href=\"");
sb.append(UrlUtils.getUrl(UrlUtils.USER,user.getUserId(),0,request));
if(Validator.isEmpty(rel)){
sb.append("\">");
}else{
sb.append("\" "+rel+">");
}
if(!Validator.isEmpty(user.getPhoto())){
sb.append("<img src=\"");
sb.append(user.getPhoto());
sb.append("\" alt=\""+user.getUserName()+"\"/>");
}else{
sb.append("<img src=\"/club/images/nophoto.gif\" alt=\""+user.getUserName()+"暂无头像\"/>");
}
sb.append("</a>");
}else{
sb.append("<img src=\"/club/images/nophoto.gif\" alt=\"\"/>");
}
return sb.toString();
}
public static String userMenu(HttpServletRequest request, UserView user, String defaultStr){
String uri = request.getRequestURI();
if(!Validator.isEmpty(user)&&user.getUserId()>0){
StringBuffer sb = new StringBuffer();
sb.append("<a href=\"");
sb.append(UrlUtils.getUrl(UrlUtils.USER,user.getUserId(),0,request));
sb.append("\">");
sb.append(user.getUserName());
sb.append("</a>");
sb.append("<span><span class=\"umenu\" ");
sb.append(" onclick=\"uu.menu(this.parentNode,");
sb.append(user.getUserId());
sb.append(",'");
sb.append(user.getUserName());
sb.append("'");
if(uri.equals("/club/friend.jsp")){
sb.append(",'','','上次上站:");
sb.append(FormatDateTime.decodeTime(user.getLastLoginDateTime()));
sb.append("'");
}
else if(!uri.equals("/club/thread.jsp")
&&!uri.equals("/club/favoriteForum.jsp")
&&!uri.equals("/club/friend.jsp")
){
sb.append(",'");
sb.append(user.getPhoto());
sb.append("'");
}
else{
sb.append(",''");
sb.append(",'");
sb.append(user.getCredit());
sb.append(",");
sb.append(user.getScore());
sb.append(",");
sb.append(user.getMoney());
sb.append("'");
}
sb.append(");\"");
sb.append("><img name=\"mlist\" src=\"/club/images/mlist.gif\" align=\"absmiddle\" border=\"0\" alt=\"展开(");
sb.append(user.getUserName());
sb.append(")的相关操作\"/></span></span>");
return sb.toString();
}else{
return defaultStr;
}
}
/**
*
* @param content
* @param isDeleted 逻辑删除
* @param power 强行浏览
* @return
*/
public static String getContent(HttpServletRequest request, String content, boolean isDeleted, boolean escapeXml)
{
if(isDeleted&&!ViewCoder.getUserPower().canAccess(request,UserPower.ADMINPOWER,1)/*查看删帖权限*/){
content = "<font class=\"del\">该帖已被删除!</font>";
}
else if(!ViewCoder.getUserPower().canAccess(request,UserPower.BROWSEPOWER,12)/*浏览文章内容*/){
if(Validator.isEmpty(UserLogin.getUserModel(request))){
content = "<div class=\"hint\">系统可能需要您<a href=\"/club/login.jsp\">登录</a>后才能查看文章详细内容!</div>";
}else{
content = "<div class=\"hint\">您所在的用户组目前无权浏览文章内容!<br/>你可以到社区事务版或直接联系管理员提出申请加入更高级用户组!</div>";
}
}
else{
if(escapeXml){
content = StringHelper.htmlEncoder(content);
content = EnCoder.advancedTag(content);
content = EnCoder.ubbMedia(content);
content = content.replaceAll("\\{music\\}",getConfigService().findOnly().getTempPath());
}else{
content = StringHelper.htmlEncoder(content);
content = EnCoder.simpleTag(content);
}
if(isDeleted)
content = "<font class=\"del\">该帖已被删除!<br/>=============================<br/></font>"+content;
}
//content = getNoAllowedCharForumService().replaceOfTopic(content);
return getNoAllowedCharForumService().replaceOfTopic(content);
}
public static String getContent(HttpServletRequest request, ReplyView v, boolean escapeUBB)
{
return getContent(request, v.getContent(),v.getIsDeleted(),escapeUBB);
}
public static String getContent(HttpServletRequest request, TopicView v, boolean escapeUBB)
{
return getContent(request, v.getContent(),v.getIsDeleted(),escapeUBB);
}
/**
*
* @param request
* @param forumId
* @param topicId
* @param replyId
* @param storey 页面回帖楼层
* @param type 按钮链接类型
* @return
*/
public static String topicMenu(HttpServletRequest request
, int forumId, int topicId, int replyId, int storey, int type)
{
StringBuffer sb = new StringBuffer();
int f = ParamUtils.getIntParameter(request,"forumId",0);
if(f>0){
forumId = f;
}
switch(type){
case 1:
sb.append("<a href=\"post.jsp?forumId=");
sb.append(forumId);
sb.append("&topicId=");
sb.append(topicId);
sb.append("&replyId=");
sb.append(replyId);
sb.append("&page=");
sb.append(ParamUtils.getStringParameter(request,"page","1"));
sb.append("&lpage=");
sb.append(ParamUtils.getStringParameter(request,"lpage","1"));
sb.append("&act=");
sb.append("addreply");
sb.append("\">回复</a>");
break;
case 2:
sb.append("<a href=\"post.jsp?forumId=");
sb.append(forumId);
sb.append("&topicId=");
sb.append(topicId);
//if(replyId>0){
sb.append("&replyId=");
sb.append(replyId);
//}
sb.append("&act=");
if(replyId==0){
sb.append("edittopic");
}else{
sb.append("editreply");
}
sb.append("&page=");
sb.append(ParamUtils.getStringParameter(request,"page","1"));
sb.append("&lpage=");
sb.append(ParamUtils.getStringParameter(request,"lpage","1"));
sb.append("\">编辑</a>");
break;
case 3:
sb.append("<a href=\"topicAdmin.jsp?forumId=");
sb.append(forumId);
sb.append("&topicId=");
sb.append(topicId);
//if(replyId>0){
sb.append("&replyId=");
sb.append(replyId);
//}
sb.append("&act=");
if(replyId==0){
sb.append("trashtopic");
}else{
sb.append("trashreply");
}
sb.append("\">");
sb.append("删除</a>");
break;
case 4:
if(replyId==0){
sb.append("<a href=\"topicAdmin.jsp?forumId=");
sb.append(forumId);
sb.append("&topicId=");
sb.append(topicId);
sb.append("&act=");
sb.append("movetopic");
sb.append("\">");
sb.append("移动</a>");
}else{
sb.append("");
}
break;
case 5:
if(replyId==0){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -