Changeset 5707 for sandbox/webservice/api/json-rpc/Catalog.php
- Timestamp:
- 03/12/12 18:48:44 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sandbox/webservice/api/json-rpc/Catalog.php
r5699 r5707 7 7 public function getUserContacts($params){ 8 8 if($this->isLoggedIn($params)) { 9 if($params && $params['contactID'] > 0) 10 $query_contact = 'A.id_contact='.$params['contactID'].' and'; 9 $search = ""; 10 if($params) { 11 12 $search = trim($params['search']); 13 if($params['contactID'] > 0){ 14 $query_contact = 'A.id_contact='.$params['contactID'].' and'; 15 } 16 elseif($search != "") { 17 $search = mb_convert_encoding($search,"ISO_8859-1", "UTF8"); 18 } 19 20 if(($search || $params['contactID']) && $params['contactType'] == 2){ 21 return $this->getGlobalContacts($search, $params['contactID']); 22 } 23 } 11 24 12 25 $query = 'select B.id_typeof_contact_connection, A.photo, A.id_contact, A.alias, A.given_names, A.family_names, A.names_ordered, A.birthdate, A.notes, C.connection_value from phpgw_cc_contact A, '. … … 39 52 'contactHasImagePicture' => ($row['photo'] != null ? 1 : 0), 40 53 ); 54 if($search != null && 55 stristr($contacts[$id]['contactAlias'], $search) == null && 56 stristr($contacts[$id]['contactFirstName'], $search) == null && 57 stristr($contacts[$id]['contactLastName'], $search) == null && 58 stristr($contacts[$id]['contactFullName'], $search) == null && 59 stristr($contacts[$id]['contactBirthDate'], $search) == null && 60 stristr($contacts[$id]['contactNotes'], $search) == null){ 61 unset($contacts[$id]); 62 } 41 63 } 42 64 } … … 66 88 return $this->getResponse(); 67 89 } 90 91 private function getUserLdapAttrs($mail) 92 { 93 $filter="(&(phpgwAccountType=u)(mail=".$mail."))"; 94 $ldap_context = $_SESSION['phpgw_info']['expressomail']['ldap_server']['dn']; 95 $justthese = array("dn", 'jpegPhoto','givenName', 'sn'); 96 $this->getLdapCatalog()->ldapConnect(true); 97 $ds = $this->getLdapCatalog()->ds; 98 if ($ds){ 99 $sr = @ldap_search($ds, $ldap_context, $filter, $justthese); 100 if ($sr) { 101 $entry = ldap_first_entry($ds, $sr); 102 if($entry) { 103 $givenName = @ldap_get_values_len($ds, $entry, "givenname"); 104 $sn = @ldap_get_values_len($ds, $entry, "sn"); 105 $contactHasImagePicture = (@ldap_get_values_len($ds, $entry, "jpegphoto") ? 1 : 0); 106 $dn = ldap_get_dn($ds, $entry); 107 return array( 108 "contactID" => $dn, 109 "contactFirstName" => $givenName[0], 110 "contactLastName" => $sn[0], 111 "contactHasImagePicture" => $contactHasImagePicture 112 ); 113 } 114 } 115 } 116 return false; 117 } 68 118 69 public function getGlobalContacts($params){ 119 private function getGlobalContacts($search, $uidNumber){ 120 $contacts = array(); 121 $params = array ("search_for" => $search); 122 $result = $this->getLdapCatalog()->quicksearch($params); 123 124 foreach($result as $i => $row) { 125 if(is_int($i)) { 126 $contacts[$i] = array( 127 'contactMails' => array($result[$i]['mail']), 128 'contactPhones' => array($result[$i]['phone']), 129 'contactAlias' => "", 130 'contactFullName' => ($result[$i]['cn'] != null ? mb_convert_encoding($row['cn'],"UTF8", "ISO_8859-1") : ""), 131 'contactBirthDate' => "", 132 'contactNotes' => "" 133 ); 134 // Buscar atributos faltantes. 135 $contacts[$i] = array_merge($this->getUserLdapAttrs($result[$i]['mail']), $contacts[$i]); 136 } 137 } 138 $this->result = array ('contacts' => $contacts); 70 139 71 if($this->isLoggedIn($params)) {72 $this->result = array ('contacts' => $contacts);73 }74 140 return $this->getResponse(); 75 141 }
Note: See TracChangeset
for help on using the changeset viewer.