帝国CMS 实际有三套分页逻辑,分别用在不同的场景。搞清楚它们的区别,才知道改哪里。
下拉式分页
[!--show.page--]
这种方式的分页可以在后台“模板”-> 公共模板管理 -> 列表分页模板 做一些简单的html定制化
列表式分页
[!--show.listpage--]
这种方式的html完全写死在php代码中,后台管理页面没有地方可以修改
这两种模板的分页标签默认都在这个函数中处理的 e\class\t_functions.php

sys_ShowListPage
以上两种方式定制性都不高,如果要求更加灵活可以到 后台->系统参数设置->信息设置

设置 列表分页函数(下拉) 和 列表分页函数(列表) 相应的函数名,然后到e/class/userfun.php实现相应的函数,代码的话可以参考系统默认的sys_ShowListPage
动态列表页
这个又是在connect.php文件中实现的page1分页函数,要定制的化也是改代码
//前台分页
function page1($num,$line,$page_line,$start,$page,$search){
global $fun_r;
$num=(int)$num;
$line=(int)$line;
$page_line=(int)$page_line;
$start=(int)$start;
$page=(int)$page;
if($num<=$line)
{
return '';
}
$search=RepPostStr($search,1);
$url=eReturnSelfPage(0).'?page';
$snum=2;//最小页数
$totalpage=ceil($num/$line);//取得总页数
$firststr='<a title="'.$fun_r['trecord'].'"> <b>'.$num.'</b> </a> ';
//上一页
if($page<>0)
{
$toppage='<a href="'.$url.'=0'.$search.'">'.$fun_r['startpage'].'</a> ';
$pagepr=$page-1;
$prepage='<a href="'.$url.'='.$pagepr.$search.'">'.$fun_r['pripage'].'</a>';
}
//下一页
if($page!=$totalpage-1)
{
$pagenex=$page+1;
$nextpage=' <a href="'.$url.'='.$pagenex.$search.'">'.$fun_r['nextpage'].'</a>';
$lastpage=' <a href="'.$url.'='.($totalpage-1).$search.'">'.$fun_r['lastpage'].'</a>';
}
$starti=$page-$snum<0?0:$page-$snum;
$no=0;
for($i=$starti;$i<$totalpage&&$no<$page_line;$i++)
{
$no++;
if($page==$i)
{
$is_1="<b>";
$is_2="</b>";
}
else
{
$is_1='<a href="'.$url.'='.$i.$search.'">';
$is_2="</a>";
}
$pagenum=$i+1;
$returnstr.=" ".$is_1.$pagenum.$is_2;
}
$returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
return $returnstr;
}




