下面这个分页函数中没有计算 首页和 尾页的
如何加上呢,有点迷茫!
/** * 分页函数 * * @param $num 信息总数 * @param $curr_page 当前分页 * @param $perpage 每页显示数 * @param $urlrule URL规则 * @param $array 需要传递的数组,用于增加额外的方法 * @return 分页 */function pages($num, $curr_page, $perpage = 20, $urlrule = '', $array = array(),$setpages = 10) { if(defined('URLRULE') && $urlrule == '') { $urlrule = URLRULE; $array = $GLOBALS['URL_ARRAY']; } elseif($urlrule == '') { $urlrule = url_par('page={$page}'); } $multipage = ''; if($num > $perpage) { $page = $setpages+1; $offset = ceil($setpages/2-1); $pages = ceil($num / $perpage); if (defined('IN_ADMIN') && !defined('PAGES')) define('PAGES', $pages); $from = $curr_page - $offset; $to = $curr_page + $offset; $more = 0; if($page >= $pages) { $from = 2; $to = $pages-1; } else { if($from <= 1) { $to = $page-1; $from = 2; } elseif($to >= $pages) { $from = $pages-($page-2); $to = $pages-1; } $more = 1; } $multipage .= '<a class="a1">'.$num.L('page_item').'</a>'; if($curr_page>0) { $multipage .= ' <a href="'.pageurl($urlrule, $curr_page-1, $array).'" class="a1">'.L('previous').'</a>';//上一页功能 if($curr_page==1) { $multipage .= ' <span>1</span>'; } elseif($curr_page>6 && $more) { $multipage .= ' <a href="'.pageurl($urlrule, 1, $array).'">1</a>..'; } else { $multipage .= ' <a href="'.pageurl($urlrule, 1, $array).'">1</a>'; } } for($i = $from; $i <= $to; $i++) { if($i != $curr_page) { $multipage .= ' <a href="'.pageurl($urlrule, $i, $array).'">'.$i.'</a>'; } else { $multipage .= ' <span>'.$i.'</span>'; } } if($curr_page<$pages) { if($curr_page<$pages-5 && $more) { $multipage .= ' ..<a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">'.L('next').'</a>';//下一页功能 } else { $multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">'.L('next').'</a>'; } } elseif($curr_page==$pages) { $multipage .= ' <span>'.$pages.'</span> <a href="'.pageurl($urlrule, $curr_page, $array).'" class="a1">'.L('next').'</a>'; } else { $multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">'.L('next').'</a>'; } } return $multipage;}
首页和尾页还需要计算么,1就是首页,$pages就是尾页
首页和尾页还需要计算么,1就是首页,$pages就是尾页
当然了,这里不仅仅是显示什么页的问题,还要有链接的,所以要计算啊
这里不是写了吗?
if($curr_page==1) {elseif($curr_page==$pages) {
function createPage(par){ var _page={};//存放运行中的页面信息 _page.extendpage=par.extendpage?par.extendpage:opt.extendpage; _page.totalpage=par.totalpage; //编制分页 var expbase=4; _page.page=parseInt(par.page); //用于解决js弱类型转换失败的问题 if(isNaN(_page.page) || isNaN(_page.totalpage)){ return;//分页错误,不进行操作 } opt.renderTo.empty(); opt.renderTo.append('当前页码:'+par.page+' '); //从头插入 create from begin _page.pagenow=1;//初始化分页跟踪。 if(_page.page>=_page.extendpage-1){ _page.pagenow=1; _createPage(_page,opt); } //插入中间的分页,即在之前的分页和当前的分页之间插入一些中间的分页 _page.start=_page.pagenow+1; _page.end=_page.page-_page.extendpage-1; // //中间有空余位置,可以插入数据,使用随机或者什么其他的方式来插入中间页 var tarr=[]; for(var exppow=1;_page.start<_page.end-_mathexp(expbase,exppow);exppow++){ _page.pagenow=_page.end-_mathexp(expbase,exppow); tarr.push(_page.pagenow); //_createpage(par); } var tl=tarr.length; for(var i=0;i<tl;i++){ _page.pagenow=tarr.pop(); _createPage(_page,opt); } //create left side extend if(_page.pagenow<_page.page-_page.extendpage-1){ _page.pagenow=_page.page-_page.extendpage-1; } for(var i=_page.pagenow+1;i<_page.page;i++){ //在初始化i的时候pagenow要么是已经完成了的第一页,要么是后面的其他页,所以这里需要进行处理 _page.pagenow=i; _createPage(_page,opt); } //插入当前页 insert page now _page.pagenow=_page.page; _page.isNow=true; _createPage(_page,opt); _page.isNow=false; //插入当前页后面的扩展页 create right side extend for(var i=1+_page.pagenow; (i<_page.totalpage) && i<(_page.page+_page.extendpage+1) ;i++){ _page.pagenow=i; _createPage(_page,opt); } //插入当前至最后一页中间的分页 //var tstart=_page.pagenow; _page.start=_page.pagenow;//修复这个重点错误redlz2500@20140115 if(_page.pagenow+_page.extendpage<_page.totalpage){ //中间还有空余量,插入页数 for(var exppow=1;_page.start+_mathexp(expbase,exppow)<_page.totalpage;exppow++){ _page.pagenow=_page.start+_mathexp(expbase,exppow); _createPage(_page,opt); } } //插入最后一页 insert last page if(_page.pagenow<_page.totalpage){ _page.pagenow=_page.totalpage; _createPage(_page,opt); } };
首页和尾页是固定的,你直接在$multipage的前面加首页,后面加尾页就行了