Ignore:
Timestamp:
05/27/11 17:57:48 (13 years ago)
Author:
airton
Message:

Ticket #1954 - Implementação de busca avançada no contactcenter

Location:
sandbox/2.2.0.2/contactcenter/inc
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.2.0.2/contactcenter/inc/class.abo_catalog.inc.php

    r4538 r4544  
    523523                                                        } 
    524524                                                        break; 
    525                                                                                          
     525                                                case 'customFilter': 
     526                                                case 'exact': 
     527                                                case 'CN': 
     528                                                        break; 
     529                                                 
    526530                                                default: 
    527531                                                        exit('Invalid \'other\' field passed to find in file '.__FILE__.' on line '.__LINE__); 
  • sandbox/2.2.0.2/contactcenter/inc/class.bo_global_ldap_catalog.inc.php

    r4538 r4544  
    219219                    require_once $_SESSION['rootPath'].'/API/class.servicelocator.php'; 
    220220                    $ldapService = ServiceLocator::getService('ldap'); 
    221                     $filter =  $ldapService->getSearchFilter($find); 
     221 
     222                    if($other['customFilter']) 
     223                        $filter =  $ldapService->getSearchFilter( $other['CN'], false, $find, $other['exact'] ); 
     224                    else 
     225                        $filter =  $ldapService->getSearchFilter( $find ); 
     226 
    222227                    $fields = array('cn','dn'); 
    223228                    $ldap = $GLOBALS['phpgw']->common->ldapConnect($this->src_info['host'], $this->src_info['acc'], $this->src_info['pw'], true); 
  • sandbox/2.2.0.2/contactcenter/inc/class.ui_data.inc.php

    r4538 r4544  
    1919                var $public_functions = array( 
    2020                        'data_manager' => true, 
     21                        'advanced_searh_fields' => true 
    2122                ); 
    2223 
     
    262263                        $GLOBALS['phpgw']->template->set_var('cc_msg_add_contact_to_group', lang('You did not add any contact for this group.')); 
    263264                        $GLOBALS['phpgw']->template->set_var('cc_msg_fill_field_name', lang('Fill the field Full Name')); 
     265                         
     266                         
     267 
     268 
     269                            /* 
     270                             * Monta Contactcenter Busca Avancada 
     271                             */ 
     272                            $c = CreateObject('phpgwapi.config','contactcenter'); 
     273                            $c->read_repository(); 
     274                            $current_config = $c->config_data; 
     275 
     276                            $arraySearch = array(); 
     277                            foreach ($current_config as $index => $value) 
     278                            { 
     279 
     280                                if(substr($index, 0, 24) == 'cc_attribute_searchable_') 
     281                                { 
     282                                    if($value == 'true') 
     283                                    { 
     284                                        $v = substr($index, 24, strlen($index)); 
     285                                        $arraySearch[] = $v; 
     286                                    } 
     287                                } 
     288                            } 
     289                            $advanceSearchArray = array(); 
     290                            foreach ($arraySearch as $value) 
     291                            { 
     292                                foreach ($current_config as $index => $value2) 
     293                                { 
     294                                    if($value == substr($index, 22, strlen($index)) && substr($index, 0, 22) == 'cc_attribute_ldapname_') 
     295                                    { 
     296                                        foreach ($current_config as $index2 => $value3) 
     297                                        { 
     298                                            if($value == substr($index2, 18, strlen($index2)) && substr($index2, 0, 18) == 'cc_attribute_name_') 
     299                                                 $advanceSearchArray[$value2] =  $value3; 
     300                                        } 
     301                                    } 
     302 
     303                                } 
     304                            } 
     305 
     306                            $advanceSearch = array(); 
     307                            foreach ($advanceSearchArray as $index => $value) 
     308                                $advanceSearch[] ='"'.$index.'":"'.$value.'"'; 
     309 
     310                            $advancedFields =  "{".implode(',',$advanceSearch)."}"; 
     311 
     312 
     313                        $GLOBALS['phpgw']->template->set_var('cc_config_advanced_search', $advancedFields); 
    264314 
    265315                        $select_groups = ''; 
     
    31943244                        { 
    31953245 
    3196                                 $data['search_for'] = utf8_encode($data['search_for']); 
     3246                                $data['search_for'] = ($data['search_for']); 
    31973247                        } 
    31983248 
     
    33193369                                // Get only this attributes: dn, cn for external catalogs, 
    33203370                                // used to restrict the attributes used in filters 
    3321                                 $ids = $this->bo->find(array($data['fields']['id'], $data['fields']['search']), $rules, array('order' => $data['fields']['search'], 'sort' => 'ASC'), $data['search_for'] != null); 
     3371                                $ids = $this->bo->find(array($data['fields']['id'], $data['fields']['search']), $rules, array('order' => $data['fields']['search'], 'sort' => 'ASC', 'customFilter' => $data['custom_filter'], 'CN' => $data['CN'], 'exact' => $data['exact']), $data['search_for'] != null); 
    33223372                        } 
    33233373                        else 
     
    33333383                                        'contact.connection.mail', 
    33343384                                        'contact.connection.phone' 
    3335                                         ), $rules, array('order' => $data['fields']['search'], 'sort' => 'ASC'), $data['search_for_area'], $data['search_for'] != null ); 
     3385                                        ), $rules, array('order' => $data['fields']['search'], 'sort' => 'ASC', 'customFilter' => $data['custom_filter'], 'CN' => $data['CN'], 'exact' => $data['exact']), $data['search_for_area'], $data['search_for'] != null ); 
    33363386                        } 
    33373387 
Note: See TracChangeset for help on using the changeset viewer.