Added kolab_storage::folder_type() method

This commit is contained in:
Aleksander Machniak 2012-10-09 19:18:09 +02:00
parent bde912a1fe
commit 745f743e5f
2 changed files with 24 additions and 7 deletions

View file

@ -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';
}
}

View file

@ -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';