From 9a6c38e14895bd093627e12f2fcf2c6ff1e3af3c Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Fri, 11 Jan 2013 08:39:23 -0500
Subject: [PATCH] New feature to export only selected contacts from addressbook (by Phil Weir)

---
 program/steps/addressbook/export.inc |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/program/steps/addressbook/export.inc b/program/steps/addressbook/export.inc
index 850795c..bf0657b 100644
--- a/program/steps/addressbook/export.inc
+++ b/program/steps/addressbook/export.inc
@@ -56,6 +56,29 @@
     $result = new rcube_result_set($count);
     $result->records = array_values($records);
 }
+// selected contacts
+else if (!empty($_REQUEST['_cid'])) {
+    $sort_col = $RCMAIL->config->get('addressbook_sort_col', 'name');
+    $records = array();
+
+    $cids = explode(',', get_input_value('_cid', RCUBE_INPUT_GET));
+    $CONTACTS = rcmail_contact_source(null, true);
+
+    // Get records from all sources
+    foreach ($cids as $cid) {
+        $record = $CONTACTS->get_record($cid, true);
+        $key = rcmail_contact_key($record, $sort_col);
+        $records[$key] = $record;
+        unset($record);
+    }
+
+    ksort($records, SORT_LOCALE_STRING);
+
+    // create resultset object
+    $count  = count($records);
+    $result = new rcube_result_set($count);
+    $result->records = array_values($records);
+}
 // selected directory/group
 else {
     $CONTACTS = rcmail_contact_source(null, true);

--
Gitblit v1.9.1