在DEDE系统中,搜索结果数量通常集成在列表分页标签里,并未提供单独的函数来调用这一数据。这给需要单独显示搜索结果数量的用户带来了不便。本文将介绍一种通过二次开发实现单独调用搜索结果数量的方法。
实现此功能非常简单,只需修改几个文件即可:
第一步,打开/include/arc.searchview.class.php文件,查找以下代码(大约位于第525行):
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=="itemcount")
{
$list_len = trim($ctag->GetAtt("listsize"));
if($list_len=="")
{
$list_len = 3;
}
$this->dtp->Assign($tagid,$this->GetItemsCountDM($list_len));
}
第二步,继续查找代码(大约位于第925行):
/**
* 获得当前的页面文件的url
*
* @access public
* @return string
*/
在上述代码上方添加以下代码:
function GetItemsCountDM($list_len)
{
global $oldkeyword;
$pagenow = ($this->PageNo-1) * 10 + 1;
$pagenows = $this->PageNo*10; //当结果超过限制时,重设结果页数
if($this->TotalResult > $this->SearchMaxRc)
{
$totalpage = ceil($this->SearchMaxRc/$this->PageSize);
}
$plist .= $this->TotalResult;
return $plist;
}
第三步,在搜索结果页模板中,使用以下标签调用搜索结果数量:
{dede:itemcount listsize='4'/}
完成以上步骤后,您就可以在搜索结果页中单独显示搜索结果的数量了。这种方法不仅简单易行,而且能够满足大多数用户对搜索结果数量展示的需求。
希望这篇文章能帮助到正在寻找解决方案的开发者们。