If you enter a numeric search query it is treated as part of a phone number.
Because ConTagged has to deal with any possible formatting in the phone number
entries and the limits of LDAP search filters it will match any number where
the given digits occur in the same order (but not nesserally besides each others)
Eg. a search for 3940 will match the number +49 30 22 49 46 30
darcs-hash:
20070627120322-6e07b-
6c934b3f883a8cb9f84f171e2f7670727c51bdf0.gz
if (empty($_REQUEST['search'])) { $_REQUEST['search']=''; }
if (empty($_REQUEST['org'])) { $_REQUEST['org']=''; }
if (empty($_REQUEST['marker'])) { $_REQUEST['marker']=''; }
if (empty($_REQUEST['search'])) { $_REQUEST['search']=''; }
if (empty($_REQUEST['org'])) { $_REQUEST['org']=''; }
if (empty($_REQUEST['marker'])) { $_REQUEST['marker']=''; }
+ if(is_numeric($_REQUEST['search'])) $number = $_REQUEST['search'];
$filter = ldap_filterescape($_REQUEST['filter']);
$search = ldap_filterescape($_REQUEST['search']);
$org = ldap_filterescape($_REQUEST['org']);
$filter = ldap_filterescape($_REQUEST['filter']);
$search = ldap_filterescape($_REQUEST['search']);
$org = ldap_filterescape($_REQUEST['org']);
$ldapfilter .= '('.$FIELDS['_marker'].'='.$m.')';
}
$ldapfilter .= ')';
$ldapfilter .= '('.$FIELDS['_marker'].'='.$m.')';
}
$ldapfilter .= ')';
+ }elseif($number){
+ // Search by telephone number
+ $filter = '';
+ // add wildcards between digits to compensate for any formatting
+ $length = strlen($number);
+ for($i=0; $i <$length; $i++){
+ $filter .= '*'.$number{$i};
+ }
+ $filter .= '*';
+ $ldapfilter = '(&'.
+ '(objectClass=inetOrgPerson)'.
+ '(|'.
+ '(|'.
+ '('.$FIELDS['phone'].'='.$filter.')'.
+ '('.$FIELDS['homephone'].'='.$filter.')'.
+ ')'.
+ '('.$FIELDS['homephone'].'='.$filter.')'.
+ ')'.
+ ')';
}elseif(!empty($search)){
// Search name and organization
$search = trim($search);
}elseif(!empty($search)){
// Search name and organization
$search = trim($search);