Ignore:
Timestamp:
08/17/12 15:51:16 (12 years ago)
Author:
acoutinho
Message:

Ticket #3050 - Busca rapida de usuarios, os caracteres acentuados na mensagem aparecem errados.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.ldap_functions.inc.php

    r7000 r7062  
    114114                $ID                     = $params['ID']; 
    115115                 
    116                 $ldapService = ServiceLocator::getService('ldap'); 
    117                 $filter =  $ldapService->getSearchFilter($params['search_for']); 
     116                $ldapService = ServiceLocator::getService('ldap'); 
     117                $filter =  $ldapService->getSearchFilter($params['search_for']); 
    118118 
    119119                $contacts_result = array(); 
     
    132132                if ($this->ds) 
    133133                { 
    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' ) 
     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' ) 
    142142                        { 
    143                     $justthese[] = "jpegphoto"; 
    144                     $types = 'u'; 
    145                 } 
     143                                $justthese[] = "jpegphoto"; 
     144                                $types = 'u'; 
     145                        } 
    146146 
    147147                $filter = $ldapService->getSearchFilter( $params['search_for'], $types ); 
    148148 
    149149                $sr=@ldap_search($this->ds, $this->ldap_context, $filter, $justthese, 0, $this->max_result); 
    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); 
     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); 
    157157 
    158158            // New search only on user sector 
    159159            if ($count_entries == $this->max_result) 
    160160            { 
    161                 $overload = $count_entries; 
    162                                 } 
    163                                 else 
    164                                 { 
    165                                 $catalogsNum=count($this->external_srcs); 
    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++)      { 
    167167                                        if ($this->external_srcs[$i]["quicksearch"]) {  
    168168                                                $this->ldapConnect(true,$i); 
    169169                                                $filter="(|(cn=*$search_for*)(mail=*$search_for*))"; 
    170170                                                if($extendedinfo) 
    171                                         $justthese = array("cn", "mail", "telephonenumber", "uid","uidNumber", "mobile", "phpgwaccountvisible", "employeenumber", "ou"); 
     171                                                        $justthese = array("cn", "mail", "telephonenumber", "uid","uidNumber", "mobile", "phpgwaccountvisible", "employeenumber", "ou"); 
    172172                                                else  
    173173                                                        $justthese = array("cn", "mail", "telephoneNumber", "phpgwAccountVisible","uidNumber", "uid"); 
     
    185185                        } 
    186186 
    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'])) 
    191195                        { 
    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                } 
    202202 
    203203                        natcasesort($tmp_users_from_user_org); 
     
    219219                                } 
    220220                                $contacts_result['quickSearch_only_in_userSector'] = $quickSearch_only_in_userSector; 
    221                     $contacts_result['maxResult'] = $ldapService->limit; 
     221                                $contacts_result['maxResult'] = $ldapService->limit; 
    222222                        } 
    223223                        else 
     
    275275 
    276276                ldap_close($this->ds); 
    277  
    278277                return $contacts_result; 
    279278        } 
     
    329328                                                        return $this->quickSearch($params); 
    330329                                                else 
    331                                                         return $this->quickSearchAll($params);                                                   
     330                                                        return $this->quickSearchAll($params); 
    332331                } 
    333332            } 
     
    489488                        } 
    490489                        //---------------------------------------------------------------// 
    491                          
     490 
    492491            if($all == false) 
    493492                $info_return['type_catalog'] = "G"; 
     
    495494                        $info_return['extra_ldap_fields'] = $campos_extras;  
    496495                         
    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 
    500504                        $info_return['search_for'] = $params['search_for']; 
     505 
    501506            return $info_return;  
    502507        }  
Note: See TracChangeset for help on using the changeset viewer.