Changeset 1446 for trunk/workflow/inc/class.so_userinterface.inc.php
- Timestamp:
- 09/23/09 17:26:50 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/workflow/inc/class.so_userinterface.inc.php
r1310 r1446 352 352 { 353 353 /* initialize some variables */ 354 $output = array('employees' => array() );354 $output = array('employees' => array(), 'bygroup' => array( ) ); 355 355 $ldapResult = array(); 356 356 357 357 /* search for the $searchTerm in the LDAP */ 358 358 $ldap = &$GLOBALS['workflow']['workflowObjects']->getLDAP(); 359 359 360 $list = @ldap_search($ldap, $GLOBALS['workflow']['factory']->getInstance('WorkflowLDAP')->getLDAPContext(), ('(&(cn=*' . $searchTerm . '*)(phpgwaccounttype=u))'), array('uidNumber', 'cn', 'telephoneNumber')); 360 361 if ($list === false) … … 367 368 368 369 /* check if any result was found */ 369 if (count($ldapResult) < 1) 370 return $output; 370 //if (count($ldapResult) < 1) 371 // return $output; 372 373 $uids = implode( ',', array_keys( $ldapResult ) ); 371 374 372 375 /* load employee information */ 373 $query = "SELECT f.funcionario_id AS funcionario_id, f.area_id AS area_id, a.sigla AS area FROM funcionario f, area a, funcionario_status s WHERE (f.area_id = a.area_id) AND (f.organizacao_id = $organizationID) AND (f.funcionario_id IN (" . implode(',', array_keys($ldapResult)) .")) AND (f.funcionario_status_id = s.funcionario_status_id) AND (s.exibir = 'S')"; 374 $result = $this->db->query($query); 376 $query = 'SELECT f.funcionario_id AS funcionario_id, f.area_id AS area_id, a.sigla AS area'; 377 $query .= ' FROM funcionario f, area a, funcionario_status s'; 378 $query .= " WHERE (f.area_id = a.area_id) AND (f.organizacao_id = {$organizationID})"; 379 $query .= " AND (" . ( ( ! empty( $uids ) ) ? "f.funcionario_id IN ({$uids}) OR " : '' ); 380 $query .= " a.sigla LIKE UPPER(?))"; 381 $query .= " AND (f.funcionario_status_id = s.funcionario_status_id) AND (s.exibir = 'S')"; 382 $query .= " ORDER BY a.sigla asc"; 383 384 $result = $this->db->query($query, array( "%{$searchTerm}%" ) ); 385 386 if ( ! $result ) 387 return array( ); 388 389 $uids = array( ); 375 390 376 391 $employees = $result->GetArray(-1); … … 379 394 for ($j = 0; $j < $result->_numOfFields; $j++) 380 395 unset($employees[$i][$j]); 381 $employees[$i]['cn'] = is_null($ldapResult[$employees[$i]['funcionario_id']]['cn']) ? '' : $ldapResult[$employees[$i]['funcionario_id']]['cn']; 382 $employees[$i]['telephoneNumber'] = is_null($ldapResult[$employees[$i]['funcionario_id']]['telephoneNumber']) ? '' : $ldapResult[$employees[$i]['funcionario_id']]['telephoneNumber']; 383 } 384 385 $output['employees'] = $employees; 396 397 if ( array_key_exists( $employees[$i]['funcionario_id'], $ldapResult ) ) 398 { 399 $employees[$i]['cn'] = is_null($ldapResult[$employees[$i]['funcionario_id']]['cn']) ? '' : $ldapResult[$employees[$i]['funcionario_id']]['cn']; 400 $employees[$i]['telephoneNumber'] = is_null($ldapResult[$employees[$i]['funcionario_id']]['telephoneNumber']) ? '' : $ldapResult[$employees[$i]['funcionario_id']]['telephoneNumber']; 401 } 402 else 403 { 404 $employees[$i]['cn'] = $employees[$i]['funcionario_id']; 405 $employees[$i]['telephoneNumber'] = ''; 406 407 $output['bygroup'][ $employees[$i]['funcionario_id'] ] = $employees[ $i ]; 408 array_splice( $employees, $i--, 1 ); 409 } 410 } 411 412 if ( count( $output['bygroup'] ) ) 413 { 414 $list = ldap_search($ldap, $GLOBALS['workflow']['factory']->getInstance('WorkflowLDAP')->getLDAPContext(), ('(&(|(uidNumber=' . implode( ')(uidNumber=', array_keys( $output['bygroup'] ) ) . '))(phpgwaccounttype=u))'), array('uidNumber', 'cn', 'telephoneNumber')); 415 416 if ( $list !== false ) 417 { 418 $entries = ldap_get_entries($ldap, $list); 419 420 for ( $i = 0; $i < $entries[ 'count' ]; $i++ ) 421 { 422 $output[ 'bygroup' ][ $entries[$i]['uidnumber'][0] ][ 'cn' ] = $entries[$i]['cn'][0]; 423 $output[ 'bygroup' ][ $entries[$i]['uidnumber'][0] ][ 'telephoneNumber' ] = $entries[$i]['telephonenumber'][0]; 424 } 425 } 426 } 427 428 $output[ 'bygroup' ] = array_values( $output[ 'bygroup' ] ); 429 $output[ 'employees' ] = $employees; 430 386 431 return $output; 387 432 }
Note: See TracChangeset
for help on using the changeset viewer.