📄 forummanageaction.java
字号:
dataBaseService.runQuery("UPDATE jrun_posts SET fid='"+target+"' WHERE fid='"+source+"'",true);
Map<String,String> forum=dataBaseService.executeQuery("SELECT threads, posts FROM jrun_forums WHERE fid='"+source+"'").get(0);
dataBaseService.runQuery("UPDATE jrun_forums SET threads=threads+"+forum.get("threads")+", posts=posts+"+forum.get("posts")+" WHERE fid='"+target+"'",true);
dataBaseService.runQuery("UPDATE jrun_access SET fid='"+target+"' WHERE fid='"+source+"'",true);
dataBaseService.runQuery("DELETE FROM jrun_forums WHERE fid='"+source+"'",true);
dataBaseService.runQuery("DELETE FROM jrun_forumfields WHERE fid='"+source+"'",true);
dataBaseService.runQuery("DELETE FROM jrun_moderators WHERE fid='"+source+"'",true);
request.setAttribute("successInfo", "版块合并成功。");
request.setAttribute("requestPath", "admincp.jsp?action=forumsedit");
return mapping.findForward("success");
}
}
@SuppressWarnings("unchecked")
public ActionForward forumdetail(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
String detailsubmit=request.getParameter("detailsubmit");
String saveconfigsubmit=request.getParameter("saveconfigsubmit");
short fid = Short.valueOf(request.getParameter("fid"));
if(detailsubmit==null&&saveconfigsubmit==null){
Forums forum = forumService.findById(fid);
if (!"group".equals(forum.getType())) {
String projectId = request.getParameter("projectId");
Forumfields forumfield = forumfieldService.findById(fid);
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);
}
} else {
projectId = "0";
}
request.setAttribute("proId", projectId);
request.setAttribute("projects", dataBaseService.executeQuery("SELECT id, name FROM jrun_projects WHERE type='forum'"));
request.setAttribute("styleTemplages", dataBaseService.executeQuery("SELECT styleid, name FROM jrun_styles WHERE available=1"));
short simple = forum.getSimple();
int subforumsindex = -1;
int defaultorderfield = 0;
int defaultorder = 0;
defaultorderfield = simple / 64;
simple %= 64;
defaultorder = simple / 32;
simple %= 32;
if (simple >= 16) {
subforumsindex = 0;
simple -= 16;
}
if (simple >= 8) {
subforumsindex = 1;
simple -= 8;
}
request.setAttribute("simple", simple);
request.setAttribute("subforumsindex", subforumsindex);
request.setAttribute("defaultorderfield", defaultorderfield);
request.setAttribute("defaultorder", defaultorder);
Map modrecommend = dataParse.characterParse(forumfield.getModrecommend(),false);
request.setAttribute("modrecommend", modrecommend);
int autoclosetime = forum.getAutoclose();
int autoclose = 0;
if (autoclosetime < 0) {
autoclose = -1;
autoclosetime = Math.abs(autoclosetime);
} else if (autoclosetime > 0) {
autoclose = 1;
}
request.setAttribute("autoclose", autoclose);
request.setAttribute("autoclosetime", autoclosetime);
Map<String,String> settings=ForumInit.settings;
Map extcredits = dataParse.characterParse(settings.get("extcredits"),true);
Map postcredits = dataParse.characterParse(forumfield.getPostcredits(), false);
Map replycredits = dataParse.characterParse(forumfield.getReplycredits(), false);
Map digestcredits = dataParse.characterParse(forumfield.getDigestcredits(),false);
Map postattachcredits = dataParse.characterParse(forumfield.getPostattachcredits(),false);
Map getattachcredits = dataParse.characterParse(forumfield.getGetattachcredits(), false);
request.setAttribute("extcredits", extcredits);
request.setAttribute("postcredits", postcredits);
request.setAttribute("replycredits", replycredits);
request.setAttribute("digestcredits", digestcredits);
request.setAttribute("postattachcredits", postattachcredits);
request.setAttribute("getattachcredits", getattachcredits);
List<Threadtypes> threadtypes = threadtypeService.findAll();
Map hasTypevars = new HashMap();
if (threadtypes != null) {
for (Threadtypes threadtype : threadtypes) {
if(threadtype.getSpecial()==1){
Short typeid = threadtype.getTypeid();
Map<String,String> typevars=dataBaseService.executeQuery("SELECT count(*) count FROM jrun_typevars WHERE typeid="+typeid).get(0);
if (typevars != null && Integer.valueOf(typevars.get("count"))>0) {
hasTypevars.put(typeid, true);
}
}
}
}
Map threadtypesMap = null;
if (!"".equals(forumfield.getThreadtypes())) {
Map options = new HashMap();
Map show = new HashMap();
threadtypesMap = dataParse.characterParse(forumfield.getThreadtypes(), false);
Map flats = (Map) threadtypesMap.get("flat");
Map selectboxs = (Map) threadtypesMap.get("selectbox");
Map shows = (Map) threadtypesMap.get("show");
if (flats != null) {
Set<Integer> keys = flats.keySet();
for (Integer key : keys) {
options.put(key.shortValue(), 1);
}
}
if (selectboxs != null) {
Set<Integer> keys = selectboxs.keySet();
for (Integer key : keys) {
options.put(key.shortValue(), 2);
}
}
if (shows != null) {
Set<Integer> keys = shows.keySet();
for (Integer key : keys) {
show.put(key.shortValue(), shows.get(key));
}
}
threadtypesMap.put("options", options);
threadtypesMap.put("show", show);
if (options != null && options.size() > 0) {
threadtypesMap.put("status", 1);
}
}
request.setAttribute("threadtypes", threadtypes!=null&&threadtypes.size()>0?threadtypes:null);
request.setAttribute("hasTypevars", hasTypevars);
request.setAttribute("threadtypesMap", threadtypesMap);
short allowpostspecial = forum.getAllowpostspecial();
if (allowpostspecial < 127) {
int[] allowpostspecials = new int[6];
for (int i = 5; i >= 0; i--) {
double number = Math.pow(2, i);
if (allowpostspecial >= number) {
allowpostspecials[i] = 1;
allowpostspecial -= number;
} else {
allowpostspecials[i] = 0;
}
}
request.setAttribute("allowpostspecials", allowpostspecials);
}
String tradetypes=settings.get("tradetypes");
if(tradetypes!=null&&tradetypes.length()>0) {
Map<String,String> forumtradetypes=dataParse.characterParse(forumfield.getTradetypes(), true);
Map<String,String> tradetypesmap=dataParse.characterParse(tradetypes, true);
StringBuffer tradetypeselect = new StringBuffer();
Set<String> typeids=tradetypesmap.keySet();
for (String typeid : typeids) {
tradetypeselect.append("<input class=\"checkbox\" type=\"checkbox\" name=\"tradetypesnew\" value=\""+typeid+"\" "+(forumtradetypes.size()==0 || forumtradetypes.containsValue(typeid) ? "checked" : "")+"> "+tradetypesmap.get(typeid)+"<br />");
}
request.setAttribute("tradetypeselect", tradetypeselect);
}
List<Typemodels> typemodels = typemodelService.findAll();
Map typemodelids = new HashMap();
Map typemodelsMaps = dataParse.characterParse(forumfield.getTypemodels(), false);
if (typemodelsMaps != null) {
Iterator keys = typemodelsMaps.keySet().iterator();
while (keys.hasNext()) {
typemodelids.put(((Integer) keys.next()).shortValue(),"true");
}
}
request.setAttribute("typemodels", typemodels);
request.setAttribute("typemodelids", typemodelids);
List<Map<String,String>> usergroups=dataBaseService.executeQuery("SELECT groupid,grouptitle FROM jrun_usergroups");
Map viewpermMap = this.toMap(new HashMap<String,Boolean>(), forumfield.getViewperm().split("\t"));
Map postpermMap = this.toMap(new HashMap<String,Boolean>(), forumfield.getPostperm().split("\t"));
Map replypermMap = this.toMap(new HashMap<String,Boolean>(), forumfield.getReplyperm().split("\t"));
Map getattachpermMap = this.toMap(new HashMap<String,Boolean>(), forumfield.getGetattachperm().split("\t"));
Map postattachpermMap = this.toMap(new HashMap<String,Boolean>(), forumfield.getPostattachperm().split("\t"));
request.setAttribute("usergroups", usergroups);
request.setAttribute("viewpermMap", viewpermMap);
request.setAttribute("postpermMap", postpermMap);
request.setAttribute("replypermMap", replypermMap);
request.setAttribute("getattachpermMap", getattachpermMap);
request.setAttribute("postattachpermMap", postattachpermMap);
List<Map<String,String>> accessList=dataBaseService.executeQuery("SELECT m.username, a.* FROM jrun_access a LEFT JOIN jrun_members m USING (uid) WHERE fid='"+fid+"'");
if (accessList != null && accessList.size() > 0) {
StringBuffer viewaccess = new StringBuffer();
StringBuffer postaccess = new StringBuffer();
StringBuffer replyaccess = new StringBuffer();
StringBuffer getattachaccess = new StringBuffer();
StringBuffer postattachaccess = new StringBuffer();
for (Map<String,String> access : accessList) {
String member = ", <a href=\"admincp.jsp?action=toaccess&memberid="+access.get("uid")+"\">"+access.get("username")+"</a>";
if("1".equals(access.get("allowview"))){
viewaccess.append(member);
}
if("1".equals(access.get("allowpost"))){
postaccess.append(member);
}
if("1".equals(access.get("allowreply"))){
replyaccess.append(member);
}
if("1".equals(access.get("allowgetattach"))){
getattachaccess.append(member);
}
if("1".equals(access.get("allowpostattach"))){
postattachaccess.append(member);
}
}
request.setAttribute("viewaccess",viewaccess.length()>0?viewaccess.substring(2):null);
request.setAttribute("postaccess",postaccess.length()>0?postaccess.substring(2):null);
request.setAttribute("replyaccess",replyaccess.length()>0?replyaccess.substring(2):null);
request.setAttribute("getattachaccess",getattachaccess.length()>0?getattachaccess.substring(2):null);
request.setAttribute("postattachaccess",postattachaccess.length()>0?postattachaccess.substring(2):null);
}
Map forumlaperms = dataParse.characterParse(forumfield.getFormulaperm(),false);
List<Map<String,String>> forums=dataBaseService.executeQuery("SELECT fid, type, name, fup FROM jrun_forums WHERE fid<>'"+fid+"' AND type<>'sub' ORDER BY displayorder");
if(forums!=null&&forums.size()>0){
StringBuffer fupselect =new StringBuffer();
for(Map<String,String> forum1:forums){
if("group".equals(forum1.get("type"))){
int forum1_fid=Integer.valueOf(forum1.get("fid"));
fupselect.append("<option value='"+forum1_fid+"'"+(forum1_fid==forum.getFup()?" selected":"")+">"+forum1.get("name")+"</option>");
for(Map<String,String> forum2:forums){
if("forum".equals(forum2.get("type"))&&forum2.get("fup").equals(forum1.get("fid"))){
int forum2_fid=Integer.valueOf(forum2.get("fid"));
fupselect.append("<option value='"+forum2_fid+"'"+(forum2_fid==forum.getFup()?" selected":"")+"> > "+forum2.get("name")+"</option>");
}
}
}
}
for(Map<String,String> forum0:forums){
if("forum".equals(forum0.get("type"))&&forum0.get("fup").equals("0")){
int forum0_fid=Integer.valueOf(forum0.get("fid"));
fupselect.append("<option value='"+forum0_fid+"'"+(forum0_fid==forum.getFup()?" selected":"")+">"+forum0.get("name")+"</option>");
}
}
request.setAttribute("fupselect", fupselect.toString());
}
request.setAttribute("forumlaperms", forumlaperms.get(0));
request.setAttribute("forumfield", forumfield);
}
request.setAttribute("forum", forum);
return mapping.findForward("toForumDetail");
}else{
Forums forum = forumService.findById(fid);
String name = request.getParameter("name");
if (name.length() > 50) {
request.setAttribute("errorInfo", "输入版块名称超过50个字符,请返回修改。");
return mapping.findForward("error");
}
if ("group".equals(forum.getType())) {
forum.setName(name);
forum.setForumcolumns(toForumColumns(request.getParameter("forumcolumns")));
forumService.updateForum(forum);
} else {
String checkResult = request.getParameter("checkResult");
if (!"true".equals(checkResult)) {
request.setAttribute("errorInfo", "权限表达式无效,请返回修改。");
return mapping.findForward("error");
}
short fup = Short.valueOf(request.getParameter("fup"));
short oldfup=forum.getFup();
Forums upForum = forumService.findById(fup);
Forumfields forumfield = forumfieldService.findById(fid);
forum = (Forums) this.setValues(forum, request);
if(oldfup!=fup){
Map<String,String> forumcount=dataBaseService.executeQuery("SELECT count(*) AS count FROM jrun_forums WHERE fup='"+fid+"'").get(0);
if(forumcount!=null&&!"0".equals(forumcount.get("count"))){
request.setAttribute("errorInfo","下级版块不为空,不能修改本版块的上级版块归属,请返回。");
return mapping.findForward("error");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -