帝国CMS的TAGS分页样式在伪静态和动态模式下的修改

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

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

改来改去结果半天的时间也没有找到修改的地方,关键是连一个搜索方法的关键词都搞不清楚,在一个群里问了问,有位朋友竟然需要发红包解决,我感觉是没有到这种程度,所以还是冷静下来重新梳理了一下思路,既然Tags标签页的模板是新闻类的列表模板,而网站列表模板是静态文件,为什么不把东坡的Tags插件改为静态模式试一试呢,果然经过测试之后,把东坡Tags设置为静态tags生成,再打开网站就正常了。

但是也在一个朋友的帮助下,找到一篇文章。原来帝国CMS的列表分页在伪静态和动态模式下的调用函数是不同的!

打开文件e/class/connect.php

伪静态模式对应的函数:InfoUsePage,大约1828行左右可以找到如下代码

1
2
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'].'">&nbsp;<b>'.$num.'</b> </a>&nbsp;&nbsp;';
//上一页
if($page<>0)
{
$toppage='<a href="'.eReturnRewritePageLink($add,0).'">'.$fun_r['startpage'].'</a>&nbsp;';
$pagepr=$page-1;
$prepage='<a href="'.eReturnRewritePageLink($add,$pagepr).'">'.$fun_r['pripage'].'</a>';
}
//下一页
if($page!=$totalpage-1)
{
$pagenex=$page+1;
$nextpage='&nbsp;<a href="'.eReturnRewritePageLink($add,$pagenex).'">'.$fun_r['nextpage'].'</a>';
$lastpage='&nbsp;<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.="&nbsp;".$is_1.$pagenum.$is_2;
}
$returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
return $returnstr;
}

动态模式对应的函数:page1,大约1590行左右可以找到如下代码

1
2
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'].'">&nbsp;<b>'.$num.'</b> </a>&nbsp;&nbsp;';
//上一页
if($page<>0)
{
$toppage='<a href="'.$url.'=0'.$search.'">'.$fun_r['startpage'].'</a>&nbsp;';
$pagepr=$page-1;
$prepage='<a href="'.$url.'='.$pagepr.$search.'">'.$fun_r['pripage'].'</a>';
}
//下一页
if($page!=$totalpage-1)
{
$pagenex=$page+1;
$nextpage='&nbsp;<a href="'.$url.'='.$pagenex.$search.'">'.$fun_r['nextpage'].'</a>';
$lastpage='&nbsp;<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.="&nbsp;".$is_1.$pagenum.$is_2;
}
$returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
return $returnstr;
}

附上文章地址:https://www.4s5.cn/archives/1604.html

感谢大家来到老刘博客,前言不搭后语的博文,希望能够帮助到有同样困惑的你。