Changeset 7062
- Timestamp:
- 08/17/12 15:51:16 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/inc/class.ldap_functions.inc.php
r7000 r7062 114 114 $ID = $params['ID']; 115 115 116 117 116 $ldapService = ServiceLocator::getService('ldap'); 117 $filter = $ldapService->getSearchFilter($params['search_for']); 118 118 119 119 $contacts_result = array(); … … 132 132 if ($this->ds) 133 133 { 134 135 136 137 138 139 140 141 134 $ldapService->connection = $this->ds; 135 if($extendedinfo) 136 $justthese = array("cn", "mail", "telephonenumber", "uid","uidNumber", "mobile", "phpgwaccountvisible", "employeenumber", "ou"); 137 else 138 $justthese = array("cn", "mail", "telephoneNumber", "phpgwAccountVisible", "uidNumber","uid"); 139 $types = false; 140 141 if( $field == 'null' || $ID == 'null' ) 142 142 { 143 144 145 143 $justthese[] = "jpegphoto"; 144 $types = 'u'; 145 } 146 146 147 147 $filter = $ldapService->getSearchFilter( $params['search_for'], $types ); 148 148 149 149 $sr=@ldap_search($this->ds, $this->ldap_context, $filter, $justthese, 0, $this->max_result); 150 151 152 153 154 155 156 150 151 if(!$sr) 152 return null; 153 154 $count_entries = ldap_count_entries($this->ds,$sr); 155 156 $info = ldap_get_entries($this->ds, $sr); 157 157 158 158 // New search only on user sector 159 159 if ($count_entries == $this->max_result) 160 160 { 161 162 163 164 165 166 for ($i=0; $i<=$catalogsNum; $i++) {161 $overload = $count_entries; 162 } 163 else 164 { 165 $catalogsNum=count($this->external_srcs); 166 for ($i=0; $i<=$catalogsNum; $i++) { 167 167 if ($this->external_srcs[$i]["quicksearch"]) { 168 168 $this->ldapConnect(true,$i); 169 169 $filter="(|(cn=*$search_for*)(mail=*$search_for*))"; 170 170 if($extendedinfo) 171 171 $justthese = array("cn", "mail", "telephonenumber", "uid","uidNumber", "mobile", "phpgwaccountvisible", "employeenumber", "ou"); 172 172 else 173 173 $justthese = array("cn", "mail", "telephoneNumber", "phpgwAccountVisible","uidNumber", "uid"); … … 185 185 } 186 186 187 $tmp = array(); 188 $tmp_users_from_user_org = array(); 189 190 for ($i=0; $i<$info["count"]; $i++) 187 $tmp = array(); 188 $tmp_users_from_user_org = array(); 189 190 for ($i=0; $i<$info["count"]; $i++) 191 { 192 $key = $info[$i]["mail"][0] . '%' . $info[$i]["telephonenumber"][0] . '%'. $info[$i]["mobile"][0] . '%' . $info[$i]["uid"][0] . '%' . $info[$i]["jpegphoto"]['count'] . '%' . $info[$i]["employeenumber"][0] . '%' . $info[$i]["ou"][0]; 193 194 if (/*(!$quickSearch_only_in_userSector) &&*/ preg_match("/$user_sector_dn/i", $info[$i]['dn'])) 191 195 { 192 $key = $info[$i]["mail"][0] . '%' . $info[$i]["telephonenumber"][0] . '%'. $info[$i]["mobile"][0] . '%' . $info[$i]["uid"][0] . '%' . $info[$i]["jpegphoto"]['count'] . '%' . $info[$i]["employeenumber"][0] . '%' . $info[$i]["ou"][0]; 193 194 if (/*(!$quickSearch_only_in_userSector) &&*/ preg_match("/$user_sector_dn/i", $info[$i]['dn'])) 195 { 196 $tmp_users_from_user_org[$key] = utf8_decode($info[$i]["cn"][0]); 197 continue; 198 } 199 200 $tmp[$key] = utf8_decode($info[$i]["cn"][0]); 201 } 196 $tmp_users_from_user_org[$key] = utf8_decode($info[$i]["cn"][0]); 197 continue; 198 } 199 200 $tmp[$key] = utf8_decode($info[$i]["cn"][0]); 201 } 202 202 203 203 natcasesort($tmp_users_from_user_org); … … 219 219 } 220 220 $contacts_result['quickSearch_only_in_userSector'] = $quickSearch_only_in_userSector; 221 221 $contacts_result['maxResult'] = $ldapService->limit; 222 222 } 223 223 else … … 275 275 276 276 ldap_close($this->ds); 277 278 277 return $contacts_result; 279 278 } … … 329 328 return $this->quickSearch($params); 330 329 else 331 return $this->quickSearchAll($params); 330 return $this->quickSearchAll($params); 332 331 } 333 332 } … … 489 488 } 490 489 //---------------------------------------------------------------// 491 490 492 491 if($all == false) 493 492 $info_return['type_catalog'] = "G"; … … 495 494 $info_return['extra_ldap_fields'] = $campos_extras; 496 495 497 foreach($info_return as $i=>$value) 498 $info_return[$i]['type_contact'] = "G"; 499 496 foreach($info_return as &$value){ 497 $value['type_contact'] = "G"; 498 499 //Converte a descrição dos filtros para ISO8859 corrigindo inconsitências com caractéres especiais 500 if(isset($value['vacationinfo']) && isset($value['vacationinfo'][0]) && $value['vacationinfo'][0] != '') 501 $value['vacationinfo'][0] = $this->toISO8859($value['vacationinfo'][0]); 502 } 503 500 504 $info_return['search_for'] = $params['search_for']; 505 501 506 return $info_return; 502 507 }
Note: See TracChangeset
for help on using the changeset viewer.