⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 indexmanageaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
			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>&nbsp;&nbsp;");
											}else{
												forum.put("subforums",forum.get("subforums")+ "<a href=\"forumdisplay.jsp?fid="+ forumMap.get("fid")+ "\">"+ forumMap.get("name")+ "</a>&nbsp;&nbsp;");
											}
										}
									}
								}
							}
						}
					}
				}
				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>&nbsp;</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 + -