lib/functions/global.func.php
1 /** 2 * 分页函数 3 * 4 * @param $num 信息总数 5 * @param $curr_page 当前分页 6 * @param $perpage 每页显示数 7 * @param $urlrule URL规则 8 * @param $array 需要传递的数组,用于增加额外的方法 9 * @return 分页 10 */ 11 function pages($num, $curr_page, $perpage = 20, $urlrule = '', $array = array(),$setpages = 10) { 12 if(defined('URLRULE') && $urlrule == '') { 13 $urlrule = URLRULE; 14 $array = $GLOBALS['URL_ARRAY']; 15 } elseif($urlrule == '') { 16 $urlrule = url_par('page={$page}'); 17 } 18 $multipage = ''; 19 if($num > $perpage) { 20 $page = $setpages+1; 21 $offset = ceil($setpages/2-1); 22 $pages = ceil($num / $perpage); 23 if (defined('IN_ADMIN') && !defined('PAGES')) define('PAGES', $pages); 24 $from = $curr_page - $offset; 25 $to = $curr_page + $offset; 26 $more = 0; 27 if($page >= $pages) { 28 $from = 2; 29 $to = $pages-1; 30 } else { 31 if($from <= 1) { 32 $to = $page-1; 33 $from = 2; 34 } elseif($to >= $pages) { 35 $from = $pages-($page-2); 36 $to = $pages-1; 37 } 38 $more = 1; 39 } 40 //$multipage .= '<a class="a1">'.$num.L('page_item').'</a>'; 41 $multipage .= '<span class="pages_num">'; 42 if($curr_page>0) { 43 //$multipage .= ' <a href="'.pageurl($urlrule, $curr_page-1, $array).'" class="a1">'.L('previous').'</a>'; 44 $multipage .= ' <a href="'.pageurl($urlrule, $curr_page-1, $array).'" class="page_back"></a>'; 45 if($curr_page==1) { 46 //$multipage .= ' <span>1</span>'; 47 $multipage .= '<a class="page_view">1</a>'; 48 } elseif($curr_page>6 && $more) { 49 $multipage .= ' <a href="'.pageurl($urlrule, 1, $array).'">1</a>..'; 50 } else { 51 $multipage .= ' <a href="'.pageurl($urlrule, 1, $array).'">1</a>'; 52 } 53 } 54 for($i = $from; $i <= $to; $i++) { 55 if($i != $curr_page) { 56 $multipage .= ' <a href="'.pageurl($urlrule, $i, $array).'">'.$i.'</a>'; 57 } else { 58 //$multipage .= ' <span>'.$i.'</span>'; 59 $multipage .= $i; 60 } 61 } 62 $goto = ''; 63 if($num > 1) { 64 $goto = '<span class="pages_go">转到页面 <input class="input1" type="text" onkeydown="javascript:if(event.keyCode==13){var page=(this.value>'.$pages.')?'.$pages.':this.value;location=\''.$curr_page.'page=\'+page+\'\'}" value="'.$curr_page.'"><input class="sure_btn" type="button" value="确定" onclick="javascript:var page=(this.previousSibling.value>'.$pages.')?'.$pages.':this.previousSibling.value;location=\''.pageurl($urlrule,'\'+page+\'', $array).'\'"> </span>'; 65 } 66 if($curr_page<$pages) { 67 if($curr_page<$pages-5 && $more) { 68 //$multipage .= ' ..<a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">'.L('next').'</a>'; 69 $multipage .= ' ..<a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="page_next"></a>'; 70 } else { 71 //$multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">'.L('next').'</a>'; 72 $multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="page_next"></a>'; 73 } 74 } elseif($curr_page==$pages) { 75 //$multipage .= ' <span>'.$pages.'</span> <a href="'.pageurl($urlrule, $curr_page, $array).'" class="a1">'.L('next').'</a>'; 76 $multipage .= '<a class="page_view">'.$pages.'</a><a href="'.pageurl($urlrule, $curr_page, $array).'" class="page_next"></a>'; 77 } else { 78 //$multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">'.L('next').'</a>'; 79 $multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="page_next"></a>'; 80 } 81 $multipage .=$goto.'<span>'; 82 } 83 return $multipage; 84 }
样式:
#pagesNav { padding-bottom:20px;margin-top:10px;text-align:center;clear:both;}
#pagesNav .pages_num { display:inline-block;line-height:25px;padding-right:10px;}
#pagesNav .pages_num a {display:block;float:left;width: 25px;height: 25px;margin-right: 10px; text-align: center; border:1px solid #e8e8e8;border-radius: 2px;background: #fff; color:#898989;font-size:12px;text-decoration:none;}
#pagesNav .pages_num .page_view { background-color:#a50100;color:#fff;border:1px solid #a50100;border-radius: 2px;}
#pagesNav .pages_num a:hover{ background-color:#a50100;color:#fff;border:1px solid #a50100;border-radius: 2px;}
#pagesNav .pages_num .page_back {text-indent: -999em; background: url("../img/page_1.jpg") no-repeat center;}
#pagesNav .pages_num .page_next {text-indent: -999em; background: url("../img/page_2.jpg") no-repeat center;}
#pagesNav .pages_go { display:inline-block;line-height:25px;overflow:hidden;}
#pagesNav .pages_go form { float:left;margin:0;}
#pagesNav .pages_go .input1 {margin-right: 5px; height: 20px;width: 38px;}
#pagesNav .pages_go .input2 { margin:-1px 0 0 10px;}