📄 forummanageaction.java
字号:
package cn.jsprun.struts.action;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import cn.jsprun.domain.Forumfields;
import cn.jsprun.domain.Forums;
import cn.jsprun.domain.Members;
import cn.jsprun.domain.Styles;
import cn.jsprun.domain.Templates;
import cn.jsprun.domain.Threadtypes;
import cn.jsprun.domain.Typemodels;
import cn.jsprun.domain.Typeoptions;
import cn.jsprun.domain.Typevars;
import cn.jsprun.domain.TypevarsId;
import cn.jsprun.domain.Usergroups;
import cn.jsprun.service.forumsedit.ForumService;
import cn.jsprun.service.forumsedit.ForumfieldService;
import cn.jsprun.service.forumsedit.StyleService;
import cn.jsprun.service.forumsedit.TemplateService;
import cn.jsprun.service.forumsedit.ThreadtypeService;
import cn.jsprun.service.forumsedit.TypemodelService;
import cn.jsprun.service.forumsedit.TypeoptionService;
import cn.jsprun.service.forumsedit.TypevarService;
import cn.jsprun.service.system.DataBaseService;
import cn.jsprun.service.user.UserGroupService;
import cn.jsprun.utils.Base64Decoder;
import cn.jsprun.utils.Base64Encoder;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Cache;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.DataParse;
import cn.jsprun.utils.ForumInit;
import cn.jsprun.utils.JspRunConfig;
public class ForumManageAction extends DispatchAction {
private ForumService forumService = (ForumService) BeanFactory.getBean("forumService");
private ThreadtypeService threadtypeService = (ThreadtypeService) BeanFactory.getBean("threadtypeService");
private ForumfieldService forumfieldService = (ForumfieldService) BeanFactory.getBean("forumfieldService");
private TypemodelService typemodelService = (TypemodelService) BeanFactory.getBean("typemodelService");
private TypeoptionService typeoptionService = (TypeoptionService) BeanFactory.getBean("typeoptionService");
private TypevarService typevarService = (TypevarService) BeanFactory.getBean("typevarService");
private UserGroupService userGroupService = (UserGroupService) BeanFactory.getBean("userGroupService");
private StyleService styleService = (StyleService) BeanFactory.getBean("styleService");
private TemplateService templateService = (TemplateService) BeanFactory.getBean("templateService");
private DataBaseService dataBaseService = (DataBaseService) BeanFactory.getBean("dataBaseService");
private DataParse dataParse= (DataParse)BeanFactory.getBean("dataParse");
Map<String, String> types = new HashMap<String, String>();
{
types.put("number", "数字(number)");
types.put("text", "字串(text)");
types.put("radio", "单选(radio)");
types.put("checkbox", "多选(checkbox)");
types.put("textarea", "文本(textarea)");
types.put("select", "选择(select)");
types.put("calendar", "日历(calendar)");
types.put("email", "电子邮件(email)");
types.put("url", "超级链接(url)");
types.put("image", "图片(image)");
}
@SuppressWarnings({ "static-access", "unchecked" })
public ActionForward forumadd(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
String catsubmit =request.getParameter("catsubmit");
String forumsubmit =request.getParameter("forumsubmit");
if(catsubmit==null&&forumsubmit==null){
String fupid = request.getParameter("fupid");
List<Map<String,String>> forumList=dataBaseService.executeQuery("SELECT fid, name, type, fup FROM jrun_forums WHERE type<>'sub' ORDER BY displayorder");
List<Map<String,String>> groups = new ArrayList<Map<String,String>>();
List<Map<String,String>> forums = new ArrayList<Map<String,String>>();
if(forumList!=null){
for(Map<String,String> forum:forumList)
{
forum.put("name", Common.strip_tags(forum.get("name")));
String type=forum.get("type");
if("group".equals(type)){
groups.add(forum);
}else if("forum".equals(type)){
forums.add(forum);
}
if(fupid!=null&&forum.get("fid").equals(fupid)){
request.setAttribute("fupid", fupid);
request.setAttribute("type", type);
}
}
}
request.setAttribute("groups", groups);
request.setAttribute("forums", forums);
request.setAttribute("projects", dataBaseService.executeQuery("SELECT id, name FROM jrun_projects WHERE type='forum'"));
return mapping.findForward("toAddForum");
}else{
boolean flag = false;
String successInfo =null;
String errorInfo = null;
String name = request.getParameter("name");
if (name != null && name.length() <= 50) {
Forums forum = new Forums();
Forumfields forumfield = new Forumfields();
forum.setName(name);
forum.setStatus((byte)1);
forum.setSimple((short)0);
forumfield.setDescription("");
forumfield.setFormulaperm("");
forumfield.setModerators("");
forumfield.setRules("");
forumfield.setThreadtypes("");
forumfield.setViewperm("");
forumfield.setPostperm("");
forumfield.setReplyperm("");
forumfield.setGetattachperm("");
forumfield.setPostattachperm("");
forumfield.setKeywords("");
forumfield.setSupe_pushsetting("");
forumfield.setModrecommend("");
forumfield.setTradetypes("");
forumfield.setTypemodels("");
String add = request.getParameter("add");
if ("cateGroup".equals(add)) {
forum.setFup((short)0);
forum.setType("group");
successInfo = "添加新分类 <B>" + name + "</B> 成功。";
errorInfo = "添加新分类 <B>" + name + "</B> 失败!";
}
else {
Short fup = Short.valueOf(request.getParameter("fup"));
String projectId = request.getParameter("projectId");
forum.setAllowsmilies(Byte.valueOf("1"));
forum.setAllowbbcode(Byte.valueOf("1"));
forum.setAllowimgcode(Byte.valueOf("1"));
forum.setAllowshare(Byte.valueOf("1"));
forum.setAllowpostspecial(Short.valueOf("127"));
if (projectId!=null) {
List<Map<String,String>> projects=dataBaseService.executeQuery("SELECT value FROM jrun_projects WHERE id='"+projectId+"'");
if(projects!=null&&projects.size()>0){
Map map = dataParse.characterParse(projects.get(0).get("value"),false);
forum = (Forums) this.setValues(forum, map);
forumfield = (Forumfields) this.setValues(forumfield, map);
}
}
forum.setFup(fup);
if ("cateForum".equals(add)) {
forum.setType("forum");
} else if ("cateSub".equals(add)) {
forum.setType("sub");
}
successInfo = "添加新版块 <B>" + name + "</B> 成功。";
errorInfo = "添加新版块 <B>" + name + "</B> 失败!";
}
if (forumService.addForum(forum)) {
forumfield.setFid(forum.getFid());
forumfieldService.addForumfield(forumfield);
if(!"cateGroup".equals(add)){
this.copyModerator(forum.getFid(), forum.getFup(), (byte)1);
}
flag = true;
}
} else {
errorInfo = "输入版块名称超过50个字符,请返回修改。";
}
if (flag) {
this.updateForumCache();
request.setAttribute("successInfo",successInfo);
request.setAttribute("requestPath","admincp.jsp?action=forumsedit");
return mapping.findForward("success");
} else {
request.setAttribute("errorInfo", errorInfo);
return mapping.findForward("error");
}
}
}
public ActionForward forumsedit(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) {
String editsubmit=request.getParameter("editsubmit");
if(editsubmit==null){
List<Map<String,String>> forumList=dataBaseService.executeQuery("SELECT f.fid, f.type, f.status, f.name, f.fup, f.displayorder, f.inheritedmod, ff.moderators FROM jrun_forums f LEFT JOIN jrun_forumfields ff USING(fid) ORDER BY f.type<>'group', f.displayorder");
if(forumList!=null)
{
StringBuffer forums=new StringBuffer();
for(Map<String,String> forumi:forumList){
if("group".equals(forumi.get("type"))){
forums.append("<ul>"+showforum(forumi,forumi.get("type"),"index.jsp"));
for(Map<String,String> forumj:forumList){
if(forumi.get("fid").equals(forumj.get("fup"))&&"forum".equals(forumj.get("type"))){
forums.append("<ul>"+showforum(forumj,forumj.get("type"),"index.jsp"));
for(Map<String,String> forumk:forumList){
if(forumj.get("fid").equals(forumk.get("fup"))&&"sub".equals(forumk.get("type"))){
forums.append("<ul>"+showforum(forumk,forumk.get("type"),"index.jsp")+"</ul>");
}
}
forums.append("</ul>");
}
}
forums.append("</ul>");
}
}
request.setAttribute("forums", forums);
}
return mapping.findForward("toEditForum");
}else{
List<Map<String,String>> forums=dataBaseService.executeQuery("SELECT fid FROM jrun_forums");
if (forums != null) {
for (Map<String,String> forum : forums) {
String disPlayOrder = request.getParameter(forum.get("fid"));
if (disPlayOrder != null) {
dataBaseService.runQuery("UPDATE jrun_forums SET displayorder='"+toDisPlayOrder(disPlayOrder)+"' WHERE fid='"+forum.get("fid")+"'",true);
}
}
}
request.setAttribute("successInfo", "版块设置成功更新。");
request.setAttribute("requestPath", "admincp.jsp?action=forumsedit");
return mapping.findForward("success");
}
}
public ActionForward forumsmerge(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
String mergesubmit=request.getParameter("mergesubmit");
int source = Common.toDigit(request.getParameter("sourceId"));
int target = Common.toDigit(request.getParameter("targetId"));
if(mergesubmit==null||source==target){
HttpSession session=request.getSession();
short groupid = (Short)session.getAttribute("jsprun_groupid");
Members member = (Members)session.getAttribute("user");
request.setAttribute("forumselect", Common.forumselect(false, false,groupid,member!=null?member.getExtgroupids():"",null,false));
return mapping.findForward("toMergeForum");
}
else{
List<Map<String,String>> forums=dataBaseService.executeQuery("SELECT fid FROM jrun_forums WHERE fid IN ('"+source+"', '"+target+"') AND type<>'group'");
if (forums!=null&&forums.size()!=2) {
request.setAttribute("errorInfo", "指定的版块不存在,请返回修改。");
return mapping.findForward("error");
}
List<Map<String,String>> upforum=dataBaseService.executeQuery("SELECT fid FROM jrun_forums WHERE fup='"+source+"'");
if (upforum != null && upforum.size() > 0) {
request.setAttribute("errorInfo","源版块下级版块不为空,请先返回修改相关下级版块的上级设置。");
return mapping.findForward("error");
}
dataBaseService.runQuery("UPDATE jrun_threads SET fid='"+target+"' WHERE fid='"+source+"'",true);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -