帝国cms 7.5列表页模板分页样式修改及分页显示条数

1,006次阅读
没有评论

帝国 cms 模板里有两个分页模式

1.[!–show.page–]: 分页导航(下拉式)
2.[!–show.listpage–]: 分页导航(列表式)   可以自定义样式   建立新的 css  文件
下面介绍的是[!–show.listpage–]: 分页导航(列表式)
帝国 cms 分页导航(列表式) [!–show.listpage–]: 默认生成的 html 分页页面代码是这样的:

<div class="page">
<a title="Total record">&nbsp;<b>9</b> </a>&nbsp;&nbsp;
<a href="/dg/news/china/index.html"> 首页 </a>&nbsp;
<a href="/dg/news/china/index.html"> 上一页 </a>&nbsp;
<a href="/dg/news/china/index.html">1</a>&nbsp;
<b>2</b>&nbsp;
<a href="/dg/news/china/index_3.html">3</a>&nbsp;
<a href="/dg/news/china/index_3.html"> 下一页 </a>&nbsp;
<a href="/dg/news/china/index_3.html"> 尾页 </a>
</div>

帝国 cms 7.5 列表页模板分页样式修改及分页显示条数
没有特殊要求的或是喜好的,只需要在 帝国 cms 列表页 中调用【[!–show.listpage–]】标签就可以了。
例如:

<div class="page">
 [!--show.listpage--]
</div>

然后,按照帝国默认的标签生成风格,只需要修改 div class=”page” 然后把 css 复制到你的样式表中就可以了!

但有很多想要自定义效果的可以采用以下方法。
说明:用这个方法是为了不影响帝国 cms 后台或是帝国 cms 升级不会造成影响。
因为这里是使用了帝国 cms 给的 user 自定义函数,跟帝国 cms 系统【t_functions.php】的函数是分离的,所以不会影响帝国 cms 系统函数。
第一步、进入帝国 cms 后台, 点击【系统】>>【系统设置】>>【信息设置】: 里面有个 ” 列表分页函数(列表)” 选项,

将里面的函数名【sys_ShowListMorePage】修改为【user_ShowListMorePage】
示意图:

帝国 cms 7.5 列表页模板分页样式修改及分页显示条数
注意事项:当改完这个   修改为【user_ShowListMorePage】很多用户系统设置后台可能会变成空白,不要着急;当操作完后面的第二步和第三步后刷新系统后台就变得正常了。

第二步,在帝国 cms 安装根目录找到【e】文件夹下的【class】文件夹里的【t_functions.php】与【userfun.php】这两个文件,

目录路径:

\e\class\t_functions.php  和  \e\class\userfun.php

用编辑代码编辑工具(新手推荐工具)Adobe Dreamweaver(点击下载)
打开【userfun.php】和【t_functions.php】两个 php 程序

1)、打开【t_functions.php】后,找到注释【// 列表模板之列表式分页】的代码地方。一直到注释【// 返回内容分页】这部分代码拷贝出来。

或是直接拷贝下面的代码:

// 列表模板之列表式分页 function user_ShowListMorePage($num,$page,$dolink,$type,$totalpage,$line,$ok,$search="",$add){global $fun_r,$public_r; if($num<=$line) {$pager['showpage']=''; return $pager; } // 文件名 if(empty($add['dofile'])) {$add['dofile']='index'; } // 静态页数 $repagenum=$add['repagenum']; $page_line=$public_r['listpagelistnum']; $snum=2; //$totalpage=ceil($num/$line);// 取得总页数 $firststr='<a title="Total record">&nbsp;<b>'.$num.'</b> </a>&nbsp;&nbsp;'; // 上一页 if($page<>1) {$toppage='<a href="'.$dolink.$add['dofile'].$type.'">'.$fun_r['startpage'].'</a>&nbsp;'; $pagepr=$page-1; if($pagepr==1) {$prido=$add['dofile'].$type; } else {$prido=$add['dofile'].'_'.$pagepr.$type; } $prepage='<a href="'.$dolink.$prido.'">'.$fun_r['pripage'].'</a>'; } // 下一页 if($page!=$totalpage) {$pagenex=$page+1; $nextpagelink=$repagenum&&$repagenum<$pagenex?eReturnRewritePageLink2($add,$pagenex):$dolink.$add['dofile'].'_'.$pagenex.$type; $lastpagelink=$repagenum&&$repagenum<$totalpage?eReturnRewritePageLink2($add,$totalpage):$dolink.$add['dofile'].'_'.$totalpage.$type; $nextpage='&nbsp;<a href="'.$nextpagelink.'">'.$fun_r['nextpage'].'</a>'; $lastpage='&nbsp;<a href="'.$lastpagelink.'">'.$fun_r['lastpage'].'</a>'; } $starti=$page-$snum<1?1:$page-$snum; $no=0; for($i=$starti;$i<=$totalpage&&$no<$page_line;$i++) {$no++; if($page==$i) {$is_1="<b>"; $is_2="</b>";} elseif($i==1) {$is_1='<a href="'.$dolink.$add['dofile'].$type.'">'; $is_2="</a>"; } else {$thispagelink=$repagenum&&$repagenum<$i?eReturnRewritePageLink2($add,$i):$dolink.$add['dofile'].'_'.$i.$type; $is_1='<a href="'.$thispagelink.'">'; $is_2="</a>"; } $returnstr.='&nbsp;'.$is_1.$i.$is_2; } $returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage; $pager['showpage']=$returnstr; return $pager; }

2)、把在【t_functions.php】文件里拷贝下来的代码,粘贴到【userfun.php】文件的 <? php ?> 这中间。

代码放置演示;

<? php
// 这中间放置刚刚拷贝【t_functions.php】中的文件或是直接复制的上方代码,然后修改这里的代码。?>

第三步、如需要自定义 // 列表模板之列表式分页 的函数, 请参考下方代码说明;

// 列表模板之列表式分页
function sys_ShowListMorePage($num,$page,$dolink,$type,$totalpage,$line,$ok,$search=""){
global $fun_r,$public_r;
//num 是取得的当前总的文章数,line 是栏目设定里的一页显示多少文章数。如果当前文章总数少于设定数,中断程序返回,并且什么也不显示。
if($num<=$line)
{
$pager['showpage']='';
return $pager;
}
//listpagelistnum 是 "参数设置" 里的 "信息设置" 下的 "列表分页函数" 每页显示 16 个页码这一项。上面的图片上因为文章较少,所以只显示了 6 个。
$page_line=$public_r['listpagelistnum'];
$snum=2;
// 这个 $snum 可以控制 "当前页" 显示的位置,设置成 2, 当前页就显示在第 3 个位置。上面的效果图上 snum=2。
//$totalpage=ceil($num/$line);  // 取得总页数
$firststr=''.$num.' '// 显示总文章数
// 上一页
if($page<>1)
{
// 若当前页不是第一页,则显示它的上一页链接
//$dolink 是栏目的地址,比如 <?=$class_r[4]['classpath']?>  ;  $type 是网页文件的扩展名,比如 .html,那个 $type 之前有个点,是起连接作用的连接符,也就是说 $type 里面的内容是 .html
$toppage='<a href="'.$dolink.'index'.$type.'">'.$fun_r['startpage'].'</a>';
$pagepr=$page-1;
if($pagepr==1)
{
$prido="index".$type;
}
else
{
$prido="index_".$pagepr.$type;
}
$prepage='<a href="'.$dolink.$prido.'">'.$fun_r['pripage'].'</a>';
}
// 下一页
if($page!=$totalpage)
{
// 如果当前页不是最后一页,则显示它的下一页链接
$pagenex=$page+1;
$nextpage='<a href="'.$dolink.'index_'.$pagenex.$type.'">'.$fun_r['nextpage'].'</a>';
$lastpage='<a href="'.$dolink.'index_'.$totalpage.$type.'">'.$fun_r['lastpage'].'</a>';
}
// 通过判断当前页码与上面讲述的 snum 的大小,确定页码显示的状态。如果 $page-$snum<1,$starti 赋值为 1,否则 $starti 赋值为 $page-$snum。
$starti=$page-$snum<1?1:$page-$snum;
$no=0;
// 此处的 for 循环就是用来显示页码的,包括从第几个页码开始显示,以及当前页码加粗和显示多少个页码
for($i=$starti;$i<=$totalpage&$no<$page_line;$i++)
{
$no++;
// 如果是当前页码,则加粗,有需要修改当前页码样式的可在此修改
if($page==$i)
{
$is_1="<b>";
$is_2="</b>";
}
// 如果当前页是首页
elseif($i==1)
{
$is_1='<a href="'.$dolink.'index'.$type.'">';
$is_2="</a>";
}
// 其余的页码,可以通过给 a 加样式来修改显示效果
else
{
$is_1='<a href="'.$dolink.'index_'.$i.$type.'">';
$is_2="</a>";
}
//$returnstr 即是生成的显示页号的代码
$returnstr.=''.$is_1.$i.$is_2;
}
$returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
$pager['showpage']=$returnstr;
return $pager;

}

注意事项;

修改 php 代码时,需要注意的是 (“”) 中包含的代码不能使用(“),只能使用(‘)。建议直接修改。Html 可以在没有双引号或单引号的情况下完成,没有任何问题。

如果有 php 相关的编译软件,可以复制修改代码,不仅提高了效率,还可以检测错误

主要的修改是 $returnstr 变量。在后面,可以看到我在上面的代码中写的相关标签。如果你知道的不多,可以先把我写的 html 标签、类和 id 变成自己的

具体修改样式;

一,总页码数

找到$firststr='<a title="Total record">&nbsp;<b>'.$num.'</b> </a>&nbsp;&nbsp;';

比较一下

$firststr='<a title="Total record">&nbsp;<b>'.$num.'</b> </a>&nbsp;&nbsp;';
              <a title="Total record">&nbsp;<b>9</b> </a>&nbsp;&nbsp;

这里也就是说明,总页码“9”所对应的变量为  ‘.$num.’  $firststr 是总页码的变量名称

二,首页

我们再找到$toppage='<a href="'.$dolink.'index'.$type.'">'.$fun_r['startpage'].'</a>&nbsp;';

比较一下

$toppage='<a href="'.$dolink.'index'.$type.'">'.$fun_r['startpage'].'</a>&nbsp;';
                <a href="/dg/news/china/index.html"> 首页 </a>&nbsp;

这里我们能看出来 首页所对应的“首页”代码为“’.$fun_r[‘startpage’].’”  其链接所对应“’.$dolink.’index’.$type.’”

三. 上一页

我们再找到$prepage='<a href="'.$dolink.$prido.'">'.$fun_r['pripage'].'</a>';

比较一下

$prepage='<a href="'.$dolink.$prido.'">'.$fun_r['pripage'].'</a>';
                 <a href="/dg/news/china/index.html"> 上一页 </a>&nbsp;

四,下一页和尾页

这里所对应的代码为每一页的页码标签

找到

$nextpage='&nbsp;<a href="'.$dolink.'index_'.$pagenex.$type.'">'.$fun_r['nextpage'].'</a>';
$lastpage='&nbsp;<a href="'.$dolink.'index_'.$totalpage.$type.'">'.$fun_r['lastpage'].'</a>';

这里所对应的代码为 下一页和尾页

<a href="/dg/news/china/index_3.html"> 下一页 </a>&nbsp;
<a href="/dg/news/china/index_3.html"> 尾页 </a>

五,所在页面   前面页码和   所在页面的后页代码

$starti=$page-$snum<1?1:$page-$snum;
    $no=0;
    for($i=$starti;$i<=$totalpage&&$no<$page_line;$i++)
    {
        $no++;
        if($page==$i)
        {
            $is_1="<b>";
            $is_2="</b>";
        elseif($i==1)
        {
            $is_1='<a href="'.$dolink.$add[filename].$type.'">';
           $is_2="</a>";
        }
        else
        {
            $is_1='<a href="'.$dolink.$add[filename].'_'.$i.$type.'">';
           $is_2="</a>";
        }
        $returnstr.='&nbsp;'.$is_1.$i.$is_2;

1. 所在页面的代码

$is_1="<b>";
$is_2="</b>";

意思为所在页面标签为 <b> 所在页面 </b>

2. 所在页面之后的页码

  
elseif($i==1)
{
    $is_1='<a href="'.$dolink.$add[filename].$type.'">';
   $is_2="</a>";

意思为所在页面

为 <a> 之前页面 </a>

3. 所在页面之后的页码

else
{
    $is_1='<a href="'.$dolink.$add[filename].'_'.$i.$type.'">';
   $is_2="</a>";

意思为所在页面之后的页面

为 <a> 之后的页面 </a>

第四步、直接在【列表模板】里,翻页代码的地方,直接调取分页函数

【[!–show.listpage–]】即可。

最终,得到效果如下:
帝国 cms 7.5 列表页模板分页样式修改及分页显示条数
帝国 cms 7.5 列表页模板分页样式修改及分页显示条数

提示:当你使用了帝国 cms 列表式 分页标签在列表页模板后,如果不显示分页,是因为你的文章数不够分页显示。

帝国 cms 列表页分页显示条数的修改;

默认情况下,帝国 cms 的列表页面每页显示 25 条信息。如果每行显示数设置不是 5 的倍数,最后一行会有几个空格,不太美观。

设置方法:

【栏目】——> 管理栏目,找到要设置显示个数的栏目点击“修改”——> 生成选项——> 生成信息每页显示,设置成自己想要显示的个数,提交,重新生成就可以了!
示意图;
帝国 cms 7.5 列表页模板分页样式修改及分页显示条数

PS:到这里【帝国 cms 问题】问题九、帝国 cms 7.5 列表页模板分页样式修改及分页显示条数 (帝国 cms 教程) 到这里就结束啦。刷新列表页模板就可以展示了。

正文完
 0