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

sys_ShowListPage
//列表模板分页函数
function sys_ShowListPage($num,$pagenum,$dolink,$dotype,$page,$lencord,$ok,$search="",$add=null){
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> ";
}
else
{
$pagetop=$fun_r['startpage']." ";
}
//上一页
if($pagenum<>1)
{
$pagepr=$pagenum-1;
if($pagepr==1)
{
$prido=$add['dofile'].$dotype;
}
else
{
$prido=$add['dofile'].'_'.$pagepr.$dotype;
}
$pagepri="<a href='".$dolink.$prido."'>".$fun_r['pripage']."</a> ";
}
else
{
$pagepri=$fun_r['pripage']." ";
}
//下一页
if($pagenum<>$page)
{
$pagenex=$pagenum+1;
$nextpagelink=$repagenum&&$repagenum<$pagenex?eReturnRewritePageLink2($add,$pagenex):$dolink.$add['dofile'].'_'.$pagenex.$dotype;
$pagenext="<a href='".$nextpagelink."'>".$fun_r['nextpage']."</a> ";
}
else
{
$pagenext=$fun_r['nextpage']." ";
}
//尾页
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):$dolink.$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='".$dolink.$add['dofile'].'_'.$ok.$dotype."'>","value='".$dolink.$add['dofile']."_".$ok.$dotype."' selected>",$search);
}
$options="<select name=select onchange=\"self.location.href=this.options[this.selectedIndex].value\">".$options."</select>";
//分页
$pagelink=$pagetop.$pagepri.$pagenext.$pageeof;
//替换模板变量
$pager['showpage']=ReturnListpageStr($pagenum,$page,$lencord,$num,$pagelink,$options);
$pager['option']=$myoptions;
return $pager;
}
以上两种方式定制性都不高,如果要求更加灵活可以到 后台->系统参数设置->信息设置

设置 列表分页函数(下拉) 和 列表分页函数(列表) 相应的函数名,然后到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;
}
帝国CMS教程
[showclasstemp] vs [listshowclass] 帝国CMS标签区别
本文详细对比帝国CMS两个栏目调用标签showclasstemp与listshowclass的差异。listshowclass是增强版,支持以逗号分隔传入多个父栏目ID,并提供更丰富的父级变量(如图片、简介、信息数、序号),而showclasstemp仅支持单栏目和三个基本父级变量,两者子栏目变量与标签语法相同。简单的单栏目导航二者均可,需要多栏目组合或展示父级更多信息时,优先选用listshowclass。
帝国CMS列表分页标签定制样式修改HTML方法
本文介绍了帝国CMS列表页面的默认分页标签实现,包括下拉式分页和列表式分页的后台模板定制方式。详细分析了核心函数sys_ShowListPage的代码逻辑,以及动态列表页中page1分页函数的处理流程。文章还说明了如何在系统参数中设置自定义分页函数,为用户提供更灵活的分页样式定制方案。
帝国CMS 8.0搜索结果页修复:支持灵动标签与标题高亮
帝国CMS 8.0默认搜索结果列表页不支持SQL查询、灵动标签等调用,通过修改e/search/result/index.php,引入函数文件并调整查询,即可正常使用各类标签,同时实现搜索关键词在标题中的红色高亮。本文提供完整可用代码。
帝国CMS图片水印不支持webp格式解决办法
本文为一组PHP图像处理函数,主要实现图片缩放与加水印功能。ResizeImage函数可按指定宽高及比例对图片进行裁剪或缩放,支持jpg、png、gif、webp等格式。imageWaterMark函数可为背景图添加图片或文字水印,支持九种位置定位和透明度控制,兼容多种图片格式。
亲测可用帝国CMS完美无报错Sitemap
一、个人实测踩坑总结最近给帝国CMS站点配置网站地图,踩了一大堆坑,要么报PHP version语法错误,要么XML格式不
帝国CMS图片裁剪Cannot read properties of null (ReloadChangeFilePage)
最近搭建、维护帝国CMS站点的朋友,基本都会遇到一个兼容性bug:新版Chrome/Edge浏览器后台图片裁剪、选择已上
帝国CMS插件
未找到合适的帝国 CMS 成品插件?
如有定制需求,或是想优化现有插件功能,欢迎随时联系沟通。
微信
QQ
15年开发经验
自己做过站长,深知站长痛点
独立开发
自己编码、测试、维护,不是二道贩子
持续迭代
根据用户真实反馈持续优化
代码透明
核心逻辑清晰,不加密、不混淆
售后保障
提供安装指导和技术支持,随时响应
联系方式
微信 / QQ 即时沟通

