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];
|
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)
|
public function set_folder($name, $ftype = null)
|
||||||
{
|
{
|
||||||
if (!$ftype) {
|
$this->type_annotation = $ftype ? $ftype : kolab_storage::folder_type($name);
|
||||||
$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;
|
|
||||||
}
|
|
||||||
|
|
||||||
list($this->type, $suffix) = explode('.', $this->type_annotation);
|
list($this->type, $suffix) = explode('.', $this->type_annotation);
|
||||||
$this->default = $suffix == 'default';
|
$this->default = $suffix == 'default';
|
||||||
|
|
Loading…
Add table
Reference in a new issue