在论坛上看到有人问在哪里修改页码的显示数量,奇遇大神给出了文件名。我虽然不会php,但对这类简单问题的代码修改还是颇有心得的:不外乎就是备份加试验嘛!备份加试验一向是我的法宝(谁让咱不会编程呢),我自己的模板就是这么一遍又一遍地试验鼓捣出来的。还好有本地环境,这让调试简单了许多。 找到了奇遇所说的文件和函数(include\lib\function.base.php 文件中的分页函数),发现默认的显示页码为当前页码的前5页到后5页,加上当前页码共是11页。当然这是最理想的情况,如果当前页码小于6,或者当前页码后面的页数不足5页,又或者连总页数都没有11页,自然显示不了这么多页了。 鼓捣了半天,终于弄了个固定显示数量的效果(即便没有11页,但显示的数量不会变);然后又把首页、尾页出现的条件小小修改了一下(原来是大于等于11,改为了大于11),最后上传代码。小功告成,! 当然,浪费了这么多口水,不可能不分享一下吧!下面是修改以后的分页函数:- function pagination($count,$perlogs,$page,$url,$anchor=''){
; S! W- T3 e- n O( b, x - $pnums = @ceil($count / $perlogs);
- o) x# r0 x4 F$ U" I7 [/ X - $urlHome = preg_replace("|[\?&/][^\./\?&=]*page[=/\-]|","",$url);# o4 u" i3 J! |
- $re = '';8 [+ V0 V: G- J9 U
- $pagelists = 7; //每页显示的页码数量为:$pagelists*2+1
1 O7 [' r. J* l; T - $page_begin = 1; //起始页码
0 F- {3 F. h+ @! x0 t' h# Q h+ V- l, E - $page_end = 1; //结束页码$ L, E& {! Q; ?6 Y6 e
- if ($pagelists*2+1 < $pnums){5 Z) E9 E- b" U% r) T0 n2 W5 d
- if ($page <= $pagelists+1){
0 \3 B4 w: V7 N - $page_end = $pagelists*2+1;
+ B( C3 M3 {9 R. I, j5 S5 B) t5 J - }4 Q$ L1 P, T S3 t9 t# z
- elseif ($page >= $pnums-$pagelists){
$ c; p y0 O7 V: l/ V' p - $page_begin = $pnums-$pagelists*2; $page_end = $pnums;
1 d3 J( W# F; y% f+ e5 H8 {7 P, n' S& d - }
u1 g. q# V8 w& x - else{: z! |% |; B" N3 F. ?: d% R
- $page_begin = $page-$pagelists; $page_end = $page+$pagelists;- M/ h# i& j1 ~$ I5 t
- }: i5 K5 s4 \6 \1 y& b
- }
, J" `# q1 t, U5 X# _ - elseif ($pnums > 1){
, o; z. T9 R7 h. c - $page_end = $pnums;
& _3 L# o) p, l# H9 p& [ - }
/ H5 y+ u# P) }& t5 p5 E: C9 P - for ($i = $page_begin; $i <= $page_end; $i++){4 e/ |) ~# z8 n7 A1 S" f. G$ I( M
- if ($i == $page){; p+ N& a! p6 m( I5 o& q
- $re .= " <span>$i</span> ";
4 I8 H: q- u3 W2 ]# P: j9 ? - }
% B+ B4 \ m! f3 `. E+ N. j% _ - elseif($i == 1) {7 Y8 g4 x! G9 s5 V m
- $re .= " <a href="$urlHome$anchor">$i</a> ";
$ n7 x! v) j% G: a - }: G8 I% a$ R1 ?, _1 t( V/ L
- else {7 Q$ Y3 k4 b8 i
- $re .= " <a href="$url$i$anchor">$i</a> ";: C# H+ ^+ T0 p3 K
- }
$ A7 }7 E; `3 U$ l# D2 x - }
3 D& |' n% e* p& n! ^: p - if ($pagelists*2+1 < $pnums){
! e* }) l6 E0 j$ ?; G - if ($page > $pagelists+1) $re = "<a href="{$urlHome}$anchor" title="首页">»</a><em>...</em>$re";
/ r+ \1 P7 u }; u' q6 ? - if ($page + $pagelists < $pnums) $re .= "<em>...</em> <a href="$url$pnums$anchor" title="尾页">«</a>";
- ~- t* W4 A3 E - if ($pnums <= 1) $re = '';
3 c* b6 ^$ n }5 t( Z! t* _: P - }0 c/ N, J! a2 y* i
- return $re; A7 S; s! J8 D5 A
- }
复制代码 具体的效果大家可以看看我的留言页面,至于页码的样式,请自己改CSS,这里就不啰嗦了!
1 u6 i! } b, ? |