在emlog中,提供了一个简单的分页功能,并且在样式表中也没有好好的定义这个东西,导致emlog的日志列表分页很难看,是相当的丑陋,当然你可以直接通过样式表的控制操作分页,那样效果还是不是很理想的,下面就提供一种修改核心代码(分页函数)的方式来实现这个功能。本文采用老罗的方法,分两部分进行。
一、修改分页函数
修改function.base.php中的分呢也函数(到目前为止,官方基本上对这个文件中分页函数做调整),为了安全起见,请主动备份此函数。function.base.php中 位于include/lib的文件夹中。
把原函数
/** * 分页函数 * * @param int $count 条目总数 * @param int $perlogs 每页显示条数目 * @param int $page 当前页码 * @param string $url 页码的地址 */ function pagination($count, $perlogs, $page, $url, $anchor = '') { $pnums = @ceil($count / $perlogs); $re = ''; $urlHome = preg_replace("|[\?&/][^\./\?&=]*page[=/\-]|", "", $url); for ($i = $page - 5; $i <= $page + 5 && $i <= $pnums; $i++) { if ($i > 0) { if ($i == $page) { $re .= " <span>$i</span> "; } elseif ($i == 1) { $re .= " <a href=\"$urlHome$anchor\">$i</a> "; } else { $re .= " <a href=\"$url$i$anchor\">$i</a> "; } } } if ($page > 6) $re = "<a href=\"{$urlHome}$anchor\" title=\"首页\">«</a><em>...</em>$re"; if ($page + 5 < $pnums) $re .= "<em>...</em> <a href=\"$url$pnums$anchor\" title=\"尾页\">»</a>"; if ($pnums <= 1) $re = ''; return $re; }
修改为:
/** * 分页函数 * * @param int $count 条目总数 * @param int $perlogs 每页显示条数目 * @param int $page 当前页码 * @param string $url 页码的地址 */ function pagination($count,$perlogs,$page,$url,$anchor=''){ $pnums = @ceil($count / $perlogs); $page = @min($pnums,$page); $prepg=$page-1; //上一页 $nextpg=($page==$pnums ? 0 : $page+1); //下一页 $urlHome = preg_replace("|[\?&/][^\./\?&=]*page[=/\-]|","",$url); #开始分页导航内容 $re = ""; if($pnums<=1) return false; //如果只有一页则跳出 if($page!=1) $re .=" <a href=\"$urlHome$anchor\">首页</a> "; if($prepg) $re .=" <a href=\"$url$prepg$anchor\">前页</a> "; for ($i = $page-5;$i <= $page+5 && $i <= $pnums; $i++){ if ($i > 0){ if ($i == $page){ $re .= " <span>$i</span> "; } elseif($i == 1) { $re .= " <a href=\"$urlHome$anchor\">$i</a> "; } else { $re .= " <a href=\"$url$i$anchor\">$i</a> "; } } } if($nextpg) $re .=" <a href=\"$url$nextpg$anchor\">后页</a> "; if($page!=$pnums) $re.=" <a href=\"$url$pnums$anchor\" title=\"尾页\">尾页</a>"; $re .="</select> 页,共 $pnums 页"; return $re; }
二、样式表控制
第一步,找到你模板文件中log_list.php,找到
<div class="pageNo"> <?php echo $page_url; ?> </div>
类似的代码,重点是<?php echo $page_url; ?> 看那个层的类名pageNo,如果你的class 不是pageNo,那么下边样式表中的所有pageNo就换成你的名字,例如pageupdown
第二步,找到你的模板下的main.css。添加以下样式表内容
.pageNo { text-align:left; padding-right:5px; line-height:25px; } .pageNo a,.pages em { font-size:16px; margin:2px 2px 2px 0; background:#fff; border:1px solid #ccc; color:#787878; padding:2px 5px 2px 5px; } .pageNo a:hover { background:#0196E3; border:1px solid #fff; color:#fff; } .pageNo .page { font-size:12px; margin:2px 2px 2px 0; background:#0196E3; border:1px solid #ccc; color:#FFFFFF; padding:2px 5px 2px 5px; }