在论坛上看到有人问在哪里修改页码的显示数量,奇遇大神给出了文件名。我虽然不会php,但对这类简单问题的代码修改还是颇有心得的:不外乎就是备份加试验嘛!备份加试验一向是我的法宝(谁让咱不会编程呢),我自己的模板就是这么一遍又一遍地试验鼓捣出来的。还好有本地环境,这让调试简单了许多。 找到了奇遇所说的文件和函数(include\lib\function.base.php 文件中的分页函数),发现默认的显示页码为当前页码的前5页到后5页,加上当前页码共是11页。当然这是最理想的情况,如果当前页码小于6,或者当前页码后面的页数不足5页,又或者连总页数都没有11页,自然显示不了这么多页了。 鼓捣了半天,终于弄了个固定显示数量的效果(即便没有11页,但显示的数量不会变);然后又把首页、尾页出现的条件小小修改了一下(原来是大于等于11,改为了大于11),最后上传代码。小功告成,! 当然,浪费了这么多口水,不可能不分享一下吧!下面是修改以后的分页函数:- function pagination($count,$perlogs,$page,$url,$anchor=''){
% O4 T9 @4 Q( V& h7 J( Q- b - $pnums = @ceil($count / $perlogs);
; H; l) l, K6 _8 \3 l4 `) {- V4 F - $urlHome = preg_replace("|[\?&/][^\./\?&=]*page[=/\-]|","",$url);* p9 e& D: R4 E2 p0 T1 q# |
- $re = '';! U6 t, F6 H: N) ^* U
- $pagelists = 7; //每页显示的页码数量为:$pagelists*2+1& K2 X) f6 g- K; h, k
- $page_begin = 1; //起始页码
; F& n% g5 H- ]% ]# l9 D' X) \" D - $page_end = 1; //结束页码5 l, `+ S# c( n* f
- if ($pagelists*2+1 < $pnums){
6 u8 Y# O" {$ a7 @ - if ($page <= $pagelists+1){
$ z; v! c( D0 R9 x1 O - $page_end = $pagelists*2+1;
7 L3 R* T* M5 @+ L2 x1 N" s( G - }! P. F' u, c1 q9 f' H/ N) e1 n
- elseif ($page >= $pnums-$pagelists){0 g9 l, h Q* V5 ~& l2 F
- $page_begin = $pnums-$pagelists*2; $page_end = $pnums;
) R: P- M. N) R9 ~7 _ - }7 Z K2 }) ]' K- X
- else{
1 C% j, m9 |, v y) j* ` - $page_begin = $page-$pagelists; $page_end = $page+$pagelists; k/ A5 \) p! e9 `
- }% a+ |& O- b: v: \& o
- }
; F* z: Z( Z F; f! ] - elseif ($pnums > 1){/ |! s+ t8 N+ I2 g. i. z* q8 ?: \
- $page_end = $pnums;8 x/ w# h; c* i: l; N" W n
- }6 `# K% z4 `7 }; {8 S
- for ($i = $page_begin; $i <= $page_end; $i++){
8 d% n, ~, d6 d$ V8 L" h* N4 {5 z - if ($i == $page){: P. j7 P: s& N
- $re .= " <span>$i</span> ";
6 J' y: v7 f+ P$ m. a# H- a - }
S8 X: U! q/ G0 D4 l K - elseif($i == 1) {
0 Z9 n/ B3 J; b5 A. n - $re .= " <a href="$urlHome$anchor">$i</a> ";" f) u% p4 `+ l6 @# }+ I: s* y
- }
A: d# a/ O9 g5 m - else {, r& J% q0 q/ x2 g5 A
- $re .= " <a href="$url$i$anchor">$i</a> ";
# C! H7 U/ i/ g0 _# I - }
+ M$ r4 p: i( h" Y - }
$ Z/ U3 d! \1 `' k - if ($pagelists*2+1 < $pnums){
4 J& y. _8 z$ I/ B6 u& x - if ($page > $pagelists+1) $re = "<a href="{$urlHome}$anchor" title="首页">»</a><em>...</em>$re";
! ?2 [( @ {6 A( k - if ($page + $pagelists < $pnums) $re .= "<em>...</em> <a href="$url$pnums$anchor" title="尾页">«</a>";9 r$ J1 Z2 y3 k4 Y' x7 B
- if ($pnums <= 1) $re = '';, ^2 Q: E; Z9 s$ [2 D( c- E# V
- }4 g7 ~. p: t- M
- return $re;
' _- W4 V3 |1 @+ L' ~ - }
复制代码 具体的效果大家可以看看我的留言页面,至于页码的样式,请自己改CSS,这里就不啰嗦了! 6 I2 t7 X& G9 ]2 _9 n: r6 b
|