在论坛上看到有人问在哪里修改页码的显示数量,奇遇大神给出了文件名。我虽然不会php,但对这类简单问题的代码修改还是颇有心得的:不外乎就是备份加试验嘛!备份加试验一向是我的法宝(谁让咱不会编程呢),我自己的模板就是这么一遍又一遍地试验鼓捣出来的。还好有本地环境,这让调试简单了许多。 找到了奇遇所说的文件和函数(include\lib\function.base.php 文件中的分页函数),发现默认的显示页码为当前页码的前5页到后5页,加上当前页码共是11页。当然这是最理想的情况,如果当前页码小于6,或者当前页码后面的页数不足5页,又或者连总页数都没有11页,自然显示不了这么多页了。 鼓捣了半天,终于弄了个固定显示数量的效果(即便没有11页,但显示的数量不会变);然后又把首页、尾页出现的条件小小修改了一下(原来是大于等于11,改为了大于11),最后上传代码。小功告成,! 当然,浪费了这么多口水,不可能不分享一下吧!下面是修改以后的分页函数:- function pagination($count,$perlogs,$page,$url,$anchor=''){
: e- U! N- J. r1 R. X3 T# l - $pnums = @ceil($count / $perlogs);
# d y, [9 `4 V0 z2 ?' s - $urlHome = preg_replace("|[\?&/][^\./\?&=]*page[=/\-]|","",$url);
( [! ^ ?- | ?7 F8 V( n - $re = '';5 y- V9 D' b; A
- $pagelists = 7; //每页显示的页码数量为:$pagelists*2+1
- w: ]+ o& @5 R3 k/ S) g: J% d8 T8 I3 z - $page_begin = 1; //起始页码! C7 t4 X1 {/ c
- $page_end = 1; //结束页码, B, w# g9 Z5 w5 R5 s8 ^! A0 Q
- if ($pagelists*2+1 < $pnums){
3 ]2 c, F# y# }& g3 w: A - if ($page <= $pagelists+1){
5 y7 F& l* P' [" Z! } - $page_end = $pagelists*2+1;$ I1 q0 H. q! a
- }; W) i9 w& ^9 _4 g- p: U. }# C
- elseif ($page >= $pnums-$pagelists){
9 l2 b$ T5 t* x/ i8 ~ - $page_begin = $pnums-$pagelists*2; $page_end = $pnums;% w8 X6 A1 m. r7 R7 @, U+ W5 |
- }8 Z' j; i: H5 D
- else{
( \' J g \- c$ ?0 g! k - $page_begin = $page-$pagelists; $page_end = $page+$pagelists;9 z7 y# {& m- B# @' m( t2 ~2 b- Y. q
- }
9 ^$ p8 X2 U V/ P4 j. K( t9 a - }
9 ^) N' w+ g" u/ T( M - elseif ($pnums > 1){
, M S& F7 b# j! M! E' M9 W9 o# o - $page_end = $pnums;
; P- X7 _, J) q, b4 ~ - }
' [% E/ g* a: l" I) }* | - for ($i = $page_begin; $i <= $page_end; $i++){ |' ^! b% U; ]3 D( w% K- C( J- `: U
- if ($i == $page){
4 s, J0 o+ s/ B" P, g1 v - $re .= " <span>$i</span> ";' p5 i" U. g+ n8 m
- }
! I" y& ^% A! j, C. r - elseif($i == 1) {1 k, g! K# T7 x& f/ ]# z) r
- $re .= " <a href="$urlHome$anchor">$i</a> ";: U7 T5 M; V+ [6 y
- }
4 `9 g) k# J8 k. a: Z' T: [ - else {
* y* J0 P% w# | - $re .= " <a href="$url$i$anchor">$i</a> ";4 T/ h1 Y5 U& g' W$ W
- }) I& m& X$ y" P& i
- }
% f; v) k. t* ~4 o2 ~/ P - if ($pagelists*2+1 < $pnums){2 Q0 U- N- \" k, Y" b
- if ($page > $pagelists+1) $re = "<a href="{$urlHome}$anchor" title="首页">»</a><em>...</em>$re";
0 B1 L( X4 N( j& w3 m' J5 ~ - if ($page + $pagelists < $pnums) $re .= "<em>...</em> <a href="$url$pnums$anchor" title="尾页">«</a>";
1 S/ P/ C; d! I5 B, { - if ($pnums <= 1) $re = ''; b* d9 o5 I h- J* |6 [
- }
% @% |5 [6 ^( r: J ] I( ] - return $re;( Y2 O2 q3 w& o; R1 O. [+ N
- }
复制代码 具体的效果大家可以看看我的留言页面,至于页码的样式,请自己改CSS,这里就不啰嗦了!
8 g8 o r) J( I' [+ e |