emlog修改分页样式(分页函数)方法总结[修改内核]

  本文章总结了很多种不同的关于emlog修改分页样式(分页函数)方法,下面我来给各位整理一下,有需要自行修改emlog分页样式的同学可参考参考。

    首先说到分页样式,那么主要去修改emlog的分页函数。那么emlog的分页函数在哪里呢?其实emlog的分页函数是集成在内核的基础函数库中的,所以要修改分页函数就要HACK程序(注:HACK程序前请先备份网站)。

下面来说说如何修改,emlog源程序:

1.找到文件include/lib/function.base.php中的分页函数,大概在function.base.php的220~250行(前提是你的function.base.php的原版程序)。

源程序的分页函数如下:

代码语言:javascript
复制
/**
 * 分页函数
 *
 * @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;
}

修改为

代码语言:javascript
复制
/**
 * 分页函数
 *
 * @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 = &#34;&#34;;
if($pnums&lt;=1) return false; //如果只有一页则跳出  
if($page!=1) $re .=&#34; &lt;a href=\&#34;$urlHome$anchor\&#34;&gt;首页&lt;/a&gt; &#34;; 
if($prepg) $re .=&#34; &lt;a href=\&#34;$url$prepg$anchor\&#34;&gt;前页&lt;/a&gt; &#34;;
for ($i = $page-5;$i &lt;= $page+5 &amp;&amp; $i &lt;= $pnums; $i++){
    if ($i &gt; 0){
        if ($i == $page){
            $re .= &#34; &lt;span&gt;$i&lt;/span&gt; &#34;;
        } elseif($i == 1) {
            $re .= &#34; &lt;a href=\&#34;$urlHome$anchor\&#34;&gt;$i&lt;/a&gt; &#34;;
        } else {
            $re .= &#34; &lt;a href=\&#34;$url$i$anchor\&#34;&gt;$i&lt;/a&gt; &#34;;
        }
    }
}
if($nextpg) $re .=&#34; &lt;a href=\&#34;$url$nextpg$anchor\&#34;&gt;后页&lt;/a&gt; &#34;; 
if($page!=$pnums) $re.=&#34; &lt;a href=\&#34;$url$pnums$anchor\&#34; title=\&#34;尾页\&#34;&gt;尾页&lt;/a&gt;&#34;;

#下拉跳转列表,循环列出所有页码
$re .=&#34; 跳转到第 &lt;select name=&#39;topage&#39; size=&#39;1&#39; onchange=&#39;window.location=\&#34;$url\&#34;+this.value&#39;&gt;\n&#34;;
for($i=1;$i&lt;=$pnums;$i++){
    if($i==$page) $re .=&#34;&lt;option value=&#39;$i&#39; selected&gt;$i&lt;/option&gt;\n&#34;;
    else $re .=&#34;&lt;option value=&#39;$i&#39;&gt;$i&lt;/option&gt;\n&#34;;
}
$re .=&#34;&lt;/select&gt; 页,共 $pnums 页&#34;;
return $re;

}

 当然你如果还要共几页,这个显示的话。上面删掉的最后一行不要删除而且需要修改如下:

代码语言:javascript
复制
re .=&#34;共 pnums 页";

PS:写在最后,如果不喜欢跳转的那个选择方式,还可以用填入页数跳转的分页,代码实现也差不多,我这里就不一一说明了,以后有时间或者有朋友需要的话就补上去。