| | |
| | | +-----------------------------------------------------------------------+ |
| | | */ |
| | | |
| | | $afields = $RCMAIL->config->get('contactlist_fields'); |
| | | $sort_col = $RCMAIL->config->get('addressbook_sort_col', 'name'); |
| | | $page_size = $RCMAIL->config->get('addressbook_pagesize', $RCMAIL->config->get('pagesize', 50)); |
| | | $page = max(1, intval($_GET['_page'])); |
| | | $afields = $RCMAIL->config->get('contactlist_fields'); |
| | | $addr_sort_col = $RCMAIL->config->get('addressbook_sort_col', 'name'); |
| | | $page_size = $RCMAIL->config->get('addressbook_pagesize', $RCMAIL->config->get('pagesize', 50)); |
| | | $list_page = max(1, intval($_GET['_page'])); |
| | | |
| | | // Use search result |
| | | if (!empty($_REQUEST['_search']) && isset($_SESSION['search'][$_REQUEST['_search']])) { |
| | |
| | | |
| | | while ($row = $result->next()) { |
| | | $row['sourceid'] = $s; |
| | | $key = rcube_addressbook::compose_contact_key($row, $sort_col); |
| | | $key = rcube_addressbook::compose_contact_key($row, $addr_sort_col); |
| | | $records[$key] = $row; |
| | | } |
| | | unset($result); |
| | |
| | | |
| | | // create resultset object |
| | | $count = count($records); |
| | | $first = ($page-1) * $page_size; |
| | | $first = ($list_page-1) * $page_size; |
| | | $result = new rcube_result_set($count, $first); |
| | | |
| | | // we need only records for current page |
| | |
| | | } |
| | | // list contacts from selected source |
| | | else { |
| | | $source = get_input_value('_source', RCUBE_INPUT_GPC); |
| | | $source = rcube_utils::get_input_value('_source', rcube_utils::INPUT_GPC); |
| | | $CONTACTS = $RCMAIL->get_address_book($source); |
| | | |
| | | if ($CONTACTS && $CONTACTS->ready) { |
| | | // set list properties |
| | | $CONTACTS->set_pagesize($page_size); |
| | | $CONTACTS->set_page($page); |
| | | $CONTACTS->set_page($list_page); |
| | | |
| | | if ($group_id = get_input_value('_gid', RCUBE_INPUT_GPC)) { |
| | | if ($group_id = rcube_utils::get_input_value('_gid', rcube_utils::INPUT_GPC)) { |
| | | $CONTACTS->set_group($group_id); |
| | | } |
| | | // list groups of this source (on page one) |
| | |
| | | $row_id = 'G'.$group['ID']; |
| | | $jsresult[$row_id] = format_email_recipient($email, $group['name']); |
| | | $OUTPUT->command('add_contact_row', $row_id, array( |
| | | 'contactgroup' => html::span(array('title' => $email), Q($group['name']))), 'group'); |
| | | 'contactgroup' => html::span(array('title' => $email), rcube::Q($group['name']))), 'group'); |
| | | } |
| | | } |
| | | // make virtual groups clickable to list their members |
| | |
| | | 'contactgroup' => html::a(array( |
| | | 'href' => '#list', |
| | | 'rel' => $row['ID'], |
| | | 'title' => rcube_label('listgroup'), |
| | | 'onclick' => sprintf("return %s.command('pushgroup',{'source':'%s','id':'%s'},this,event)", JS_OBJECT_NAME, $source, $group['ID']), |
| | | ), Q($group['name']) . ' ' . html::span('action', '»'))), |
| | | 'title' => $RCMAIL->gettext('listgroup'), |
| | | 'onclick' => sprintf("return %s.command('pushgroup',{'source':'%s','id':'%s'},this,event)", rcmail_output::JS_OBJECT_NAME, $source, $group['ID']), |
| | | ), rcube::Q($group['name']) . ' ' . html::span('action', '»'))), |
| | | 'group', |
| | | array('ID' => $group['ID'], 'name' => $group['name'], 'virtual' => true)); |
| | | } |
| | |
| | | $row_id = 'E'.$group['ID']; |
| | | $jsresult[$row_id] = $group['name']; |
| | | $OUTPUT->command('add_contact_row', $row_id, array( |
| | | 'contactgroup' => Q($group['name'] . ' (' . intval($result->count) . ')')), 'group'); |
| | | 'contactgroup' => rcube::Q($group['name'] . ' (' . intval($result->count) . ')')), 'group'); |
| | | } |
| | | } |
| | | |
| | |
| | | // add record for every email address of the contact |
| | | $emails = $CONTACTS->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); |
| | | $classname = $row['_type'] == 'group' ? 'group' : 'person'; |
| | | $keyname = $row['_type'] == 'group' ? 'contactgroup' : 'contact'; |
| | | |
| | | $OUTPUT->command('add_contact_row', $row_id, array( |
| | | $keyname => html::span(array('title' => $email), Q($name ? $name : $email) . |
| | | ($name && count($emails) > 1 ? ' ' . html::span('email', Q($email)) : '') |
| | | $keyname => html::span(array('title' => $email), rcube::Q($name ? $name : $email) . |
| | | ($name && count($emails) > 1 ? ' ' . html::span('email', rcube::Q($email)) : '') |
| | | )), $classname); |
| | | } |
| | | } |