解决emlog首页和分类页的分页样式问题

在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=\"首页\">&laquo;</a><em>...</em>$re";
if ($page + 5 < $pnums)
$re .= "<em>...</em> <a href=\"$url$pnums$anchor\" title=\"尾页\">&raquo;</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;
}

THE END
打赏
海报
解决emlog首页和分类页的分页样式问题
在emlog中,提供了一个简单的分页功能,并且在样式表中也没有好好的定义这个东西,导致emlog的日志列表分页很难看,是相当的丑陋,当然你可以直接通过样式表的控制操作分页,那样效果还是不是很理想的,下面就提……
<<上一篇
下一篇>>