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了,这样至少实现了功能。