From d356302759bea5fc14d12ae6a5d6638d8a875975 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Wed, 17 Oct 2012 12:12:45 +0200 Subject: [PATCH] Cut off folder type suffix from shared annotation values (#1105); small code cleanup to reduce redundancy --- plugins/kolab_folders/kolab_folders.php | 19 ++----------------- plugins/libkolab/lib/kolab_storage.php | 9 ++++++++- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/plugins/kolab_folders/kolab_folders.php b/plugins/kolab_folders/kolab_folders.php index 3f83847a..c8def8fe 100644 --- a/plugins/kolab_folders/kolab_folders.php +++ b/plugins/kolab_folders/kolab_folders.php @@ -337,14 +337,7 @@ class kolab_folders extends rcube_plugin */ function get_folder_type($folder) { - $storage = $this->rc->get_storage(); - $folderdata = $storage->get_metadata($folder, array(kolab_storage::CTYPE_KEY_PRIVATE, kolab_storage::CTYPE_KEY)); - - if (!($ctype = $folderdata[$folder][kolab_storage::CTYPE_KEY_PRIVATE])) { - $ctype = $folderdata[$folder][kolab_storage::CTYPE_KEY]; - } - - return explode('.', $ctype); + return explode('.', (string)kolab_storage::folder_type($folder)); } /** @@ -380,7 +373,7 @@ class kolab_folders extends rcube_plugin $namespace = $storage->get_namespace(); // get all folders of specified type - $folderdata = array_map(array($this, 'folder_select_metadata'), $folderdata); + $folderdata = array_map(array('kolab_storage', 'folder_select_metadata'), $folderdata); $folderdata = array_intersect($folderdata, array($type)); foreach ($folderdata as $folder => $data) { @@ -402,14 +395,6 @@ class kolab_folders extends rcube_plugin return null; } - /** - * Callback for array_map to select the correct annotation value - */ - private function folder_select_metadata($types) - { - return $types[kolab_storage::CTYPE_KEY_PRIVATE] ?: $types[kolab_storage::CTYPE_KEY]; - } - /** * Returns CSS class name for specified folder type * diff --git a/plugins/libkolab/lib/kolab_storage.php b/plugins/libkolab/lib/kolab_storage.php index 57e54910..b29b4169 100644 --- a/plugins/libkolab/lib/kolab_storage.php +++ b/plugins/libkolab/lib/kolab_storage.php @@ -595,7 +595,14 @@ class kolab_storage */ static function folder_select_metadata($types) { - return $types[self::CTYPE_KEY_PRIVATE] ?: $types[self::CTYPE_KEY]; + if (!empty($types[self::CTYPE_KEY_PRIVATE])) { + return $types[self::CTYPE_KEY_PRIVATE]; + } + else if (!empty($types[self::CTYPE_KEY])) { + list($ctype, $suffix) = explode('.', $types[self::CTYPE_KEY]); + return $ctype; + } + return null; }