attempt to improve contact search while typing adresses in address fields

This commit is contained in:
Klaus Leithoff 2012-02-01 13:06:06 +00:00
parent c80f548999
commit 46d8d84657

View File

@ -25,11 +25,16 @@
if (method_exists($GLOBALS['egw']->contacts,'search')) { if (method_exists($GLOBALS['egw']->contacts,'search')) {
// 1.3+ // 1.3+
$showAccounts = true; $showAccounts = true;
//error_log(__METHOD__.__LINE__.$_searchString);
$seStAr = explode(' ',$_searchString);
foreach ($seStAr as $k => $v) if (strlen($v)<3) unset($seStAr[$k]);
$_searchString = trim(implode(' AND ',$seStAr));
//error_log(__METHOD__.__LINE__.$_searchString);
if ($GLOBALS['egw_info']['user']['preferences']['addressbook']['hide_accounts']) $showAccounts=false; if ($GLOBALS['egw_info']['user']['preferences']['addressbook']['hide_accounts']) $showAccounts=false;
$contacts = $GLOBALS['egw']->contacts->search(array( $contacts = $GLOBALS['egw']->contacts->search(array(
'n_fn' => $_searchString, 0 => "(n_fn like '%".trim(implode("%' AND n_fn like '%",$seStAr))."%')",
'email' => $_searchString, 1 => "(contact_email like '%".trim(implode("%' AND contact_email like '%",$seStAr))."%')",
'email_home' => $_searchString, 2 => "(contact_email_home like '%".trim(implode("%' AND contact_email_home like '%",$seStAr))."%')",
),array('n_fn','email','email_home'),'n_fn','','%',false,'OR',array(0,100),($showAccounts?array():array('account_id' => null))); ),array('n_fn','email','email_home'),'n_fn','','%',false,'OR',array(0,100),($showAccounts?array():array('account_id' => null)));
// additionally search the accounts, if the contact storage is not the account storage // additionally search the accounts, if the contact storage is not the account storage
if ($showAccounts && if ($showAccounts &&