分类: 系统运维
2013-02-05 20:56:14
最近接触SugarCRM,一款非常不错个CRM软件。开源,功能强大,插件众多。在下载和使用了一下后发现无法进行模糊搜索,也就是不能任意关键字搜索。比如: 深圳市蓝博科技有限公司 你直接搜索 蓝博就没办法搜索。在SugarCRM的论坛中文区找到了方法:%关键字%,这样搜索就可以了。
可是不是所有的用户在使用搜索的时候都会添加%,这里我们可以通过修改源文件达到目的,这就是使用开源软件的好处。
一、修改include/utils.php中的generate_search_where()函数,将:
case 'like' :
$where .= $db_field . " like ".$field_value.$like_char."'";break;
修改为:
case 'like' :
$where .= $db_field . " like ".$like_char.$field_value.$like_char."'";break;
二、修改include/SearchForm/SearchForm.php中的generateSearchWhere()函数,将:
case 'like' :
$where .= $db_field . " like ".$field_value.$like_char."'";break;
修改为:
case 'like' :
$where .= $db_field . " like ".$like_char.$field_value.$like_char."'";break;
三、修改include/SearchForm/SearchForm2.php中的generateSearchWhere()函数,将:
}else{
//no space was found, add normal where clause
$where .= $db_field . " like '".$field_value.$like_char."'";
}
}else{
//field is not last name or this is not from global unified search, so do normal where clause
$where .= $db_field . " like '".$field_value.$like_char."'";
}
修改为:
}else{
//no space was found, add normal where clause
$where .= $db_field . " like '".$like_char.$field_value.$like_char."'";
}
}else{
//field is not last name or this is not from global unified search, so do normal where clause
$where .= $db_field . " like '".$like_char.$field_value.$like_char."'";
}
这样,所有的字段都支持模糊搜索啦!