http://bbs.phome.net/showthread-31-318753-0.html

如果你的网站使用的是帝国CMS。PC站和手机站各使用一个模板组,但共同使用一个数据库。那么你的PC站和手机站,列表分页样式是一样的吗?

今天<a href="http://www.thy6415.com">嗨分享-前端技术</a>将带你感受不一样的分页样式!

PC站可以把分页按1、2、3、4。。。这样并排 列出来,但手机站是万万不可以这样做的,否则手机屏幕小,分页看着都好长,一点都不美观。

帝国CMS的PC站可以使用[!--show.listpage--]调用列表形式的列表分页函数(sys_ShowListMorePage)。

一旦PC站使用[!--show.listpage--],那么手机站也将使用[!--show.listpage--]调用列表形式的列表分页函数(sys_ShowListMorePage)。--因为他们使用的是同一个数据库。

而通常的手机站应该调用下拉形式的列表分页函数(sys_ShowListPage)

这样目标已经很明显了。手机站同PC站一样使用列表形式的列表分页函数(sys_ShowListMorePage),只需要将手机站的sys_ShowListMorePage函数主体内容,改成下拉形式的列表分页函数(sys_ShowListPage)的主体内容。只不过函数名称没有变而已。

在手机站的e/class/t_function.php文件中修改以下内容:

一、找到并复制sys_ShowListPage函数主体内容。

复制function sys_ShowListPage(到结束的}之间的内容。

二、粘贴给sys_ShowListMorePage函数,再进行修改,让适用帝国CMS手机站,这里给出我最终的修改版:


//列表模板之列表式分页 
function sys_ShowListMorePage($num,$pagenum,$dolink,$dotype,$page,$lencord,$ok,$search="",$add){ 
    global $fun_r; 
    //文件名 
    if(empty($add['dofile'])) 
    { 
        $add['dofile']='index'; 
    } 
    //静态页数 
    $repagenum=$add['repagenum']; 
    //首页 
    if($pagenum<>1) 
    { 
        $pagetop="<a href='".$dolink.$add['dofile'].$dotype."'>".$fun_r['startpage']."</a>&nbsp;&nbsp;"; 
    } 
    else 
    { 
        $pagetop=$fun_r['startpage']."&nbsp;&nbsp;"; 
    } 
    //上一页 
    if($pagenum<>1) 
    { 
        $pagepr=$pagenum-1; 
        if($pagepr==1) 
        { 
            $prido=$add['dofile'].$dotype; 
        } 
        else 
        { 
            $prido=$add['dofile'].'_'.$pagepr.$dotype; 
        } 
        $pagepri="<a href='".$prido."'>".$fun_r['pripage']."</a>&nbsp;&nbsp;"; 
    } 
    else 
    { 
        $pagepri=$fun_r['pripage']."&nbsp;&nbsp;"; 
    } 
    echo $dolink; 
    //下一页 
    if($pagenum<>$page) 
    { 
        $pagenex=$pagenum+1; 
        $nextpagelink=$repagenum&&$repagenum<$pagenex?eReturnRewritePageLink2($add,$pagenex):$add['dofile'].'_'.$pagenex.$dotype; 
        $pagenext="<a href='".$nextpagelink."'>".$fun_r['nextpage']."</a>&nbsp;&nbsp;"; 
    } 
    else 
    { 
        $pagenext=$fun_r['nextpage']."&nbsp;&nbsp;"; 
    } 
    //尾页 
    if($pagenum==$page) 
    { 
        $pageeof=$fun_r['lastpage']; 
    } 
    else 
    { 
        $lastpagelink=$repagenum&&$repagenum<$page?eReturnRewritePageLink2($add,$page):$dolink.$add['dofile'].'_'.$page.$dotype; 
        $pageeof="<a href='".$lastpagelink."'>".$fun_r['lastpage']."</a>"; 
    } 
    $options=""; 
    //取得下拉页码 
    if(empty($search)) 
    { 
        for($go=1;$go<=$page;$go++) 
        { 
            if($go==1) 
            {$file=$add['dofile'].$dotype;} 
            else 
            {$file=$add['dofile'].'_'.$go.$dotype;} 
            $thispagelink=$repagenum&&$repagenum<$go?eReturnRewritePageLink2($add,$go):$file; 
            if($ok==$go) 
            {$select=" selected";} 
            else 
            {$select="";} 
            $myoptions.="<option value='".$thispagelink."'>".$fun_r['gotos'].$go.$fun_r['gotol']."</option>"; 
            $options.="<option value='".$thispagelink."'".$select.">".$fun_r['gotos'].$go.$fun_r['gotol']."</option>"; 
        } 
    } 
    else 
    { 
        $myoptions=$search; 
        $options=str_replace("value='".$add['dofile'].'_'.$ok.$dotype."'>","value='".$add['dofile']."_".$ok.$dotype."' selected>",$search); 
    } 
    $options="<select name=select onchange=\"self.location.href=this.options[this.selectedIndex].value\">".$options."</select>"; 
    //分页 
    //thy -- $pagelink=$pagetop.$pagepri.$pagenext.$pageeof; -- 将上一页和下一页拆分开: 
    $pagepri=$pagepri; 
    $pagenext=$pagenext; 
    //替换模板变量 
    //thy -- $pager['showpage']=ReturnListpageStr($pagenum,$page,$lencord,$num,$pagelink,$options);  
    //-- 返回到function.php中的ReturnListpageStr()函数,在ReturnListpageStr()函数中添加'页次'、'总页数'、'总条数'等。 
    //-- 在手机站中不需要这些,所以不用返回 
    $pager['showpage']='<div class="pageList">'.$pagepri.$options.$pagenext.'</div>'; 
    $pager['option']=$myoptions; 
    return $pager; 
}


一些注释:

手机站上分页只需要“上一页”、“下一页”、“下拉分页”。同时将“上一页”、“下一页”分开,按“上一页”、“下拉分页”、“下一页”的顺序排列。
$dolink获取的是当前栏目的地址。如:http://www.thy6415.com/moban/。但手机站应该是http://www.thy6415.com/wap/moban/或m.thy6415.com/moban/。所以要把$dolink去掉。地址直接使用index_*.html

嗨分享-前端技术-帝国CMS手机站修改列表分页(sysShowListMorePage)的更多相关文章

  1. 帝国cms建站总结-(分页)

    帝国cms分页代码文件t_functions.php 代码为: <?php if(!defined('InEmpireCMS')) { exit(); } define('InEmpireCMS ...

  2. 帝国cms 7.5版列表页分页样式修改笔记

    最近在用帝国改版我的个人博客站点,这个也是我第一次尝试用帝国来做博客,之前用过wordpress,每用一个新的程序,都会有些新的收获,也会学到一些新的东西. 在改用帝国之前,我也在网上大概了解了一下, ...

  3. 微信的分享功能(针对web手机站页面进行的分享功能)

    把这段js粘贴进,设置可以分享的页面,当微信打开,即可微信进行分享各个圈 $(function(){ var lujing=$("#logimg").attr("src& ...

  4. 帝国cms建站-动态获取栏目id

    <?php $fcr=explode('|',$class_r[$GLOBALS[navclassid]][featherclass]); $topbclassid=$fcr[1]?$fcr[1 ...

  5. 帝国cms 灵动标签【列表页】调用当前父栏目下的所有子栏目

    <? $bclassid = $class_r[$GLOBALS[navclassid]][bclassid]; //获取当前父栏目ID ?> [e:loop={"select ...

  6. Dedecms手机站三种不同建设方法和优劣分析

    dedecms简单易用功能强大,是国内使用最多的cms建站系统,百度站长平台专门推出了“织梦移动化指南”,由此可见dedecms的影响力.织梦也是站长使用和学习最早的cms建站系统,解放了我的双手,让 ...

  7. 帝国cms栏目别名如何调用?

    我们在用帝国cms建站时经常会发现栏目的标题不好设置,栏目名称太长的话在后台那边看了眼花,太短又不好优化.能不能直接调用栏目别名呢?栏目别名不会什么影响.那么,帝国cms栏目别名怎么调用呢?和ytka ...

  8. 帝国cms如何调用栏目别名作为分类标题?[!--classname--]标签不能用

    用帝国cms建站安全性和生成速度会比dedecms好些,但ecms有个比较不方便的地方就是后台默认模板栏目那边没有一个seo标题设置的输入框,列表模板用的是[!--pagetitle--]标签,那么分 ...

  9. 帝国cms调用缩略图和具体文章的方法

    我们在用帝国cms建站的时候经常会在首页或者分类页等调用一些文章,如果文章带有展示图也把图片调用出来.帝国cms调用缩略图和具体文章怎么操作呢?我们用帝国cms的灵动标签[e:loop],只要记住常用 ...

随机推荐

  1. C# 扩展

    “扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型.” 这是msdn上说的,也就是你可以对String,Int,DataRow,DataTable等这些 ...

  2. java servlet上传文件并把文件内容显示在网页中

    servlet3.0(JDK1.6)自带的API即可实现本地文件的上传,Servlet3.0新增了Part接口,HttpServletRequest的getPart()方法取得Part实现对象.下面我 ...

  3. Windows API学习---线程与内核对象的同步

    前言 若干种内核对象,包括进程,线程和作业.可以将所有这些内核对象用于同步目的.对于线程同步来说,这些内核对象中的每种对象都可以说是处于已通知或未通知的状态之中.这种状态的切换是由Microsoft为 ...

  4. jQuery插件开发方式

    一.jQuery扩展 1.$.extend(object) 类似于.Net的扩展方法,用于扩展jQuery.然后就可以用$.的方式调用. $(function(){ $.extend({ fun1: ...

  5. swat主流域文件(file.cio)参数详解——引自http://blog.sciencenet.cn/blog-922140-710636.html

    % file.clo,即主流域文件用于文件管理,包括与模型选项.气候输入.数据库和输出控制相关的信息. Master Watershed File: file.cio Project Descript ...

  6. 简单的使用AngularJS的解析JSON

    使用AngularJS+Struts2进行前后台的数据交互与显示. struts.xml 配置文件需要将设置extends="json-default"  type="j ...

  7. WPF和WINFORM的互操作

    在WPF中使用Winform控件 <Window x:Class="WPFApplication.Window1" xmlns="http://schemas.mi ...

  8. JS常用的设计模式(9)——策略模式

    策略模式的意义是定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换.一个小例子就能让我们一目了然. 回忆下jquery里的animate方法. $( div ).animate( {&quo ...

  9. 最简单删除SQL Server中所有数据的方法

     最简单删除SQL Server中所有数据的方法 编写人:CC阿爸 2014-3-14 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间 ...

  10. hive中的全排序

    写mapreduce程序时,如果reduce个数>1,想要实现全排序需要控制好map的输出 现在学了Hive,写sql大家都很熟悉,如果一个order by解决了全排序还用那么麻烦写mapred ...