DedeCMS教程:在列表页输出当前页码相关信息
本方法原理上适用于DedeV5.3及以上所有的版本,不分编码。
这个问题来源于刚才有一位朋友的需求,他希望在列表页可以自由的调用当前栏目的一些与页码相关的信息。这个需求如果用自带的织梦标签,是无法实现的,我们需要修改源代码后才可实现。
实现步骤
代码修改
打开/include/arc.listview.class.php 文件,找到:?
if(preg_match('/index/i',?$listitem))?$plist?.=?$indexpage;?
if(preg_match('/pre/i',?$listitem))?$plist?.=?$prepage;?
if(preg_match('/pageno/i',?$listitem))?$plist?.=?$listdd;?
if(preg_match('/next/i',?$listitem))?$plist?.=?$nextpage;?
if(preg_match('/end/i',?$listitem))?$plist?.=?$endpage;?
if(preg_match('/option/i',?$listitem))?$plist?.=?$optionlist;?
if(preg_match('/info/i',?$listitem))?$plist?.=?$maininfo;?
这样的代码,一共有两处 静态分页函数与动态分页函数,修改为:
//页码信息相关输出?By?织梦教程网 华强℡?QQ:3421209?
$PageNo?=?$this->PageNo;?
$TotalResult?=?$this->TotalResult;?
$TotalPage?=?$totalpage;?
$PageSize?=?$this->PageSize;?
if(preg_match('/thisPage/i',?$listitem))?$plist?.=?$PageNo;?
if(preg_match('/TotalResult/i',?$listitem))?$plist?.=?$TotalResult;?
if(preg_match('/TotalPage/i',?$listitem))?$plist?.=?$TotalPage;?
if(preg_match('/PageSize/i',?$listitem))?$plist?.=?$PageSize;?
?
if(preg_match('/index/i',?$listitem))?$plist?.=?$indexpage;?
if(preg_match('/pre/i',?$listitem))?$plist?.=?$prepage;?
if(preg_match('/pageno/i',?$listitem))?$plist?.=?$listdd;?
if(preg_match('/next/i',?$listitem))?$plist?.=?$nextpage;?
if(preg_match('/end/i',?$listitem))?$plist?.=?$endpage;?
if(preg_match('/option/i',?$listitem))?$plist?.=?$optionlist;?
if(preg_match('/info/i',?$listitem))?$plist?.=?$maininfo;?
保存后即可。
注:要修改两处,一个是静态的,一个是动态的,你可以用相关编辑软件的搜索功能进行查找。
前台调用
接下来我们就可以在我们所需要的前台页面 模板文件名一般为 list_***进行调用了,调用的代码一共有如下几个:
文档总数:{dede:pagelist?listitem="TotalResult"/}?
分页总数:{dede:pagelist?listitem="TotalPage"/}?
分页大小:{dede:pagelist?listitem="PageSize"/}?
当前页码:{dede:pagelist?listitem="thisPage"/}?
它可以实现在列表页模板中任意地方的调用,也可以同时在多个地方进行调用。
效果预览
接下来,我们来看一下前台的效果预览吧