plugins/libkolab

Aleksander Machniak machniak at kolabsys.com
Tue Oct 9 19:18:33 CEST 2012


 plugins/libkolab/lib/kolab_storage.php        |   23 +++++++++++++++++++++++
 plugins/libkolab/lib/kolab_storage_folder.php |    8 +-------
 2 files changed, 24 insertions(+), 7 deletions(-)

New commits:
commit 745f743e5f5250f83dcbc6e08c03f2bfc55a74f7
Author: Aleksander Machniak <machniak at kolabsys.com>
Date:   Tue Oct 9 19:18:09 2012 +0200

    Added kolab_storage::folder_type() method

diff --git a/plugins/libkolab/lib/kolab_storage.php b/plugins/libkolab/lib/kolab_storage.php
index 318a7db..e14156d 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 daa988f..08bf669 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';





More information about the commits mailing list