| | |
| | | <?php |
| | | |
| | | /* |
| | | /** |
| | | +-----------------------------------------------------------------------+ |
| | | | program/steps/mail/search_contacts.inc | |
| | | | | |
| | | | This file is part of the Roundcube Webmail client | |
| | | | Copyright (C) 2013, The Roundcube Dev Team | |
| | | | Copyright (C) 2013-2014, The Roundcube Dev Team | |
| | | | | |
| | | | Licensed under the GNU General Public License version 3 or | |
| | | | any later version with exceptions for skins & plugins. | |
| | |
| | | +-----------------------------------------------------------------------+ |
| | | */ |
| | | |
| | | $search = get_input_value('_q', RCUBE_INPUT_GPC, true); |
| | | $search = rcube_utils::get_input_value('_q', rcube_utils::INPUT_GPC, true); |
| | | $sources = $RCMAIL->get_address_sources(); |
| | | $search_mode = (int) $RCMAIL->config->get('addressbook_search_mode'); |
| | | $addr_sort_col = $RCMAIL->config->get('addressbook_sort_col', 'name'); |
| | |
| | | $page_size = $RCMAIL->config->get('addressbook_pagesize', $RCMAIL->config->get('pagesize', 50)); |
| | | $records = array(); |
| | | $search_set = array(); |
| | | $jsresult = array(); |
| | | |
| | | foreach ($sources as $s) { |
| | | $source = $RCMAIL->get_address_book($s['id']); |
| | | $source->set_page(1); |
| | | $source->set_pagesize(9999); |
| | | |
| | | // list matching groups of this source |
| | | if ($source->groups) { |
| | | $jsresult += rcmail_compose_contact_groups($source, $s['id'], $search, $search_mode); |
| | | } |
| | | |
| | | // get contacts count |
| | | $result = $source->search($afields, $search, $search_mode, true, true, 'email'); |
| | |
| | | $search_set[$s['id']] = $source->get_search_set(); |
| | | unset($result); |
| | | } |
| | | |
| | | $group_count = count($jsresult); |
| | | |
| | | // sort the records |
| | | ksort($records, SORT_LOCALE_STRING); |
| | |
| | | // (same as in list_contacts.inc) |
| | | $emails = $source->get_col_values('email', $row, true); |
| | | foreach ($emails as $i => $email) { |
| | | $row_id = $row['ID'].$i; |
| | | $row_id = $row['ID'].'-'.$i; |
| | | $jsresult[$row_id] = format_email_recipient($email, $name); |
| | | $OUTPUT->command('add_contact_row', $row_id, array( |
| | | 'contact' => html::span(array('title' => $email), Q($name ? $name : $email) . |
| | | ($name && count($emails) > 1 ? ' ' . html::span('email', Q($email)) : '') |
| | | 'contact' => html::a(array('title' => $email), rcube::Q($name ?: $email) . |
| | | ($name && count($emails) > 1 ? ' ' . html::span('email', rcube::Q($email)) : '') |
| | | )), 'person'); |
| | | } |
| | | } |
| | |
| | | $OUTPUT->command('set_env', 'source', ''); |
| | | $OUTPUT->command('unselect_directory'); |
| | | } |
| | | else { |
| | | else if (!$group_count) { |
| | | $OUTPUT->show_message('nocontactsfound', 'notice'); |
| | | } |
| | | |