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>";
                                                             
    #下拉跳转列表,循环列出所有页码
    $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 页";

时间: 2024-11-17 01:44:01

emlog修改分页样式(分页函数)方法总结的相关文章

仿dedecms下拉分页样式修改的thinkphp分页类实例_php实例

本文实例讲述了仿dede下拉分页样式修改的thinkphp分页类.分享给大家供大家参考.具体实现方法如下: 修改thinkphp分页类:如下拉列表式分页(类似dedecms分页): 纯html代码: 复制代码 代码如下: <select name="sldd" style="width:36px" onchange="location.href=this.options[this.selectedIndex].value;"> <

ASP通用分页样式函数代码_应用技巧

<% '****************************** '函数:MultiPage(Numbers,Perpage,Curpage,Url_Add) '参数:Numbers,总记录数:Perpage,每页记录数:Curpage,当前页:Url_Add,当前页其它参数如?action=list& '作者:阿里西西 '日期:2007/7/15 '描述:ASP通用分页样式函数 '示例:MultiPage(100,10,2,"?action=list&")

帝国cm动态页面ListInfo.php分页样式在哪里修改?

帝国cm动态页面ListInfo.php分页样式在哪里修改?就是/e/action/ListInfo/?classid= 这种页面下的分页模板在哪个文件更改,好像在t_functions.php没找到,想去掉当前页的"[]"两个符号 回答:在e/class/connect.php 中修改.在这个页面搜索"前台分页"即可找到分页的代码,然后进行修改

ASP通用分页样式函数代码

<% '****************************** '函数:MultiPage(Numbers,Perpage,Curpage,Url_Add) '参数:Numbers,总记录数:Perpage,每页记录数:Curpage,当前页:Url_Add,当前页其它参数如?action=list& '作者:阿里西西 '日期:2007/7/15 '描述:ASP通用分页样式函数 '示例:MultiPage(100,10,2,"?action=list&")

Laravel 5.1 分页功能实现及自定义分页样式的例子

Laravel还为分页提供了多种实现方式,既可以基于查询构建器实现分页,也可以基于Eloquent模型进行分页,最终生成的分页视图还兼容Bootstrap CSS样式.讲到这里,估计很多人已经跃跃欲试了,想要迫不及待的看看Laravel到底是如何实现分页的,下面让我们一一道来: 1.使用查询构建器实现分页 简单分页 我们可以在查询构建器上简单调用simplePaginate方法,从而实现类似WordPress默认分页的样式(上一页.下一页这种简单的分页链接): class PostControl

AspNetPager分页控件--使用方法

分页|控件 //此源代码仅供学习参考,不得用作任何商业用途://若需修改并重新编译该控件,请保留完整的源代码的版权信息!//有关控件升级及新控件发布信息,请留意 www.webdiyer.com .using System;using System.IO;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;using System.Collect

Ajax无刷新分页的性能优化方法_AJAX相关

Ajax无刷新分页,已经是一个大家比较熟悉的事物了,大概就是web前端页面上有一个js的方法,通过Ajax去请求服务器端的分页数据接口,拿到数据后再在页面上创建html结构,展现给用户,类似于下面这样: <script type="text/javascript"> function getPage(pageIndex){ ajax({ url:" RemoteInterface.cgi", method:"get", data:{p

织梦CMS二次开发教程 实现图集缩略图的分页样式

中介交易 SEO诊断 淘宝客 云主机 技术大厅 首先织梦CMS系统不用过多介绍了,织梦好,好之梦! 织梦CMS5.7版本里默认自带有三种图集样式,模板名称分别为article_image.htm.article_image_cl.htm(新浪样式).article_image_new.htm(这个是5.7才有的图文幻灯样式).最近在做女人说的图集模板时发现dede默认的图集模板无法像文章一样实现分页样式,多次问度娘.谷哥均无果,于是仔细的对织梦的文件研究了一下发现织梦是可以实现这种样式的(如下图

thinkPHP使用post方式查询时分页失效的解决方法_php实例

本文实例讲述了thinkPHP使用post方式查询时分页失效的解决方法.分享给大家供大家参考,具体如下: 昨天晚上一直没有解决的php项目中的bug,就在刚才终于搞定,在这里还需要感谢各位大神给的帮助! 具体问题描述 最近遇到一个非常棘手的问题,也是因为刚入手thinkphp.在做项目的过程中,因为需要非常多的查询条件,如果以get方式提交表单的话,会因为url长度限制而报错,所以必须使用post方式提交表单数据,但是在分页的过程中,遇到了问题,因为thinkphp自带的分页是以a标签的形式,进