分享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个结果。