本文章总结了很多种不同的关于emlog修改分页样式(分页函数)方法,下面我来给各位整理一下,有需要自行修改emlog分页样式的同学可参考参考.
方法一:不修改内核实现emlog分页的上页、下页效果.
1、先在你使用的模板的module.php文件中增加自定义的分页函数,代码如下:
- <?php
 - //blog:自定义分页函数
 - function my_page($count, $perlogs, $page, $url, $anchor = '') {
 - $pnums = @ceil($count / $perlogs);
 - $re = '';
 - $urlHome = preg_replace("|[?&/][^./?&=]*page[=/-]|", "", $url);
 - if($page > 1) {
 - $i = $page - 1;
 - $re = " <a href="".$url.$i."">上页</a> " . $re;
 - }
 - if($page < $pnums) {
 - $i = $page + 1;
 - $re .= " <a href="".$url.$i."">下页</a> ";
 - }
 - return $re;
 - }
 - ?>
 
2、在调用分页的地方(一般是log_list.php)文件加入下列代码:
- <?php
 - $page_loglist = my_page($lognum, $index_lognum, $page, $pageurl);
 - echo $page_loglist;
 - ?>
 
3、若碎语页面也要调用修改过的分页样式,则在t.php文件中加入下列代码:
- <?php
 - $page_t = my_page($twnum, Option::get('index_twnum'), $page, BLOG_URL.'t/?page=');
 - echo $page_t;
 - ?>
 
方法二,修改emlog分页函数
找到基础函数库function.base.php(位于emlog根目录/include/lib文件夹下)中的分页函数,大概在function.base.php的220~250行(前提是你的function.base.php是原版文件).
将源程序的“分页函数”替换为如下代码:
- /**
 - * 分页函数
 - *
 - * @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">尾页</a>"; //开源软件:Vevb.com
 - #下拉跳转列表,循环列出所有页码
 - $re .=" 跳转到第 <select name='topage' size='1'
 - onchange='window.location="$url"+this.value'>n";
 - for($i=1;$i<=$pnums;$i++){
 - if($i==$page) $re .="<option value='$i' selected>$i</option>n";
 - else $re .="<option value='$i'>$i</option>n";
 - }
 - $re .="</select> 页,共 $pnums 页";
 - return $re;
 - }
 
还有如果不要下拉式跳转的换,删掉以下代码就可以了:
- #下拉跳转列表,循环列出所有页码
 - $re .=" 跳转到第 <select name='topage' size='1'
 - onchange='window.location="$url"+this.value'>n";
 - for($i=1;$i<=$pnums;$i++){
 - if($i==$page) $re .="<option value='$i' selected>$i</option>n";
 - else $re .="<option value='$i'>$i</option>n";
 - }
 - $re .="</select> 页,共 $pnums 页";
 
当然你如果还要显示共几页,删掉上面代码后再在return $re;之前加上如下代码即可:
$re .="共 $pnums 页";
如果不要下拉式跳转的换,删掉以下代码就可以了.
- #下拉跳转列表,循环列出所有页码
 - $re .=" 跳转到第 <select name='topage' size='1' onchange='window.location="$url"+this.value'>n";
 - for($i=1;$i<=$pnums;$i++){
 - if($i==$page) $re .="<option value='$i' selected>$i</option>n";
 - else $re .="<option value='$i'>$i</option>n";
 - }
 - $re .="页,共 $pnums 页";
 
当然你如果还要共几页,这个显示的话,上面删掉的最后一行不要删除而且需要修改如下:
$re .="共 $pnums 页";
新闻热点
疑难解答