📄 forummanageaction.java
字号:
String[] fids=fidarray.toString().split(",");
for (String ifid : fids) {
ifid=ifid.trim();
if(!ifid.equals("0"))
{
dataBaseService.runQuery("REPLACE INTO jrun_moderators (uid, fid, inherited) VALUES ('"+uid+"', '"+ifid+"', '1')",true);
}
}
}
}
}
forum.setInheritedmod(inheritedmodnew);
forumService.updateForum(forum);
}
List<Map<String,String>> moderatorList=dataBaseService.executeQuery("SELECT m.username FROM jrun_members m, jrun_moderators mo WHERE mo.fid='"+fid+"' AND mo.inherited='0' AND m.uid=mo.uid ORDER BY mo.displayorder", new String[]{"username"});
StringBuffer moderatorstr=new StringBuffer();
if(moderatorList!=null&&moderatorList.size()>0)
{
for (Map<String, String> moderator : moderatorList) {
moderatorstr.append("\t"+moderator.get("username"));
}
}
dataBaseService.runQuery("UPDATE jrun_forumfields SET moderators='"+(moderatorstr.length()>0?moderatorstr.substring(1):"")+"' WHERE fid='"+fid+"'",true);
request.setAttribute("successInfo", "版主设置成功更新。");
request.setAttribute("requestPath","admincp.jsp?action=moderators&fid="+fid);
return mapping.findForward("success");
}
}
public ActionForward forumrules(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
String fid = request.getParameter("fid");
HttpSession session=request.getSession();
byte adminid = (Byte)session.getAttribute("jsprun_adminid");
int uid = (Integer)session.getAttribute("jsprun_uid");
if(fid==null){
List<Map<String,String>> forums=null;
if(adminid==2){
forums=dataBaseService.executeQuery("SELECT fid, name FROM jrun_forums WHERE alloweditrules>'0' AND type IN ('forum', 'sub')");
}else{
forums=dataBaseService.executeQuery("SELECT f.fid, f.name, m.uid FROM jrun_forums f LEFT JOIN jrun_moderators m ON m.uid='"+uid+"' AND m.fid=f.fid WHERE alloweditrules>'0' AND f.type IN ('forum', 'sub')");
}
StringBuffer options=new StringBuffer();
if(forums!=null&&forums.size()>0){
for(Map<String,String> forum:forums){
if(forum.get("uid")!=null||adminid==2){
options.append("<option value=\""+forum.get("fid")+"\">"+Common.strip_tags(forum.get("name"))+"</option>");
}
}
}
request.setAttribute("options", options);
return mapping.findForward("toForumrules");
}else{
boolean access=false;
if(adminid==2){
access=true;
}else if(adminid==3){
List<Map<String,String>> moderatorss=dataBaseService.executeQuery("SELECT uid FROM jrun_moderators WHERE uid='"+uid+"' AND fid='"+fid+"'");
if(moderatorss!=null&&moderatorss.size()>0){
access=true;
}
}
List<Map<String,String>> forums=dataBaseService.executeQuery("SELECT f.fid, f.name, f.alloweditrules, ff.rules FROM jrun_forums f LEFT JOIN jrun_forumfields ff USING (fid) WHERE f.fid='"+fid+"' AND alloweditrules>'0' AND type IN ('forum', 'sub')");
if(!access){
request.setAttribute("resultInfo", "对不起,管理员设置了版主无法编辑版块规则。");
return mapping.findForward("result");
}
if(forums==null||forums.size()==0){
request.setAttribute("resultInfo", "对不起,管理员设置了版主无法编辑版块规则。");
return mapping.findForward("result");
}else{
Map<String,String> forum=forums.get(0);
String rulessubmit=request.getParameter("rulessubmit");
if(rulessubmit==null){
request.setAttribute("forum",forum);
return mapping.findForward("toForumrules");
}else{
String rulesnew=request.getParameter("rulesnew");
int alloweditrules=Integer.valueOf(forum.get("alloweditrules"));
if(alloweditrules!=2){
rulesnew = Common.dhtmlspecialchars(rulesnew);
}
dataBaseService.runQuery("UPDATE jrun_forumfields SET rules='"+rulesnew+"' WHERE fid='"+fid+"'",true);
request.setAttribute("resultInfo", "版块规则成功编辑。");
return mapping.findForward("result");
}
}
}
}
@SuppressWarnings("unchecked")
private Map<String,Boolean> toMap(Map<String,Boolean> map, String[] groupids) {
if (groupids == null) {
return null;
}
for (int i = 0; i < groupids.length; i++) {
if (!"".equals(groupids[i])) {
map.put(groupids[i], true);
}
}
return map;
}
@SuppressWarnings("unchecked")
private String toString(String[] groupids) {
StringBuffer sb = new StringBuffer("");
if (groupids != null && groupids.length > 0) {
sb.append("\t");
for (int i = 0; i < groupids.length; i++) {
if (!"".equals(groupids[i])) {
sb.append(groupids[i] + "\t");
}
}
}
return sb.toString();
}
@SuppressWarnings("unchecked")
private Map toMap(Map map, HttpServletRequest request, Integer key,
String fieldName) {
if (fieldName != null && !"".equals(fieldName)) {
String value = request.getParameter(fieldName + "[" + key + "]");
if (value != null && !"".equals(value)) {
if (map == null) {
map = new TreeMap();
}
map.put(key, Common.toDigit(value, 99L, -2147483648L).intValue());
}
}
return map;
}
private void copyModerator(short fid, short fup, byte inherited) {
Map<String,String> upForum=dataBaseService.executeQuery("SELECT inheritedmod FROM jrun_forums WHERE fid='"+fup+"'").get(0);
List<Map<String,String>> moderators=dataBaseService.executeQuery("SELECT uid, inherited FROM jrun_moderators WHERE fid='"+fup+"'");
if (moderators != null&&moderators.size()>0) {
StringBuffer sql=new StringBuffer();
sql.append("REPLACE INTO jrun_moderators (uid, fid, inherited)VALUES");
boolean flag=false;
for (Map<String,String> moderator : moderators) {
if ("1".equals(upForum.get("inheritedmod"))||"1".equals(moderator.get("inherited"))) {
sql.append(" ('"+moderator.get("uid")+"', '"+fid+"', '1'),");
flag=true;
}
}
if(flag){
sql.deleteCharAt(sql.length()-1);
}
dataBaseService.runQuery(sql.toString(),true);
}
}
private void updateForumCache()
{
String realPath=servlet.getServletContext().getRealPath("/");
Cache cache=new Cache(realPath);
try {
cache.updatecache("forums");
} catch (Exception e) {
e.printStackTrace();
}
}
private String showforum(Map<String,String> forum,String type,String indexname)
{
return "<li><a href=\""+("group".equals(type)?indexname+"?gid="+forum.get("fid") : "forumdisplay.jsp?fid="+forum.get("fid"))+"\" target=\"_blank\"><b>"+forum.get("name")+"</b><span class=\"smalltxt\">"+("1".equals(forum.get("status")) ?"" : " (隐藏)")+"</span></a> - 显示顺序: <input type=\"text\" name=\""+forum.get("fid")+"\" value=\""+forum.get("displayorder")+"\" size=\"1\"> - "+(!"sub".equals(type)?"<a href=\"admincp.jsp?action=forumadd&fupid="+forum.get("fid")+"\" title=\"添加本分区或版块的下级版块\">[添加]</a> " : "")+"<a href=\"admincp.jsp?action=forumdetail&fid="+forum.get("fid")+"\" title=\"编辑本版块设置\">[编辑]</a> "+(!"group".equals(type)?"<a href=\"admincp.jsp?action=forumcopy&source="+forum.get("fid")+"\" title=\"将本版块的设置复制到其它版块\">[版块设置复制]</a> " :"")+"<a href=\"admincp.jsp?action=forumdelete&fid="+forum.get("fid")+"\" title=\"删除本版块及其中所有帖子\">[删除]</a> - <a href=\"admincp.jsp?action=moderators&fid="+forum.get("fid")+"\" title=\"编辑本版块版主\">[版主"+(!"".equals(forum.get("moderators"))?("1".equals(forum.get("inheritedmod"))?": <B>"+forum.get("moderators").replaceAll("\t", ", ")+"</B>":": "+forum.get("moderators").replaceAll("\t", ", ")):"")+"]</a><br /></li>";
}
private Map<String, Object> getValues(Object bean, String[] fields,Map<String, Object> fieldsMap) {
try {
Field[] beanFields = bean.getClass().getDeclaredFields();
if (fieldsMap == null) {
fieldsMap = new HashMap<String, Object>();
}
int fieldLength = fields.length;
String paraName = null;
String getMethod = null;
for (int i = 0; i < fieldLength; i++) {
paraName = fields[i];
Method method = null;
Object paraValue = null;
int beanFieldLength = beanFields.length;
for (int j = 0; j < beanFieldLength; j++) {
if (paraName.equals(beanFields[j].getName())) {
getMethod = "get"+ paraName.substring(0, 1).toUpperCase()+ paraName.substring(1, paraName.length());
method = bean.getClass().getMethod(getMethod);
paraValue = method.invoke(bean, new Object[0]);
}
}
if (method != null) {
if (paraValue instanceof Short) {
paraValue = String.valueOf(paraValue);
}
fieldsMap.put(paraName, paraValue);
}
}
}catch (Exception e) {
e.printStackTrace();
}
return fieldsMap;
}
@SuppressWarnings("unchecked")
private Object setValues(Object bean, Map fieldsMap) {
try {
Field[] fields = bean.getClass().getDeclaredFields();
String paraName = null;
String paraValue = null;
String setMethod = null;
int fieldLength = fields.length;
for (int i = 0; i < fieldLength; i++) {
paraName = fields[i].getName();
Object obj = fieldsMap.get(paraName);
if (obj != null) {
paraValue = obj.toString();
if (paraValue != null && !"".equals(paraValue)) {
setMethod = "set"+ paraName.substring(0, 1).toUpperCase()+ paraName.substring(1, paraName.length());
Method method = bean.getClass().getMethod(setMethod,fields[i].getType());
method.invoke(bean, Common.convert(paraValue, fields[i].getType()));
}
}
}
}catch (Exception e) {
e.printStackTrace();
}
return bean;
}
private Object setValues(Object bean, HttpServletRequest request) {
try {
Field[] fields = bean.getClass().getDeclaredFields();
String paraName = null;
String paraValue = null;
String setMethod = null;
int fieldLength = fields.length;
for (int i = 0; i < fieldLength; i++) {
paraName = fields[i].getName();
Object obj = request.getParameter((paraName));
if (obj != null) {
paraValue = obj.toString();
if (paraValue != null) {
if ("forumcolumns".equals(paraName)) {
paraValue = toForumColumns(paraValue).toString();
}
if ("displayorder".equals(paraName)) {
paraValue = String.valueOf(toDisPlayOrder(paraValue));
}
if ("threadcaches".equals(paraName)) {
paraValue = Common.toDigit(paraValue, 100L, 0L).toString();
}
if ("formulaperm".equals(paraName)) {
continue;
}
setMethod = "set"+ paraName.substring(0, 1).toUpperCase()+ paraName.substring(1, paraName.length());
Method method = bean.getClass().getMethod(setMethod,fields[i].getType());
method.invoke(bean, Common.convert(paraValue, fields[i].getType()));
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return bean;
}
@SuppressWarnings("unchecked")
public ActionForward threadtypes(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
short special = (short)Common.toDigit(request.getParameter("special"));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -