2013年08月21日 16:20:58

解决Joomla搜索限制最少3个字

作者: 

本文介绍如何通过Joomla的语言本地化覆盖功能,提供中文2个字即可搜索的解决方法。

默认的Joomla搜索是至少3个字才能搜索的,否则将搜索不到结果,并会出现如图(1)所示的提示。

图(1)3-20个字才能搜索

而这3个最小字符的限定,是直接写进代码中的,如图(2)所示:

图(2)最小搜索字固定限定3个字符

不过从图(2)中我们也发现,是可以调用用户自定义回调函数来进行设置的,我们的解决方案也在这里。接下来查看

$this->lowerLimitSearchWordCallback

 的来源,我们可以发现,有两种解决方案:

1、使用Jlanguage的setLowerLimitSearchWordCallback()方法设置自定义的回调函数,这个设置需要在搜索进行前执行。

2、使用语言本地化覆盖的方式,覆盖方法有两种:

(1)/language/overrides/$lang.localise.php
(2)/language/$lang/$lang.localise.php  //$lang为语言标签,如en-GB

 这点可以从图(3.1)和图(3.2)中看出:

图(3.1)语言本地化覆盖1

图(3.1)语言本地化覆盖2

本文选用第二种解决方案,新建一个/language/overrides/en-GB.localise.php的文件,文件内容如下:

<?php
class en_GBLocalise{
	/**
 	* 自定义覆盖获取最小搜索字数限制方法
 	*/
	public function getLowerLimitSearchWord(){
		$app = JFactory::getApplication();
		$keyword  = urldecode($app->input->getString('searchword'));	//搜索词
		if(preg_match('#[\x7f-\xff]#',$keyword)){  //判断是否包含至少一个汉字
			return 2; 		//有则返回2
		}else {
			return 3;		//没有则返回3
		}
	}
}

 然后测试效果如图(4)所示:

 

问题解决!



未经同意禁止转载!
转载请附带本文原文地址:解决Joomla搜索限制最少3个字,首发自 Zjmainstay学习笔记
阅读( 5573 )
看完顺手点个赞呗:
(2 votes)

相关文章

1.PHP cURL群:PHP cURL高级技术
2.正则表达式群:专精正则表达式
3. QQ联系(加请说明):QQ联系博主(951086941)
4. 邮箱:zjmainstay@163.com
5. 打赏博主:

网站总访问量: