diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php index b97d2e14..c00f45f8 100644 --- a/plugins/calendar/drivers/kolab/kolab_driver.php +++ b/plugins/calendar/drivers/kolab/kolab_driver.php @@ -307,7 +307,7 @@ class kolab_driver extends calendar_driver } // create new folder else { - if (!($result = kolab_storage::folder_create($folder, 'event', false))) + if (!($result = kolab_storage::folder_create($folder, 'event'))) $this->last_error = kolab_storage::$last_error; } diff --git a/plugins/kolab_addressbook/kolab_addressbook.php b/plugins/kolab_addressbook/kolab_addressbook.php index 3e1d2000..5fd45b72 100644 --- a/plugins/kolab_addressbook/kolab_addressbook.php +++ b/plugins/kolab_addressbook/kolab_addressbook.php @@ -497,7 +497,7 @@ class kolab_addressbook extends rcube_plugin $folder = $plugin['name']; if (!$plugin['abort']) { - $result = kolab_storage::folder_create($folder, 'contact', false); + $result = kolab_storage::folder_create($folder, 'contact'); } else { $result = $plugin['result']; diff --git a/plugins/libkolab/lib/kolab_storage.php b/plugins/libkolab/lib/kolab_storage.php index 62b7796a..5924530d 100644 --- a/plugins/libkolab/lib/kolab_storage.php +++ b/plugins/libkolab/lib/kolab_storage.php @@ -173,25 +173,30 @@ class kolab_storage /** * Creates IMAP folder * - * @param string $name Folder name (UTF7-IMAP) - * @param string $type Folder type - * @param bool $default True if older is default (for specified type) + * @param string $name Folder name (UTF7-IMAP) + * @param string $type Folder type + * @param bool $subscribed Sets folder subscription * * @return bool True on success, false on failure */ - public static function folder_create($name, $type=null, $default=false) + public static function folder_create($name, $type = null, $subscribed = false) { self::setup(); - if (self::$imap->create_folder($name)) { + if ($saved = self::$imap->create_folder($name, $subscribed)) { // set metadata for folder type - $ctype = $type . ($default ? '.default' : ''); - $saved = self::$imap->set_metadata($name, array(self::CTYPE_KEY => $ctype)); + if ($type) { + $saved = self::$imap->set_metadata($name, array(self::CTYPE_KEY => $type)); - if ($saved) - return true; - else // revert if metadata could not be set - self::$imap->delete_folder($name); + // revert if metadata could not be set + if (!$saved) { + self::$imap->delete_folder($name); + } + } + } + + if ($saved) { + return true; } self::$last_error = self::$imap->get_error_str();