67,515
社区成员
发帖
与我相关
我的任务
分享
public static Map<String,Object> multi(int num,int perpage,int curpage,String mpurl,int maxpages,int page,boolean autogoto,boolean simple,String ajaxtarget,boolean isstaticurl) {
Map<String,Object> multi=new HashMap<String,Object>();
int realpages=1;
if(num>perpage){
ajaxtarget=ajaxtarget!=null?" ajaxtarget=\""+Common.htmlspecialchars(ajaxtarget)+"\" ":"";
if(!isstaticurl){
mpurl+=mpurl.indexOf("?")>=0?"&":"?";
}
int offset=2;
realpages=(int)Math.ceil((float)num/(float)perpage);
int pages = maxpages>0 && maxpages < realpages ? maxpages : realpages;
int from=0;
int to=0;
if(page>pages){
from=1;
to=pages;
}else{
from=curpage-offset;
to=from+page-1;
if(from<1){
to=curpage+1-from;
from=1;
if(to-from<page){
to=page;
}
}else if(to>pages){
from=pages-page+1;
to=pages;
}
}
StringBuffer multipage=new StringBuffer();
multipage.append((curpage - offset > 1 && pages > page ? "<a href=\""+(isstaticurl?mpurl+"-1.html":mpurl+"page=1")+"\" class=\"first\""+ajaxtarget+">1 ...</a>" : ""));
multipage.append((curpage > 1 && !simple ? "<a href=\""+(isstaticurl?mpurl+"-"+(curpage - 1)+".html":mpurl+"page="+(curpage - 1))+"\" class=\"prev\""+ajaxtarget+">‹‹</a>" : ""));
for (int i = from; i <= to; i++) {
multipage.append(i == curpage ? "<strong>"+i+"</strong>":"<a href=\""+(isstaticurl?mpurl+"-"+i+".html":mpurl+"page="+i)+(ajaxtarget.length()>0 && i == pages && autogoto ? "#" : "")+"\""+ajaxtarget+">"+i+"</a>");
}
multipage.append((curpage < pages && !simple ? "<a href=\""+(isstaticurl?mpurl+"-"+(curpage + 1)+".html":mpurl+"page="+(curpage + 1))+"\" class=\"next\""+ajaxtarget+">››</a>" : ""));
multipage.append(to < pages ? "<a href=\""+(isstaticurl?mpurl+"-"+pages+".html":mpurl+"page="+pages)+"\" class=\"last\""+ajaxtarget+">... "+realpages+"</a>" : "");
multipage.append(!simple && pages > page && ajaxtarget.length()==0 ? "<kbd><input type=\"text\" name=\"custompage\" size=\"3\" onkeydown=\"if(event.keyCode==13) {window.location=\'"+(isstaticurl?mpurl+"-'+this.value+'.html'":mpurl+"page=\'+this.value")+"; return false;}\" /></kbd>" : "");
multi.put("multipage", "<div class=\"pages\">"+(!simple ? "<em> "+num+" </em>" : "")+multipage+"</div>");
}
multi.put("maxpage",realpages);
return multi;
}