网站开发 · 2025年4月26日

Zencart搜索结果关键词高亮显示

首先介绍一下这个功能:在搜索框输入关键词的时候,搜索出来的结果会把匹配到的关键词高亮显示,可以精确匹配,也可以模糊匹配。   精确匹配:例如产品名字是“大熊博客定制外贸 ”,搜过关键词是“zencart模板”,就可以搜索到这个产品,如果关键词是““则不能搜索到这个产品。   模糊匹配(分段匹配):上面例子中通过搜索关键词“zencart模板”可以搜索产品,搜索“ ”、“外贸模板”、“大熊zencart模板”都是可以搜索到这个产品的。   安装详解:   1,在文件inlcudes/functions/functions_general.php 中加入以下函数:         function highLight($str, $keywords, $color = “red”) {        if (empty($keywords)) {            return $str;        }        $keywords = split(“[ \t\r\n,]+”, $keywords);        foreach($keywords as $val) {            $tvar = preg_quote($val);            $tvar = str_ireplace(‘/’, ‘\/’, $tvar);            $patterns[]    = “/(” . $tvar . “)/i”;            $replacement[] = urlencode($val) ;            $tvar = preg_quote(urlencode($val));            $tvar = str_ireplace(‘/’, ‘\/’, $tvar);            $tmppattern[]  = “/(”  . $tvar .  “)/i”;            $finalrep[]    = “<strong style=’color:” . $color . “‘>” . $val . “</strong>”;        }        $str = preg_replace($patterns, $replacement, $str);        $str = preg_replace($tmppattern, $finalrep, $str);        return $str;    }       2,打开includes/modules/您的模板/product_listing.php 找到case ‘PRODUCT_LIST_NAME’:下的两项   $listing->fields[‘products_name’]    替换成:   highLight($listing->fields[‘products_name’],$_GET[‘keyword’])   3,缩短搜索页面url的长度   打开文件:   includes\templates\template_default\sideboxes\tpl_search.php   includes\templates\template_default\sideboxes\tpl_search_header.php   注释掉:$content .= zen_draw_hidden_field(‘search_in_description’, ‘1’) . zen_hide_session_id();   4,打开后台Configuration — SEO URLS 在‘输入需要优化的页面’ 将advanced_search_result加入进去