优化增加搜索栏目功能后的搜索结果
本文主要为解决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; }
点击下载已经修改的搜索页文件 解压密码:那些年球哥全名
推荐栏目
本站推荐
- 修改DEDE链接中的单引号为双引号
- DEDECMS启用绝对路径后远程缩略图存BUG
- 织梦dedecms自由列表的"不使用目录默认
- dedecms把文章批量设为未审核的办法
- 织梦调用父级栏目链接和名称
- 织梦data文件夹移动到程序上一层目录
- 优化增加搜索栏目功能后的搜索结果
- 织梦同级栏目指定文章调用实现相关文章教
- 织梦获取顶级栏目\当前栏目\上级栏目的相
- 织梦dedecms栏目添加自定义字段,增加栏
- 织梦DedeCMS自增函数[field:global name=
- dedecms织梦上传图片 缩略图路径统一
- 新增DEDE栏目页,无法更新,无权限
- 修改织梦摘要长度字数限制
- DEDECMS后台批量替换数据安全码不显示
- 织梦DEDECMS网站标签Tag静态化,生成静态
- 去掉FCK编辑器复制粘贴产生的<p>&a
- 完美解决FCK编辑器上传图片自动带DIV标签
- 去掉FCK编辑器每一段之前的空格 
- 织梦登录后台显示空白
百度站内搜索
Copyright © 2007-2014 海鬼 保留所有权利.
无心无力无时间来进行无用的备案
Theme by 海鬼 坚持不一定胜利 也许你在南辕北辙!