📄 footermanageaction.java
字号:
package cn.jsprun.struts.foreg.actions;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.Set;
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.Members;
import cn.jsprun.domain.Threads;
import cn.jsprun.service.otherset.CronsSetService;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.DataParse;
public class FooterManageAction extends DispatchAction {
private CronsSetService cronsService = (CronsSetService)BeanFactory.getBean("cronsSetService");
private DataParse dataParse = (DataParse) BeanFactory.getBean("dataParse");
private boolean cronRunning = false;
@SuppressWarnings("unchecked")
public ActionForward header(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
Map<String, String> settings = (Map<String, String>) request.getAttribute("settings");
request.setAttribute("plugins",dataParse.characterParse(settings.get("plugins"), false));
return null;
}
@SuppressWarnings("unchecked")
public ActionForward footer(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
HttpSession session=request.getSession();
Map<String, String> settings = (Map<String, String>) request.getAttribute("settings");
Members member = (Members) session.getAttribute("user");
String styleid=request.getParameter("styleid");
if(member!=null&&styleid!=null)
{
member.setStyleid(Common.toDigit(styleid, 255L, 0L).shortValue());
Common.updateMember(session, member.getUid());
}
if("1".equals(settings.get("stylejumpstatus"))){
request.setAttribute("stylejump", dataParse.characterParse(settings.get("stylejump"),true));
}
Common.updatesession(request,settings);
this.showAdvertisements(request,settings);
String cronnextrun = settings.get("cronnextrun");
int timestamp=(Integer)request.getAttribute("timestamp");
float timeoffset=(Float)session.getAttribute("timeoffset");
String dateformat=(String)session.getAttribute("dateformat");
String timeformat=(String)session.getAttribute("timeformat");
if(cronnextrun!=null&&!cronnextrun.equals("0")&&Integer.valueOf(cronnextrun)<timestamp&&!cronRunning){
cronRunning = true;
cronsService.cronsRun(timestamp,servlet.getServletContext().getRealPath("/"),request,response);
cronRunning = false;
}
Map timenow=new HashMap();
String offset=String.valueOf(timeoffset);
int index=offset.indexOf(".0");
if(index>0){
offset=offset.substring(0,index);
}
timenow.put("offset",timeoffset >= 0 ? (timeoffset == 0 ? "" : "+"+offset) : offset);
timenow.put("time",Common.gmdate(dateformat+" "+timeformat,timestamp,timeoffset));
request.setAttribute("timenow", timenow);
if("1".equals(settings.get("debug")))
{
long starttime=(Long)request.getAttribute("starttime");
long endtime=System.currentTimeMillis();
Map<String,String> debuginfo=new HashMap<String,String>();
debuginfo.put("time", Common.number_format((endtime-starttime)/1000f, "0.000000"));
debuginfo.put("queries","0");
request.setAttribute("debuginfo",debuginfo);
}
settings=null;
return null;
}
@SuppressWarnings("unchecked")
private void showAdvertisements(HttpServletRequest request,Map<String,String> settings)
{
Map<String,String> _DCACHE_advsMap=(Map<String,String>)request.getAttribute("advs");
Map globaladvs=dataParse.characterParse(settings.get("globaladvs"),false);
Map<String,Map<String,String>> advarray=new HashMap<String, Map<String,String>>();
Map<String,String> advitems=new HashMap<String, String>();
if(_DCACHE_advsMap!=null)
{
Map _DCACHE_advs =dataParse.characterParse(_DCACHE_advsMap!=null?_DCACHE_advsMap.get("advs"):null,false);
_DCACHE_advsMap=null;
Map<String,Map<String,String>> advs=(Map<String,Map<String,String>>)_DCACHE_advs.get("type");
advitems=(Map<String,String>)_DCACHE_advs.get("items");
if(advitems==null)
{
advitems=new HashMap<String, String>();
}
String curscript=(String)request.getAttribute("CURSCRIPT");
curscript=curscript!=null?curscript:"";
Short fid=(Short)request.getAttribute("fid");
if(fid==null)
{
Threads thread=(Threads)request.getAttribute("thread");
if(thread!=null)
{
fid=thread.getFid();
}
}
if(("forumdisplay.jsp".equals(curscript)||"viewthread.jsp".equals(curscript))&&fid!=null)
{
if(advs!=null&&advs.size()>0)
{
Set<String> keys=advs.keySet();
for (String type : keys) {
Map<String,String> advitem=advs.get(type);
Map<String,String> map=new HashMap<String, String>();
String advids=advitem.get("forum_"+fid);
String advid=advitem.get("forum_all");
if(advid!=null)
{
map.put("forum_"+fid,advid);
}
if(advids!=null)
{
advids=advid!=null?advid+","+advids:advids;
map.put("forum_"+fid, advids);
}
if(map.size()>0)
{
if(type.length()>5&&type.substring(0,6).equals("thread"))
{
String threadtype=type.substring(0,7);
Map<String,String> advthreadtypes=advarray.get(threadtype);
if(advthreadtypes==null)
{
advthreadtypes=new HashMap<String, String>();
}
advthreadtypes.put(type.substring(8),map.get("forum_"+fid));
advarray.put(threadtype, advthreadtypes);
}else{
advarray.put(type, map);
}
}
}
advs=advarray;
}
}
if(globaladvs!=null&&globaladvs.size()>0)
{
if(advs==null)
{
advs=new HashMap<String,Map<String,String>>();
}
Map<String,Map<String,String>> types=(Map<String,Map<String,String>>)globaladvs.get("type");
if(types!=null)
{
Set<String> keys=types.keySet();
for (String type : keys) {
Map<String,String> advitem=advs.get(type);
Map<String,String> typeitems=types.get(type);
if(advitem!=null&&advitem.size()>0)
{
Set<String> objs=advitem.keySet();
for (String obj : objs) {
String advids=advitem.get(obj.trim());
String advid=typeitems.get("all");
if(advids!=null)
{
advids+=","+advid;
advitem.put(obj.trim(), advids);
}else{
advitem.put(obj.trim(), advid);
}
}
}else{
advitem=new HashMap<String, String>();
advitem.putAll(typeitems);
}
advs.put(type, advitem);
}
advitems.putAll((Map<String,String>)globaladvs.get("items"));
}
types=null;
}
advarray=advs;
advs=null;
}
else{
if(globaladvs!=null&&globaladvs.size()>0)
{
advarray=(Map<String,Map<String,String>>)globaladvs.get("type");
advitems =(Map<String,String>)globaladvs.get("items");
if(advitems==null)
{
advitems=new HashMap<String, String>();
}
}
}
globaladvs=null;
if(advarray!=null&&advarray.size()>0)
{
Map<String,Map<String,String>> advlist=new HashMap<String, Map<String,String>>();
Map<String,Map<Integer,String>> advthreads=new HashMap<String, Map<Integer,String>>();
Set<String> keys =advarray.keySet();
Random rand=new Random();
for (String advtype : keys) {
Map<String,String> advcodes=advarray.get(advtype);
Set<String> objs=advcodes.keySet();
if(advtype.length()>5&&advtype.substring(0,6).equals("thread"))
{
Map<Integer,String> advtypes=advthreads.get(advtype);
if(advtypes==null)
{
advtypes=new HashMap<Integer, String>();
}
int ppp=Common.toDigit(settings.get("wapppp"), 1000000000L, 0L).intValue();
for (int i = 1; i <= ppp; i++) {
String advid=advcodes.get(String.valueOf(i));
if(advid==null)
{
advid=advcodes.get("0");
}
if(advid!=null)
{
String[] advids=advid.split(",");
advtypes.put(i-1, advitems.get(advids[rand.nextInt(advids.length)]));
}
}
advthreads.put(advtype, advtypes);
}
else if("intercat".equals(advtype))
{
for (String obj : objs) {
String[] advid=advcodes.get(obj).split(",");
advcodes.put(obj, advid[rand.nextInt(advid.length)]);
}
advlist.put("intercat",advcodes);
}else{
if("text".equals(advtype))
{
for (String obj : objs) {
String[] advids=advcodes.get(obj).split(",");
float advcols=0;
float advcount=advids.length;
if(advcount>5)
{
float minfillpercent=0;
for (float cols = 5; cols >=3; cols--) {
float remainder=advcount%cols;
if(remainder==0){
advcols=cols;
break;
}
else if(remainder/cols>minfillpercent){
minfillpercent=remainder/cols;
advcols=cols;
}
}
}else{
advcols=advcount;
}
String advtypestr="";
for (int i = 0; i < advcols*Math.ceil(advcount / advcols); i++) {
advtypestr+=((i + 1) % advcols == 1 || advcols == 1 ? "<tr>" : "")+"<td width=\""+(100 / advcols)+"%\">"+(i<advcount? advitems.get(advids[i]) : " ")+"</td>"+((i + 1) % advcols == 0 ? "</tr>\n" :"");
}
advcodes.put(obj, advtypestr);
}
advlist.put(advtype, advcodes);
}
else{
for (String obj : objs) {
String[] advid=advcodes.get(obj).split(",");
advcodes.put(obj, advid[rand.nextInt(advid.length)]);
}
advlist.put(advtype, advcodes);
}
}
}
request.setAttribute("advlist", advlist);
request.setAttribute("advthreads", advthreads);
request.setAttribute("advitems", advitems);
advitems=null;
advthreads=null;
advlist=null;
}
advarray=null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -