From 745f743e5f5250f83dcbc6e08c03f2bfc55a74f7 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Tue, 9 Oct 2012 19:18:09 +0200 Subject: [PATCH] Added kolab_storage::folder_type() method --- plugins/libkolab/lib/kolab_storage.php | 23 +++++++++++++++++++ plugins/libkolab/lib/kolab_storage_folder.php | 8 +------ 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/plugins/libkolab/lib/kolab_storage.php b/plugins/libkolab/lib/kolab_storage.php index 318a7db7..e14156da 100644 --- a/plugins/libkolab/lib/kolab_storage.php +++ b/plugins/libkolab/lib/kolab_storage.php @@ -598,4 +598,27 @@ class kolab_storage return $types[self::CTYPE_KEY_PRIVATE] ?: $types[self::CTYPE_KEY]; } + + /** + * Returns type of IMAP folder + * + * @param string $folder Folder name (UTF7-IMAP) + * + * @return string Folder type + */ + static function folder_type($folder) + { + $metadata = self::$imap->get_metadata($folder, array(self::CTYPE_KEY, self::CTYPE_KEY_PRIVATE)); + + if (!is_array($metadata)) { + return null; + } + + if (!empty($metadata[$folder])) { + return self::folder_select_metadata($metadata[$folder]); + } + + return 'mail'; + } + } diff --git a/plugins/libkolab/lib/kolab_storage_folder.php b/plugins/libkolab/lib/kolab_storage_folder.php index daa988ff..08bf6690 100644 --- a/plugins/libkolab/lib/kolab_storage_folder.php +++ b/plugins/libkolab/lib/kolab_storage_folder.php @@ -75,13 +75,7 @@ class kolab_storage_folder */ public function set_folder($name, $ftype = null) { - if (!$ftype) { - $metadata = $this->imap->get_metadata($name, array(kolab_storage::CTYPE_KEY, kolab_storage::CTYPE_KEY_PRIVATE)); - $this->type_annotation = $metadata[$name][kolab_storage::CTYPE_KEY_PRIVATE] ?: $metadata[$name][kolab_storage::CTYPE_KEY]; - } - else { - $this->type_annotation = $ftype; - } + $this->type_annotation = $ftype ? $ftype : kolab_storage::folder_type($name); list($this->type, $suffix) = explode('.', $this->type_annotation); $this->default = $suffix == 'default';