时间:2021-07-01 10:21:17 帮助过:11人阅读
- /** * 分页函数 * * @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 .= ''.$num.L('page_item').'';
- if($curr_page>0) {
- $multipage .= ' '.L('previous').'';//上一页功能
- if($curr_page==1) {
- $multipage .= ' <span>1</span>';
- } elseif($curr_page>6 && $more) {
- $multipage .= ' 1..';
- } else {
- $multipage .= ' 1';
- }
- }
- for($i = $from; $i <= $to; $i++) {
- if($i != $curr_page) {
- $multipage .= ' '.$i.'';
- } else {
- $multipage .= ' <span>'.$i.'</span>';
- }
- }
- if($curr_page<$pages) {
- if($curr_page<$pages-5 && $more) {
- $multipage .= ' ..'.$pages.' '.L('next').'';//下一页功能
- } else {
- $multipage .= ' '.$pages.' '.L('next').'';
- }
- } elseif($curr_page==$pages) {
- $multipage .= ' <span>'.$pages.'</span> '.L('next').'';
- } else {
- $multipage .= ' '.$pages.' '.L('next').'';
- }
- }
- 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){="" for(var="" i="_page.pagenow+1;i<_page.page;i++){" 在初始化i的时候pagenow要么是已经完成了的第一页,要么是后面的其他页,所以这里需要进行处理="" 插入当前页="" insert="" page="" now="" _page.isnow="true;" 插入当前页后面的扩展页="" right="" (i<_page.totalpage)="" &&="" i<(_page.page+_page.extendpage+1)="" ;i++){="" 插入当前至最后一页中间的分页="" var="" tstart="_page.pagenow;" _page.start="_page.pagenow;//修复这个重点错误redlz2500@20140115" if(_page.pagenow+_page.extendpage<_page.totalpage){="" 中间还有空余量,插入页数="" exppow="1;_page.start+_mathexp(expbase,exppow)<_page.totalpage;exppow++){" 插入最后一页="" last="" if(_page.pagenow<_page.totalpage){="" };<="" pre=""> <p></p> <p class="sougouAnswer"> 首页和尾页是固定的,你直接在$multipage的前面加首页,后面加尾页就行了 </p></tl;i++){>