【帝国cms问题】问题九、帝国cms 7.5列表页模板分页样式修改及分页显示条数(帝国cms教程)(作者亲测)
2.[!–show.listpage–]:分页导航(列表式) 可以自定义样式 建立新的css 文件
下面介绍的是[!–show.listpage–]:分页导航(列表式)
帝国cms分页导航(列表式) [!–show.listpage–]:默认生成的html分页页面代码是这样的:
<div class="page"> <a title="Total record"> <b>9</b> </a> <a href="/dg/news/china/index.html">首页</a> <a href="/dg/news/china/index.html">上一页</a> <a href="/dg/news/china/index.html">1</a> <b>2</b> <a href="/dg/news/china/index_3.html">3</a> <a href="/dg/news/china/index_3.html">下一页</a> <a href="/dg/news/china/index_3.html">尾页</a> </div>
没有特殊要求的或是喜好的,只需要在帝国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】
示意图:
注意事项: 当改完这个 修改为【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"> <b>'.$num.'</b> </a> '; //上一页 if($page<>1) { $toppage='<a href="'.$dolink.$add['dofile'].$type.'">'.$fun_r['startpage'].'</a> '; $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=' <a href="'.$nextpagelink.'">'.$fun_r['nextpage'].'</a>'; $lastpage=' <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.=' '.$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"> <b>'.$num.'</b> </a> ';
比较一下
$firststr='<a title="Total record"> <b>'.$num.'</b> </a> '; <a title="Total record"> <b>9</b> </a>
这里也就是说明,总页码“9” 所对应的变量为 '.$num.' $firststr 是总页码的变量名称
二,首页
我们再找到$toppage='<a href="'.$dolink.'index'.$type.'">'.$fun_r['startpage'].'</a> ';
比较一下
$toppage='<a href="'.$dolink.'index'.$type.'">'.$fun_r['startpage'].'</a> '; <a href="/dg/news/china/index.html">首页</a>
这里我们能看出来 首页所对应的“首页”代码为“'.$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>
四,下一页和尾页
这里所对应的代码为每一页的页码标签
找到
$nextpage=' <a href="'.$dolink.'index_'.$pagenex.$type.'">'.$fun_r['nextpage'].'</a>'; $lastpage=' <a href="'.$dolink.'index_'.$totalpage.$type.'">'.$fun_r['lastpage'].'</a>';
这里所对应的代码为 下一页和尾页
<a href=" /dg/news/china/index_3.html">下一页</a> <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.=' '.$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 列表式 分页标签在列表页模板后,如果不显示分页,是因为你的文章数不够分页显示。
默认情况下,帝国cms的列表页面每页显示25条信息。如果每行显示数设置不是5的倍数,最后一行会有几个空格,不太美观。
设置方法:
【栏目】——>管理栏目,找到要设置显示个数的栏目点击“修改”——>生成选项——>生成信息每页显示,设置成自己想要显示的个数,提交,重新生成就可以了!
示意图;
PS:到这里【帝国cms问题】问题九、帝国cms 7.5列表页模板分页样式修改及分页显示条数(帝国cms教程)到这里就结束啦。刷新列表页模板就可以展示了。
关注公众号:“lovephoto588”
或搜索:“爱折腾的摄影大叔” 回复:帝国cms 查看更多!!!
本文来源:爱折腾的摄影大叔—帝国cms记录—问题九、帝国cms 7.5列表页模板分页样式修改及分页显示条数
本文地址:https://www.lovezheteng.com/problem/dgwt/9.html
加入我们:微信:搜索“lovephoto588” 学习群:QQ一群---***
版权声明:本文采用[BY-NC-SA]协议进行授权,如无特别说明,转载请注明本文地址!