alecpl
2012-04-13 0d5240e15d581f9d6da411f44584b56051161573
- Import contacts to default addressbook


2 files modified
29 ■■■■■ changed files
plugins/vcard_attachments/package.xml 2 ●●●●● patch | view | raw | blame | history
plugins/vcard_attachments/vcard_attachments.php 27 ●●●●● patch | view | raw | blame | history
plugins/vcard_attachments/package.xml
@@ -34,6 +34,8 @@
- Fixed doble urlencoding of vcard identifier
- Fixed encoding when default charset is different than vcard charset
- Improved vcards import to work as addressbook::import procedure (with validation and autofix)
- Support IDNA
- Import contacts to default addressbook
    </notes>
    <contents>
        <dir baseinstalldir="/" name="/">
plugins/vcard_attachments/vcard_attachments.php
@@ -128,7 +128,7 @@
        if ($part && ($vcards = rcube_vcard::import($part))
            && ($vcard = $vcards[$index]) && $vcard->displayname && $vcard->email
        ) {
            $CONTACTS = $rcmail->get_address_book(null, true);
            $CONTACTS = $this->get_address_book();
            $email    = $vcard->email[0];
            $contact  = $vcard->get_assoc();
            $valid    = true;
@@ -195,4 +195,29 @@
            )
        );
    }
    /**
     * Getter for default (writable) addressbook
     */
    private function get_address_book()
    {
        if ($this->abook) {
            return $this->abook;
        }
        $rcmail = rcmail::get_instance();
        $abook  = $rcmail->config->get('default_addressbook');
        // Get configured addressbook
        $CONTACTS = $rcmail->get_address_book($abook, true);
        // Get first writeable addressbook if the configured doesn't exist
        // This can happen when user deleted the addressbook (e.g. Kolab folder)
        if ($abook === null || $abook === '' || !is_object($CONTACTS)) {
            $source   = reset($rcmail->get_address_sources(true));
            $CONTACTS = $rcmail->get_address_book($source['id'], true);
        }
        return $this->abook = $CONTACTS;
    }
}