Joomla!系统自带的搜索组件com_search如果输入中文关键词,有两个问题:

来源:互联网 发布:python 自动化运维教程 编辑:程序博客网 时间:2024/05/01 08:21

1、对于中文关键词我们通常是两个字,比如"插件",这样的关键词的长度是2,而Joomla!查询的关键词限制长度是3以上。

2、对于一些中文关键词,如果开启了sef,就会导致搜索不到结果。

 这两个问题一直没时间来处理,现在给出解决方法如下:

对以第一个问题:修改components/com_search/views/search.php 中

将以下部分都注释掉

  //if(SearchHelper::limitSearchWord($searchword)) {
  // $error = JText::_( 'SEARCH_MESSAGE' );
  //}
  //sanatise searchword
  //if(SearchHelper::santiseSearchWord($searchword, $state->get('match'))) {
  // $error = JText::_( 'IGNOREKEYWORD' );
  //}

 这部分代码就是对关键词进行一些限制和处理,我是简单的去掉就算了,当然你若不希望这么粗暴的处理,可以去修改administrator/components/com_search/helpers/下的search.php ,将其中的长度限制改为更多。

对于第二个问题,我是花了很长时间才找到问题所在,就是sef导致输入的中文keywords被处理错误导致乱码,才会无法查到结果的。我弄了个最简单的粗暴的处理方式,就是将com_search/router.php 中的两个函数中内容都全部清空。

也就是不再做那些url参数的build了,这样至少实现了功能。

原创粉丝点击