📄 wapaction.java
字号:
if(creditspolicys == null){
creditspolicys = dataParse.characterParse(settingMap.get("creditspolicy"),false);
}
replycredits = creditspolicys.get("reply");
}
String subject = request.getParameter("subject");
boolean modnewthreads = false;
boolean modnewreplies = false;
subject = subject == null?"":subject;
message = message == null?"":message;
List<Map<String,String>> forumMapList = dataBaseService.executeQuery("SELECT modnewposts FROM "+tablePre+"forums WHERE fid="+fid);
int allowdirectpost = Integer.parseInt(userGroupMap.get("allowdirectpost"));
boolean censormod = censormod(subject + "\t" + message, request);
modnewthreads = (allowdirectpost == 0 || allowdirectpost == 1)&& ((forumMapList!=null&&forumMapList.size()>0&&Integer.parseInt(forumMapList.get(0).get("modnewposts")) >0 ) || censormod);
modnewreplies = (allowdirectpost == 0 || allowdirectpost == 2)&& ((forumMapList!=null&&forumMapList.size()>0&&Integer.parseInt(forumMapList.get(0).get("modnewposts")) == 2 ) || censormod);
List<Map<String,String>> wordlist = dataBaseService.executeQuery("select find,replacement from jrun_words");
if(wordlist!=null && wordlist.size()>0){
for(Map<String,String> word :wordlist){
if(!message.equals("")&&Common.matches(message,word.get("find"))){
if(word.get("replacement").equals("{BANNED}")){
wapService.forwardToMessage(request, response, settingMap, "对不起,您填写的标题包含不良内容而无法提交,请返回修改。", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}else if(word.get("replacement").equals("{MOD}")){
modnewthreads = true;
}else{
message = message.replaceAll(word.get("find"),word.get("replacement"));
}
}
if(!subject.equals("") && Common.matches(subject,word.get("find"))){
if(word.get("replacement").equals("{BANNED}")){
wapService.forwardToMessage(request, response, settingMap, "对不起,您填写的标题包含不良内容而无法提交,请返回修改。", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}else if(word.get("replacement").equals("{MOD}")){
modnewthreads = true;
}else{
subject = Common.dhtmlspecialchars(subject.replaceAll(word.get("find"),word.get("replacement")));
}
}
}
}
String dow = request.getParameter("do");
Map<String, String> admingroupMap = (Map<String, String>) request.getAttribute("usergroups");
if(dow == null){
wapService.forwardToMessage(request, response, settingMap, "错误的请求!", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}else if(dow.equals("newthread")){
request.setAttribute("jsprun_action", "195");
int allowpost =Integer.valueOf(userGroupMap.get("allowpost"));
if (currentMember == null&& !((postperm.equals("") && allowpost > 0) || (!postperm.equals("") && Common.forumperm(postperm, groupid, currentMember!=null?currentMember.getExtgroupids():"")))) {
wapService.forwardToMessage(request, response, settingMap, "无权在本论坛发新话题", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
} else if (postperm.equals("") && allowpost == 0) {
wapService.forwardToMessage(request, response, settingMap, "无权在本论坛发新话题", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
} else if (!postperm.equals("") && !Common.forumperm(postperm, groupid, currentMember!=null?currentMember.getExtgroupids():"")) {
wapService.forwardToMessage(request, response, settingMap, "无权在本论坛发新话题", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}
if(subject == null || subject.trim().equals("") || message ==null||message.trim().equals("")){
NewThreadVO newThreadVO = wapService.getNewThreadVO(request, settingMap, currentMember, formhashInSession, session.getId(), fid, threadtypesString, dataParse);
request.setAttribute("valueObject", newThreadVO);
return mapping.findForward("newThread");
}else{
String post_invalid = Common.checkpost(subject, message, settingMap, admingroupMap);
if (post_invalid != null) {
wapService.forwardToMessage(request, response, settingMap, post_invalid, null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}
String formhash = request.getParameter("formhash");
if(formhash == null || !formhash.equals(formhashInSession)){
wapService.forwardToMessage(request, response, settingMap, "验证信息不正确", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}
String checkflood = checkflood(jsprun_uid, timestamp, currentMember!=null?currentMember.getLastpost():0,Integer.valueOf(settingMap.get("floodctrl")), admingroupMap==null?0:Integer.valueOf(admingroupMap.get("disablepostctrl")), Integer.valueOf(userGroupMap.get("maxpostsperhour")));
if (checkflood != null) {
wapService.forwardToMessage(request, response, settingMap, checkflood, null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}
String typeidString = request.getParameter("typeid");
int typeid = 0;
Map threadtypesMap = dataParse.characterParse(threadtypesString, false);
Map tempMap = null;
if(typeidString!=null && threadtypesMap != null && (tempMap = (Map)threadtypesMap.get("types"))!=null){
Set key = tempMap.keySet();
Iterator iterator = key.iterator();
while(iterator.hasNext()){
Object object = iterator.next();
if(object!=null && object.toString().equals(typeidString)){
typeid = Integer.parseInt(typeidString);
}
}
}
if(typeid == 0){
Object objectTemp = threadtypesMap.get("required");
if(objectTemp!=null){
String stringTemp = objectTemp.toString();
if(!stringTemp.equals("") && !stringTemp.equals("0")){
wapService.forwardToMessage(request, response, settingMap, "未选择主题分类", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}
}
}
int displayorder = modnewthreads ? -2 : 0;
int pinvisible = displayorder;
String author = currentMember!=null?currentMember.getUsername():"匿名";
Threads thread = new Threads();
thread.setFid(Short.parseShort(fid));
thread.setReadperm((short)0);
thread.setIconid((short)0);
thread.setTypeid((short)typeid);
thread.setAuthor(author);
thread.setAuthorid(currentMember!=null?currentMember.getUid():0);
thread.setSubject(subject);
thread.setDateline(timestamp);
thread.setLastpost(timestamp);
thread.setLastposter(author);
thread.setDisplayorder((byte)displayorder);
thread.setDigest((byte)0);
thread.setBlog((byte)0);
thread.setSpecial((byte)0);
thread.setAttachment(Byte.valueOf("0"));
thread.setModerated((byte)0);
threadService.addThread(thread);
int tid = thread.getTid();
Posts post = new Posts();
post.setFid(Short.valueOf(fid));
post.setTid(tid);
post.setFirst(Byte.valueOf("1"));
post.setAuthor(author);
post.setAuthorid(currentMember!=null?currentMember.getUid():0);
post.setSubject(subject);
post.setDateline(timestamp);
post.setMessage(message);
post.setUseip(request.getRemoteAddr());
post.setInvisible((byte)pinvisible);
post.setUsesig((byte)0);
post.setHtmlon((byte)0);
post.setBbcodeoff((byte)0);
post.setSmileyoff((byte)0);
post.setParseurloff((byte)0);
post.setAttachment((byte)0);
postService.saveOrupdatePosts(post);
int pid = post.getPid();
String sql = "REPLACE INTO "+tablePre+"mythreads (uid, tid, dateline) VALUES ('"+jsprun_uid+"', '"+tid+"', '"+timestamp+"')";
dataBaseService.execute(sql);
if(modnewthreads){
Map<String,String> link_titleMap = new HashMap<String, String>();
link_titleMap.put("link", "index.jsp?action=forum&fid="+fid);
link_titleMap.put("title", "成功提交人工审核");
wapService.forwardToMessage(request, response, settingMap, "成功提交人工审核", link_titleMap, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}else{
Common.updatepostcredits("+", jsprun_uid, postcredits, timestamp);
Common.updatepostcredits(jsprun_uid,settingMap.get("creditsformula"));
Common.updateMember(session, jsprun_uid);
String lastpost = tid + "\t" + Common.dhtmlspecialchars(Common.cutstr(subject.replaceAll("\t", " "), 40, null)) + "\t" + timestamp + "\t"+ author;
dataBaseService.execute("UPDATE "+tablePre+"forums SET lastpost='"+lastpost+"', threads=threads+1, posts=posts+1, todayposts=todayposts+1 WHERE fid='"+fid+"'");
if (currentForum.get("type").equals("sub")) {
dataBaseService.runQuery("UPDATE jrun_forums SET lastpost='"+ lastpost.replace("'", "''") + "' WHERE fid=" + currentForum.get("fup"),true);
}
String temp_link = "index.jsp?action=forum&fid="+fid;
temp_link = response.encodeURL(temp_link);
Map<String,String> link_titleMap = new HashMap<String, String>();
link_titleMap.put("link", "index.jsp?action=thread&tid="+tid);
link_titleMap.put("title", "查看主题");
wapService.forwardToMessage(request, response, settingMap, "主题发表成功<br /><a href=\""+temp_link+"\">返回论坛</a>", link_titleMap, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}
}
}else if(dow.equals("reply")){
request.setAttribute("jsprun_action", "196");
String tid = request.getParameter("tid");
if(tid == null){
wapService.forwardToMessage(request, response, settingMap, "错误的请求", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}
List<Map<String,String>> threadMapList = dataBaseService.executeQuery("SELECT * FROM "+tablePre+"threads WHERE tid='"+tid+"'");
if(threadMapList == null || threadMapList.size()==0){
wapService.forwardToMessage(request, response, settingMap, "指定主题不存在", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}
Map<String,String> threadMap = threadMapList.get(0);
if(replyperm.equals("")){
if (userGroupMap.get("allowreply").equals("0")) {
wapService.forwardToMessage(request, response, settingMap, "无权在本论坛发表回复", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}
}else if(!Common.forumperm(replyperm, groupid, currentMember==null?"0":currentMember.getExtgroupids())){
wapService.forwardToMessage(request, response, settingMap, "无权在本论坛发表回复", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}
if (Integer.parseInt(threadMap.get("price")) > 0 && Integer.parseInt(threadMap.get("special")) == 0&& jsprun_uid == 0) {
wapService.forwardToMessage(request, response, settingMap, "无权在本论坛发表回复", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}
boolean modertar = Common.ismoderator(Short.parseShort(threadMap.get("fid")), currentMember);
if(Integer.parseInt(threadMap.get("closed"))>0 && !modertar){
wapService.forwardToMessage(request, response, settingMap, "本主题已关闭", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}
String post_autoclose = checkautoclose(timestamp, currentForum, threadMap, modertar);
if(post_autoclose!=null){
wapService.forwardToMessage(request, response, settingMap, post_autoclose, null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}
if(message.trim().equals("")){
NewReplyVO newReplyVO = wapService.getNewReplyVO(request, settingMap, currentMember, formhashInSession, session.getId(), fid, tid);
request.setAttribute("valueObject", newReplyVO);
return mapping.findForward("newReply");
}else{
String post_invalid = Common.checkpost(null, message, settingMap, admingroupMap);
if(post_invalid !=null){
wapService.forwardToMessage(request, response, settingMap, post_invalid, null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
return null;
}
String formhash = request.getParameter("formhash");
if(formhash == null || !formhash.equals(formhashInSession)){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -