/** * Extracts all matching contacts with email address and name * * @param string $term * @return array */ public function getMatchingRecipient($term) { if (!$this->contactsManager->isEnabled()) { return []; } $result = $this->contactsManager->search($term, ['FN', 'EMAIL']); $receivers = []; foreach ($result as $r) { $id = $r['id']; $fn = $r['FN']; if (!isset($r['EMAIL'])) { continue; } $email = $r['EMAIL']; if (!is_array($email)) { $email = [$email]; } // loop through all email addresses of this contact foreach ($email as $e) { $displayName = "\"{$fn}\" <{$e}>"; $receivers[] = ['id' => $id, 'label' => $displayName, 'value' => $displayName]; } } return $receivers; }
/** * Extracts all matching contacts with email address and name * * @param string $term * @return array */ public function getMatchingLocaction($term) { if (!$this->contactsManager->isEnabled()) { return array(); } $result = $this->contactsManager->search($term, array('FN', 'ADR', 'N')); //$addressDefArray=array('0'=>'','1'=>'','2'=>'street','3'=>'city','4'=>'','5'=>'postalcode','6'=>'country'); //$aDefNArray=array('0'=>'lname','1'=>'fname','2'=>'anrede', '3'=>'title'); $receivers = array(); foreach ($result as $r) { $id = $r['id']; $fn = $r['FN']; $name = ''; if (isset($r['N'])) { list($lastname, $surename, $gender, $title) = $r['N']; $name = !empty($surename) ? $surename : ''; $name .= !empty($lastname) ? ' ' . $lastname : ''; $name = '(' . $name . ')'; //$name .= (!empty($gender)?$gender:''); //$name .= (!empty($title)?' '.$title:''); } $address = $r['ADR']; if (!is_array($address)) { $address = array($address); } // loop through all email addresses of this contact foreach ($address as $e) { $aAddr = ''; list($zero, $one, $street, $city, $four, $postalcode, $country) = $e; $aAddr = !empty($street) ? $street : ''; $aAddr .= !empty($postalcode) ? ', ' . $postalcode . ' ' : ''; $aAddr .= !empty($city) ? $city : ''; $aAddr .= !empty($country) ? ', ' . $country : ''; $displayName = "\"{$fn}\" {$name} {$aAddr}"; $valueAddr = $aAddr; $receivers[] = array('id' => $id, 'label' => $displayName, 'value' => $valueAddr); } } return $receivers; }