📄 indexmanageaction.java
字号:
request.setAttribute("pmlists", pmlists.size() > 0 ? pmlists: null);
request.setAttribute("extcredits", dataParse.characterParse(settings.get("extcredits"), true));
List<Map<String, String>> maps = dataBaseService.executeQuery(accessmasks > 0 ? "SELECT f.fid, f.fup, f.type, f.name, f.threads, f.posts, f.todayposts, f.lastpost, f.inheritedmod, f.forumcolumns, f.simple, ff.description, ff.moderators, ff.icon, ff.viewperm, ff.redirect, a.allowview FROM jrun_forums f LEFT JOIN jrun_forumfields ff ON ff.fid=f.fid LEFT JOIN jrun_access a ON a.uid="+ member.getUid()+ " AND a.fid=f.fid WHERE f.status>0 ORDER BY f.type, f.displayorder ": "SELECT f.fid, f.fup, f.type, f.name, f.threads, f.posts, f.todayposts, f.lastpost, f.inheritedmod, f.forumcolumns, f.simple, ff.description, ff.moderators, ff.icon, ff.viewperm, ff.redirect FROM jrun_forums f LEFT JOIN jrun_forumfields ff USING(fid) WHERE f.status>0 ORDER BY f.type, f.displayorder ");
Map<String, String> forumname = new HashMap<String, String>();
if (maps != null && maps.size() > 0) {
Map<String, List<Map<String, String>>> forums = new HashMap<String, List<Map<String, String>>>();
List<Map<String, String>> groupsList = new ArrayList<Map<String, String>>();
Map<String, Map<String, String>> lastposts = new HashMap<String, Map<String, String>>();
for (Map<String, String> forumMap : maps) {
String fid=forumMap.get("fid");
forumname.put(fid,forumMap.get("name"));
if ("group".equals(forumMap.get("type"))) {
if(jsprun_collapse!=null&&jsprun_collapse.indexOf("category_"+fid)>0){
collapseMap.put("category_"+fid, "display: none");
forumMap.put("collapseimg","collapsed_yes.gif");
}
else{
collapseMap.put("category_"+fid, "");
forumMap.put("collapseimg", "collapsed_no.gif");
}
if (!"".equals(forumMap.get("moderators"))) {
forumMap.put("moderators", Common.moddisplay(forumMap.get("moderators"), "flat", false,spaceurlurl));
}
forumMap.put("forumscount", "0");
groupsList.add(forumMap);
} else {
threads += Integer.valueOf(forumMap.get("threads"));
posts += Integer.valueOf(forumMap.get("posts"));
todayposts += Integer.valueOf(forumMap.get("todayposts"));
if ("forum".equals(forumMap.get("type"))) {
if (Common.forum(forumMap, hideprivate, groupid,lastvisit,extgroupids,lastposts,sdf_all,timeoffset,rewritestatus)) {
List<Map<String, String>> forumList = forums.get(forumMap.get("fup"));
if (forumList == null) {
forumList = new ArrayList<Map<String, String>>();
forums.put(forumMap.get("fup"), forumList);
}
forumMap.put("subforums", "");
for (Map<String, String> group : groupsList) {
if (group.get("fid").equals(forumMap.get("fup"))){
group.put("forumscount",String.valueOf(Integer.valueOf(group.get("forumscount")) + 1));
}
}
forumList.add(forumMap);
}
} else {
Set<String> keys = forums.keySet();
for (String key : keys) {
List<Map<String, String>> forumList = forums.get(key);
for (Map<String, String> forum : forumList) {
if (forum.get("fid").equals(forumMap.get("fup"))){
forum.put("threads",String.valueOf(Integer.valueOf(forum.get("threads"))+ Integer.valueOf(forumMap.get("threads"))));
forum.put("posts",String.valueOf(Integer.valueOf(forum.get("posts"))+ Integer.valueOf(forumMap.get("posts"))));
forum.put("todayposts",String.valueOf(Integer.valueOf(forum.get("todayposts"))+ Integer.valueOf(forumMap.get("todayposts"))));
int simple=Integer.valueOf(forum.get("simple"));
if (subforumsindex==1&& "2".equals(forum.get("permission"))&& !((simple & 16) > 0)|| (simple & 8) > 0) {
if(forumdisplay){
forum.put("subforums",forum.get("subforums")+ "<a href=\"forum-"+ forumMap.get("fid")+ "-1.html\">"+ forumMap.get("name")+ "</a> ");
}else{
forum.put("subforums",forum.get("subforums")+ "<a href=\"forumdisplay.jsp?fid="+ forumMap.get("fid")+ "\">"+ forumMap.get("name")+ "</a> ");
}
}
}
}
}
}
}
}
maps=null;
for (Map<String, String> category : groupsList) {
int forumscount = Integer.valueOf(category.get("forumscount"));
int forumcolumns = Integer.valueOf(category.get("forumcolumns"));
if (forumscount > 0 && forumcolumns > 0) {
category.put("forumcolwidth", Math.floor(100 / forumcolumns)+ "%");
int colspan = forumscount % forumcolumns;
if (colspan > 0) {
StringBuffer endrows = new StringBuffer();
while (forumcolumns - colspan > 0) {
endrows.append("<td> </td>");
colspan++;
}
category.put("endrows", endrows.toString());
}
}
}
request.setAttribute("catlists", groupsList);
request.setAttribute("forums", forums);
request.setAttribute("lastposts", lastposts);
}
int whosonlinestatus=Integer.valueOf(settings.get("whosonlinestatus"));
if(whosonlinestatus==1||whosonlinestatus==3){
whosonlinestatus=1;
String[] onlineinfo=settings.get("onlinerecord").split("\t");
String onlineusernum=CookieUtil.getCookie(request, "onlineusernum", true, settings);
int onlinenum=0;
if(onlineusernum==null){
List<Map<String,String>> count=dataBaseService.executeQuery("SELECT COUNT(*) count FROM jrun_sessions");
onlinenum=count.size()>0?Integer.valueOf(count.get(0).get("count")):0;
if(onlinenum>Integer.valueOf(onlineinfo[0])){
String onlinerecord=onlinenum+"\t"+timestamp;
onlineinfo[0]=String.valueOf(onlinenum);
onlineinfo[1]=String.valueOf(timestamp);
dataBaseService.runQuery("UPDATE jrun_settings SET value='"+onlinerecord+"' WHERE variable='onlinerecord'",true);
Cache cache=new Cache(servlet.getServletContext().getRealPath("/"));
try {
cache.updatecache("settings");
} catch (Exception e) {
e.printStackTrace();
}
cache=null;
}
CookieUtil.setCookie(request, response, "onlineusernum", String.valueOf(onlinenum), 300, true, settings);
}else{
onlinenum=Integer.valueOf(onlineusernum);
}
String showoldetails=request.getParameter("showoldetails");
if(showoldetails!=null) {
CookieUtil.setCookie(request, response, "onlineindex", showoldetails, 86400 * 365, true,settings);
} else{
showoldetails = CookieUtil.getCookie(request, "onlineindex", true,settings);
}
showoldetails=showoldetails!=null&&showoldetails.equals("no")?null:showoldetails;
boolean detailstatus=showoldetails!=null&&showoldetails.equals("yes")||!settings.get("whosonline_contract").equals("1")&&showoldetails==null&&onlinenum<500;
Map<String, String> onlinelist = (Map<String, String>) request.getAttribute("onlinelist");
if(detailstatus){
int jsprun_uid=(Integer)session.getAttribute("jsprun_uid");
if(jsprun_uid>0){
Common.updatesession(request,settings);
}
int membercount=0;
int invisiblecount=0;
int maxonlinelist = Integer.valueOf(settings.get("maxonlinelist"))>0 ? Integer.valueOf(settings.get("maxonlinelist")) : 500;
List<Map<String,String>> onlines=dataBaseService.executeQuery("SELECT uid, username, groupid, invisible, action, lastactivity, fid FROM jrun_sessions "+(onlinelist.get("7")!=null?"":"WHERE uid <> 0")+" ORDER BY uid DESC LIMIT "+maxonlinelist);
if(onlines!=null&&onlines.size()>0){
SimpleDateFormat sdf_timeformat=new SimpleDateFormat(timeformat);
MessageResources mr=getResources(request);
Locale locale=getLocale(request);
List<Map<String,String>> onlinelists=new ArrayList<Map<String,String>>();
for (Map<String, String> online : onlines) {
if(!online.get("uid").equals("0")){
membercount++;
if(online.get("invisible").equals("1")){
invisiblecount++;
continue;
}
else{
online.put("icon", onlinelist.get(online.get("groupid"))!=null?onlinelist.get(online.get("groupid")):onlinelist.get("0"));
}
}else{
online.put("icon", onlinelist.get("7"));
online.put("username", onlinelist.get("guest"));
}
online.put("fid",Integer.valueOf(online.get("fid"))>0?"\n 版块: "+ Common.strip_tags(forumname.get(online.get("fid"))):"");
online.put("action", mr.getMessage(locale,online.get("action")));
online.put("lastactivity", Common.gmdate(sdf_timeformat, Integer.valueOf(online.get("lastactivity"))+timeoffset));
onlinelists.add(online);
}
request.setAttribute("whosonline",onlinelists.size()>0?onlinelists:null);
if(onlinenum>maxonlinelist){
membercount=Integer.valueOf(dataBaseService.executeQuery("SELECT COUNT(*) count FROM jrun_sessions WHERE uid <> '0'").get(0).get("count"));
invisiblecount=Integer.valueOf(dataBaseService.executeQuery("SELECT COUNT(*) count FROM jrun_sessions WHERE invisible = '1'").get(0).get("count"));
}
if(onlinenum<membercount){
onlinenum=Integer.valueOf(dataBaseService.executeQuery("SELECT COUNT(*) count FROM jrun_sessions").get(0).get("count"));
CookieUtil.setCookie(request, response,"onlineusernum", String.valueOf(onlinenum), 300, true, settings);
}
onlines=null;
}
request.setAttribute("membercount", membercount);
request.setAttribute("invisiblecount", invisiblecount);
request.setAttribute("guestcount", onlinenum - membercount);
}
onlinelist=null;
request.setAttribute("onlinenum", onlinenum);
onlineinfo[1]=Common.gmdate(dateformat, Integer.valueOf(onlineinfo[1])+timeoffset);
request.setAttribute("onlineinfo",onlineinfo);
request.setAttribute("detailstatus",detailstatus);
}
else{
whosonlinestatus=0;
}
request.setAttribute("whosonlinestatus",whosonlinestatus>0?true:false);
}
request.setAttribute("collapseMap", collapseMap);
request.setAttribute("collapseimgMap", collapseimgMap);
request.setAttribute("posts", posts);
request.setAttribute("threads", threads);
request.setAttribute("todayposts", todayposts);
String rsshead = null;
String rssauth = "0";
String rssstatus = settings.get("rssstatus");
if("1".equals(rssstatus)){
if(member!=null){
Md5Token md5 = Md5Token.getInstance();
rssauth = Common.encode(Common.authcode(member.getUid()+"\t\t"+md5.getLongToken(member.getPassword()+member.getSecques()).substring(0,8), "ENCODE", md5.getLongToken(settings.get("authkey")),null));
}
String boardurl = (String)session.getAttribute("boardurl");
rsshead = "<link rel=\"alternate\" type=\"application/rss+xml\" title=\""+settings.get("bbname")+"\" href=\""+boardurl+"rss.jsp?auth="+rssauth+"\" />\n";
}
request.setAttribute("rssauth", rssauth);
request.setAttribute("rsshead", rsshead);
settings=null;
return mapping.findForward("toJsprun");
}
private String[] getcacheinfo(int tid,String cachethreaddir){
String [] cache = new String[2];
String tidmd5 = Base64Encoder.encode(tid+"","utf-8");
String fulldir = cachethreaddir+"/"+tidmd5.charAt(0)+"/"+tidmd5.charAt(1)+"/"+tidmd5.charAt(2)+"/";
String filename = fulldir+tid+".htm";
File file = new File(filename);
cache[0] = filename;
if(file.exists()){
String lastmodifile = file.lastModified()+"";
if(lastmodifile.length()>10){
cache[1] = lastmodifile.substring(0,10);
}
}else{
cache[1] = "0";
File fullfile = new File(fulldir);
if(!fullfile.exists()){
for(int i=0;i<3;i++){
cachethreaddir +="/"+tidmd5.charAt(i);
File dirfile = new File(cachethreaddir);
if(!dirfile.exists()){
dirfile.mkdir();
}
}
}
fullfile=null;
}
file=null;
return cache;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -