要想搞定这个问题,首要的问题是要搞明白帝国cms解析原理,其实帝国不是模板引擎进行解析的,它只是替换

$listtemp=str_replace('[!--show.listpage--]',$listpage,$listtemp);

一般如果按照模板引擎编译解析的方式,会选将所有变

量性质的标签直接通过定界符判断出是标签,然后统一使用正则

进行解析,而帝国的处理方式是一个个单独处理,所以就出现像

上面的那样,$string为读取出来的模板内容,然后一步一步逐一

替换处理,典型的早期的动易、新云等ASP类CMS的标签的处理

方式。

知道上面这个就好理解如何做帝国自定义分页了。

这里还有两个知道点

1、自定义函数如何写,写在哪里

e/class/userfun.php

这个文件是帝国定义的使用者写自己函数的地方。

2、要知道帝国的列表页是如何解析的。这里要知道哪个文件是干解析用的

e/action/ListInfo/index.php

仔细阅读源码会发现,帝国是如何解析分页这个业务逻辑的

//分页

//$public_r['Pstaticlistpagefun']="myInfoUsePage";$listpage=InfoUsePage($num,$line,$page_line,$start,$page,$search,$pagefunr);

if($pagefunr['rewrite']==1||$pagefunr['repagenum'])//它是伪静态时或是静态页时的业务

{

$listpage=myInfoUsePage($num,$line,$page_line,$start,$page,$search,$pagefunr);//它是动态时走的判断

}

else

{

$listpage=page1($num,$line,$page_line,$start,$page,$search);

}

由上可知trylife之所以称其为该死,因为它只是判断了静态和伪静态,至于动态,这逼没有说,也许是故意没有说的吧,小般小白是不可能分析出来的.