SugarCRM或SuiteCRM中自定义字段的全局搜索

时间:2018-01-27 04:25:08

标签: php sugarcrm suitecrm

我在“帐户”模块上有一个名为“代码”的自定义字段,我想在全局搜索中启用它,以便在搜索栏中输入没有通配符的搜索。

假设我有一些记录的值为" 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'
        )
        );

1 个答案:

答案 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);