Emlog页码显示数量的问题-站长杂谈下载

Emlog页码显示数量的问题

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

1 u6 i! }  b, ?

全部评论 0

您需要登录后才可以回帖 立即登录
登录
0
0
0
返回顶部