Added kolab_storage::folder_type() method
This commit is contained in:
parent
bde912a1fe
commit
745f743e5f
2 changed files with 24 additions and 7 deletions
|
@ -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';
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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';
|
||||
|
|
Loading…
Add table
Reference in a new issue