Improved folder_create() method
This commit is contained in:
parent
d91fe84617
commit
cb61bf76a1
3 changed files with 18 additions and 13 deletions
|
@ -307,7 +307,7 @@ class kolab_driver extends calendar_driver
|
||||||
}
|
}
|
||||||
// create new folder
|
// create new folder
|
||||||
else {
|
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;
|
$this->last_error = kolab_storage::$last_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -497,7 +497,7 @@ class kolab_addressbook extends rcube_plugin
|
||||||
$folder = $plugin['name'];
|
$folder = $plugin['name'];
|
||||||
|
|
||||||
if (!$plugin['abort']) {
|
if (!$plugin['abort']) {
|
||||||
$result = kolab_storage::folder_create($folder, 'contact', false);
|
$result = kolab_storage::folder_create($folder, 'contact');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$result = $plugin['result'];
|
$result = $plugin['result'];
|
||||||
|
|
|
@ -173,25 +173,30 @@ class kolab_storage
|
||||||
/**
|
/**
|
||||||
* Creates IMAP folder
|
* Creates IMAP folder
|
||||||
*
|
*
|
||||||
* @param string $name Folder name (UTF7-IMAP)
|
* @param string $name Folder name (UTF7-IMAP)
|
||||||
* @param string $type Folder type
|
* @param string $type Folder type
|
||||||
* @param bool $default True if older is default (for specified type)
|
* @param bool $subscribed Sets folder subscription
|
||||||
*
|
*
|
||||||
* @return bool True on success, false on failure
|
* @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();
|
self::setup();
|
||||||
|
|
||||||
if (self::$imap->create_folder($name)) {
|
if ($saved = self::$imap->create_folder($name, $subscribed)) {
|
||||||
// set metadata for folder type
|
// set metadata for folder type
|
||||||
$ctype = $type . ($default ? '.default' : '');
|
if ($type) {
|
||||||
$saved = self::$imap->set_metadata($name, array(self::CTYPE_KEY => $ctype));
|
$saved = self::$imap->set_metadata($name, array(self::CTYPE_KEY => $type));
|
||||||
|
|
||||||
if ($saved)
|
// revert if metadata could not be set
|
||||||
return true;
|
if (!$saved) {
|
||||||
else // revert if metadata could not be set
|
self::$imap->delete_folder($name);
|
||||||
self::$imap->delete_folder($name);
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($saved) {
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
self::$last_error = self::$imap->get_error_str();
|
self::$last_error = self::$imap->get_error_str();
|
||||||
|
|
Loading…
Add table
Reference in a new issue