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

Emlog页码显示数量的问题

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

8 g8 o  r) J( I' [+ e

全部评论 0

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