diff options
Diffstat (limited to 'program')
-rw-r--r-- | program/include/rcube_imap.php | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php index 5aa23fa73..5715459a8 100644 --- a/program/include/rcube_imap.php +++ b/program/include/rcube_imap.php @@ -546,56 +546,56 @@ class rcube_imap $imap_shared = $config->get('imap_ns_shared'); $imap_delimiter = $config->get('imap_delimiter'); - if ($imap_delimiter) { - $this->delimiter = $imap_delimiter; - } - if (!$this->conn) return; $ns = $this->conn->getNamespace(); - // NAMESPACE supported + // Set namespaces (NAMESPACE supported) if (is_array($ns)) { $this->namespace = $ns; - - if (empty($this->delimiter)) - $this->delimiter = $ns['personal'][0][1]; - if (empty($this->delimiter)) - $this->delimiter = $this->conn->getHierarchyDelimiter(); - if (empty($this->delimiter)) - $this->delimiter = '/'; } - // not supported, get namespace from config - else if ($imap_personal !== null || $imap_shared !== null || $imap_other !== null) { - if (empty($this->delimiter)) - $this->delimiter = $this->conn->getHierarchyDelimiter(); - if (empty($this->delimiter)) - $this->delimiter = '/'; - + else { $this->namespace = array( 'personal' => NULL, 'other' => NULL, 'shared' => NULL, ); + } - if ($imap_personal !== null) { - foreach ((array)$imap_personal as $dir) { - $this->namespace['personal'][] = array($dir, $this->delimiter); - } + if ($imap_delimiter) { + $this->delimiter = $imap_delimiter; + } + if (empty($this->delimiter)) { + $this->delimiter = $this->namespace['personal'][0][1]; + } + if (empty($this->delimiter)) { + $this->delimiter = $this->conn->getHierarchyDelimiter(); + } + if (empty($this->delimiter)) { + $this->delimiter = '/'; + } + + // Overwrite namespaces + if ($imap_personal !== null) { + $this->namespace['personal'] = NULL; + foreach ((array)$imap_personal as $dir) { + $this->namespace['personal'][] = array($dir, $this->delimiter); } - if ($imap_other !== null) { - foreach ((array)$imap_other as $dir) { - if ($dir) { - $this->namespace['other'][] = array($dir, $this->delimiter); - } + } + if ($imap_other !== null) { + $this->namespace['other'] = NULL; + foreach ((array)$imap_other as $dir) { + if ($dir) { + $this->namespace['other'][] = array($dir, $this->delimiter); } } - if ($imap_shared !== null) { - foreach ((array)$imap_shared as $dir) { - if ($dir) { - $this->namespace['shared'][] = array($dir, $this->delimiter); - } + } + if ($imap_shared !== null) { + $this->namespace['shared'] = NULL; + foreach ((array)$imap_shared as $dir) { + if ($dir) { + $this->namespace['shared'][] = array($dir, $this->delimiter); } } } |