我在“帐户”模块上有一个名为“代码”的自定义字段,我想在全局搜索中启用它,以便在搜索栏中输入没有通配符的搜索。
假设我有一些记录的值为" 88990"," 23477"和" 12347"。 如果某人使用全局搜索并输入347,则应该返回代码为23477和12347的帐户。 我不想输入%347你的结果。 我怎样才能做到这一点? 我有代码 定制/扩展/模块/帐户/外部/ Vardefs / sugarfield_code_c.php
$dictionary['Account']['fields']['code_c']['inline_edit']='1';
$dictionary['Account']['fields']['code_c']['labelValue']='test code';
$dictionary['Account']['fields']['code_c']['unified_search']=true;
和custom / modules / Accounts / SearchFields.php我有
$searchFields['Accounts'] = array(
'code_c' =>
array(
'query_type' => 'default'
)
);
答案 0 :(得分:0)
SuiteCRM版本: 7.10.4
解决方案无法升级安全。
导航到include / SearchForm / SearchForm2.php并在generateSearchWhere()
函数中查找以下内容:
$where .= $this->seed->db->concat($concat_table, $concat_fields) . " LIKE " . $this->seed->db->quoted($field_value . $like_char);
$where .= ' OR ' . $this->seed->db->concat($concat_table, array_reverse($concat_fields)) . " LIKE " . $this->seed->db->quoted($field_value . $like_char);
我更改了此行以在$like_char
:
$field_value
变量
$where .= $this->seed->db->concat($concat_table, $concat_fields) . " LIKE " . $this->seed->db->quoted($like_char . $field_value . $like_char);
$where .= ' OR ' . $this->seed->db->concat($concat_table, array_reverse($concat_fields)) . " LIKE " . $this->seed->db->quoted($like_char . $field_value . $like_char);