在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'/}
    

完成以上步骤后,您就可以在搜索结果页中单独显示搜索结果的数量了。这种方法不仅简单易行,而且能够满足大多数用户对搜索结果数量展示的需求。

希望这篇文章能帮助到正在寻找解决方案的开发者们。