
今天修改网站一个小问题,就是帝国CMS的列表页伪静态下的分页问题,本来我的网站使用的是静态模式,所以一直也没有觉察出列表页分页的问题,感觉显示的挺正常的,可是到了伪静态下就出了问题,最大的问题就是列表页标签没有按照修改的样式改变,样式丑爆了,如下图

提前说一下,我的网站添加了东坡Tags插件,而我需要的列表页伪静态下的分页是这个样式

改来改去结果半天的时间也没有找到修改的地方,关键是连一个搜索方法的关键词都搞不清楚,在一个群里问了问,有位朋友竟然需要发红包解决,我感觉是没有到这种程度,所以还是冷静下来重新梳理了一下思路,既然Tags标签页的模板是新闻类的列表模板,而网站列表模板是静态文件,为什么不把东坡的Tags插件改为静态模式试一试呢,果然经过测试之后,把东坡Tags设置为静态tags生成,再打开网站就正常了。
但是也在一个朋友的帮助下,找到一篇文章。原来帝国CMS的列表分页在伪静态和动态模式下的调用函数是不同的!
打开文件e/class/connect.php
伪静态模式对应的函数:InfoUsePage,大约1828行左右可以找到如下代码
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 
 | //前台分页(伪静态)function InfoUsePage($num,$line,$page_line,$start,$page,$search,$add){
 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);
 $snum=2;//最小页数
 $totalpage=ceil($num/$line);//取得总页数
 $firststr='<a title="'.$fun_r['trecord'].'"> <b>'.$num.'</b> </a>  ';
 //上一页
 if($page<>0)
 {
 $toppage='<a href="'.eReturnRewritePageLink($add,0).'">'.$fun_r['startpage'].'</a> ';
 $pagepr=$page-1;
 $prepage='<a href="'.eReturnRewritePageLink($add,$pagepr).'">'.$fun_r['pripage'].'</a>';
 }
 //下一页
 if($page!=$totalpage-1)
 {
 $pagenex=$page+1;
 $nextpage=' <a href="'.eReturnRewritePageLink($add,$pagenex).'">'.$fun_r['nextpage'].'</a>';
 $lastpage=' <a href="'.eReturnRewritePageLink($add,$totalpage-1).'">'.$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="'.eReturnRewritePageLink($add,$i).'">';
 $is_2="</a>";
 }
 $pagenum=$i+1;
 $returnstr.=" ".$is_1.$pagenum.$is_2;
 }
 $returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
 return $returnstr;
 }
 
 | 
动态模式对应的函数:page1,大约1590行左右可以找到如下代码
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 
 | //前台分页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;
 }
 
 | 
附上文章地址:https://www.4s5.cn/archives/1604.html
感谢大家来到老刘博客,前言不搭后语的博文,希望能够帮助到有同样困惑的你。