优化增加搜索栏目功能后的搜索结果

时间:2020-02-27 12:44 / 来源:未知 / 作者:酱油 / 点击:

本文主要为解决3个方面的小问题:

1:为搜索功能增加了能搜索栏目名称后(增加了搜索栏目的功能才有下面的代码),为了让栏目搜索结果和文章搜索结果差不多,那就是让关键词颜色也为蓝色,修改代码(文件include/arc.searchview.class.php)如下。(提示:".$row['typename']."修改成了".$this->GetRedKeyWord($row['typename']).",修改的地方很多,建议下载文件后进行对比,以下的仅提供部分代码的修改方法供参考

function GetArcTypeList()
{
$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,typeimg,description,sitepath
FROM `dede_arctype` WHERE  ishidden<>1 and typename like '%".$this->Keyword."%' order by sortrank asc ";
$this->dsql->SetQuery($sql);
$this->dsql->Execute('l');
$result="";
while($row=$this->dsql->GetArray('l'))
{
      
$row['typelink'] = GetOneTypeUrlA($row);
if($row['typeimg']){
$result.= "
<div class=\"plate\">
<dl>
<dt><a href=\"".$row['typelink']."\"><img src=\"".$row['typeimg']."\"/><i></i></a></dt>
<dd class=\"have\">
<div class=\"title\"> <span><a href=\"".$row['typelink']."\" target=\"_blank\">".$this->GetRedKeyWord($row['typename'])."</a></span></div>
<div class=\"text\">".$row['description']."...<a href=\"".$row['typelink']."\" target=\"_blank\" class=\"more\">[详细]</a></div>
</dd>
</dl>
</div>
";
}else{
$result.= "
<div class=\"plate\">
<dl>
<dd class=\"have\">
<div class=\"title\"> <span><a href=\"".$row['typelink']."\" target=\"_blank\">".$this->GetRedKeyWord($row['typename'])."</a></span></div>
<div class=\"text\">".$this->GetRedKeyWord($row['description'])."...<a href=\"".$row['typelink']."\" target=\"_blank\" class=\"more\">[详细]</a></div>
</dd>
</dl>
</div>
";
}
}


2:如果搜索的关键词,搜索结果中包含了栏目的结果,返回如上图的“类目搜索结果”的文字,如果没有包含了关键词的栏目的结果,则不返回,搜索如下代码

/**
 *  获得相关的关键字
 *
 * @access    public
 * @param     string  $num  关键词数目
 * @return    string
 */

在这段代码之前加上

//根据关键字搜索栏目,返回栏目列表结果
if($result!='')
$result="<h2>类目搜索结果</h2>".$result;
return $result;
}

如果搜索关键词,搜索结果中包含了又关键词的文章类型的结果,返回如上图的“文章搜索结果”,如果没有相关的文章,则返回对不起。这个我们只需在模板中search.htm增加代码

{dede:recordcount runphp='yes'}
if(@me!=0)@me="<h2>文章搜索结果</h2>";
else
@me="<h2>对不起</h2>";
{/dede:recordcount}


3:相关关键词功能,其实这个功能目前还是很鸡肋,但是万一有需要还是留个记号,这里需要修改的原因就是想实现,如果有相关文章就显示代码,如果没有就不显示代码,如下图,有相关的关键词就显示蓝色框内容,如果没有,就不显示包含红色框架内内容。

模板中调用标签是{dede:likewords num='8'/},include/arc.searchview.class.php文件中查找

        $likeword = '';
        $lsql = "(".$lsql.") AND NOT(keyword like '".addslashes($this->Keyword)."') ";
        $this->dsql->SetQuery("SELECT keyword,count FROM `dede_search_keywords` WHERE $lsql ORDER BY lasttime DESC LIMIT 0,$num; ");
        $this->dsql->Execute('l');
        while($row=$this->dsql->GetArray('l'))
        {
            if($row['count']>1000)
            {
                $fstyle=" style='font-size:11pt;color:red'";
            }
            else if($row['count']>300)
            {
                $fstyle=" style='font-size:10pt;color:green'";
            }
            else
            {
                $style = "";
            }
            $likeword .= "<a href=\"search.php?keyword=".urlencode($row['keyword'])."&searchtype=titlekeyword\"".$style." target=\"_blank\">".$row['keyword']."</a>";
        }
        return $likeword;
    }
}

修改为

        $likeword = '';
        $lsql = "(".$lsql.") AND NOT(keyword like '".addslashes($this->Keyword)."') ";
        $this->dsql->SetQuery("SELECT keyword,count FROM `dede_search_keywords` WHERE $lsql ORDER BY lasttime DESC LIMIT 0,$num; ");
        $this->dsql->Execute('l');
        while($row=$this->dsql->GetArray('l'))
        {
            if($row['count']>1000)
            {
                $fstyle=" style='font-size:11pt;color:red'";
            }
            else if($row['count']>300)
            {
                $fstyle=" style='font-size:10pt;color:green'";
            }
            else
            {
                $style = "";
            }
            $likeword .= "<a href=\"search.php?keyword=".urlencode($row['keyword'])."&searchtype=titlekeyword\"".$style." target=\"_blank\">".$row['keyword']."</a>";
        }
    }
    if($likeword!='')
    $likeword="<dl><dt>相关搜索:</dt>".$likeword."</dt></dl>";
    return $likeword;
}

点击下载已经修改的搜索页文件 解压密码:那些年球哥全名

猜你喜欢

推荐栏目

DEDECMS
DEDECMS

DEDE使用经验和技巧

WordPress
Wordpress

WP使用经验和技巧

Zblog
Zblog

Zblog使用经验和技巧

CSS
CSS

CSS使用经验和技巧

网络资料
网络资料

转载实用网络资料

按键伤人
按键伤人

转载乱七八糟的网络资源

我是酱油
我是酱油

随笔札记 记录生活点滴

本站推荐

百度站内搜索

专业博客主机