分享dedecms(织梦)是怎么在搜索页面调出当前显示项数

时间: 2011-01-20 / 分类: 网站技术 / 被围观: 3,452 次 / 0个评论 发表评论

在前面一篇文章“分享dedecms(织梦)是怎么调用搜索结果总数”的思路上我做出了dedecms(织梦)在搜索页面调出当前显示项数,分析一下。
效果如下图:
分享dedecms(织梦)是怎么在搜索页面调出当前显示项数

一、
在:
else if($tagname==”pagelist”)
{
$list_len = trim($ctag->GetAtt(“listsize”));
if($list_len==””)
{
$list_len = 3;
}
$this->dtp->Assign($tagid,$this->GetPageListDM($list_len));
}

下面加入如下红色代码:
else if($tagname==”pagenow”)
{
$list_len = trim($ctag->GetAtt(“listsize”));
if($list_len==””)
{
$list_len = 3;
}
$this->dtp->Assign($tagid,$this->GetPageNowDM($list_len));
}
else if($tagname==”pagenows”)
{
$list_len = trim($ctag->GetAtt(“listsize”));
if($list_len==””)
{
$list_len = 3;
}
$this->dtp->Assign($tagid,$this->GetPageNowsDM($list_len));
}

即399行。

二、

//—————
//获得当前的页面文件的url
//—————-

前面加入如下红色代码,其实也就是PageList修改而来的:
//———————-
//搜索输出当前页面前项数
//———————-
//获取动态的分页列表
function GetPageNowDM($list_len)
{
global $oldkeyword;
$pagenow = ($this->PageNo-1) * 10 + 1;

//当结果超过限制时,重设结果页数
if($this->TotalResult > $this->SearchMaxRc)
{
$totalpage = ceil($this->SearchMaxRc/$this->PageSize);
}

$pagenow = “”.$pagenow.””;

//输出

$plist .= $pagenow;

return $plist;
}
//结束

//———————-
//搜索输出当前页面后项数
//———————-
//获取动态的分页列表
function GetPageNowsDM($list_len)
{
global $oldkeyword;
$totalpage = ceil($this->TotalResult/$this->PageSize);

$pagenows = $this->PageNo*10;

//当结果超过限制时,重设结果页数
if($this->TotalResult > $this->SearchMaxRc)
{
$totalpage = ceil($this->SearchMaxRc/$this->PageSize);
}

if($this->PageNo!=$totalpage && $totalpage>1)
{
$pagenows = “”.$pagenows.””;
}
else
{
$pagenows = “”.$this->TotalResult.””;

//输出

$plist .= $pagenows;

return $plist;
}
//结束

三、
在要显示的地方加入
以下是第{dede:pagenow listsize=’4′/}{dede:pagenows listsize=’4′/}

GetPageNows的代码加了判断,如果有18项,而当前显示第一页的时候,代码输出是“以下是第1-10项”,而当前显示第二页的时候代码输出是“以下是第11-(总项数)项”。

哈哈~由于技术问题,搜索结果页面只能显示10个结果,如果不是显示10个结果,项数就会是错误的了。因为项数是用”$this->PageNo*10″做出来的。

本人菜鸟,希望有高手能把代码修改成更动态,而不能限定只能显示10个结果。

既然来到那就留点东西吧,我要发表评论让你的评论也可以自定义头像

您的昵称 *

您的邮箱 * (放心,俺会帮你保密滴!)

您的网站