From ade8e117dfbb62f6dbd16b4aca81dfbdbd054579 Mon Sep 17 00:00:00 2001 From: thomascube Date: Tue, 2 Sep 2008 07:42:46 +0000 Subject: Let rcmail class create address book instances --- program/steps/addressbook/copy.inc | 9 +++------ program/steps/addressbook/func.inc | 11 +---------- program/steps/mail/addcontact.inc | 16 ++-------------- 3 files changed, 6 insertions(+), 30 deletions(-) (limited to 'program/steps') diff --git a/program/steps/addressbook/copy.inc b/program/steps/addressbook/copy.inc index af8b87c40..268903bf5 100644 --- a/program/steps/addressbook/copy.inc +++ b/program/steps/addressbook/copy.inc @@ -23,12 +23,9 @@ $cid = get_input_value('_cid', RCUBE_INPUT_POST); $target = get_input_value('_to', RCUBE_INPUT_POST); if ($cid && preg_match('/^[a-z0-9\-_=]+(,[a-z0-9\-_=]+)*$/i', $cid) && strlen($target) && $target != $source) { - if ($target != '0') - $TARGET = new rcube_ldap($CONFIG['ldap_public'][$target]); - else - $TARGET = new rcube_contacts($DB, $_SESSION['user_id']); - - $success = false; + $success = false; + $TARGET = $RCMAIL->get_address_book($target); + if ($TARGET && $TARGET->ready && !$TARGET->readonly) $success = $TARGET->insert($CONTACTS->search($CONTACTS->primary_key, $cid), true); diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc index 98c56af78..c4fbab219 100644 --- a/program/steps/addressbook/func.inc +++ b/program/steps/addressbook/func.inc @@ -20,16 +20,7 @@ */ // instantiate a contacts object according to the given source -if (($source = get_input_value('_source', RCUBE_INPUT_GPC)) && isset($CONFIG['ldap_public'][$source])) - $CONTACTS = new rcube_ldap($CONFIG['ldap_public'][$source]); -else if (strtolower($CONFIG['address_book_type']) == 'ldap') { - // Get the first LDAP address book. - $source = key((array)$CONFIG['ldap_public']); - $prop = current((array)$CONFIG['ldap_public']); - $CONTACTS = new rcube_ldap($prop); -} else { - $CONTACTS = new rcube_contacts($DB, $_SESSION['user_id']); -} // end else +$CONTACTS = $RCMAIL->get_address_book(($source = get_input_value('_source', RCUBE_INPUT_GPC))); $CONTACTS->set_pagesize($CONFIG['pagesize']); diff --git a/program/steps/mail/addcontact.inc b/program/steps/mail/addcontact.inc index aefdd83de..d98d71faf 100644 --- a/program/steps/mail/addcontact.inc +++ b/program/steps/mail/addcontact.inc @@ -20,22 +20,10 @@ */ $done = false; +$CONTACTS = $RCMAIL->get_address_book(null, true); -if (!empty($_POST['_address'])) +if (!empty($_POST['_address']) && is_object($CONTACTS)) { - $CONTACTS = array(); - if (strtolower($CONFIG['address_book_type']) == 'ldap') { - // Use the first writable LDAP address book. - foreach ($CONFIG["ldap_public"] as $id => $prop) { - if ($prop["writable"]) { - $CONTACTS = new rcube_ldap($prop); - break; - } // end if - } // end foreach - } // end if - else { - $CONTACTS = new rcube_contacts($DB, $_SESSION['user_id']); - } // end else $contact_arr = $IMAP->decode_address_list(get_input_value('_address', RCUBE_INPUT_POST, true), 1, false); if (!empty($contact_arr[1]['mailto'])) -- cgit v1.2.3