strpos($folder, $empty_ns['delimiter']) === 0) {
/* Prefixed with delimiter => from empty namespace. */
$folder = substr($folder, strlen($empty_ns['delimiter']));
- } elseif (($ns = $GLOBALS['imp_imap']->getNamespace($folder)) == null) {
+ } elseif (($ns = $GLOBALS['imp_imap']->getNamespace($folder, true)) == null) {
/* No namespace prefix => from personal namespace. */
$folder = $def_ns['name'] . $folder;
}
- } elseif (!$append && (($ns = $GLOBALS['imp_imap']->getNamespace($folder)) !== null)) {
+ } elseif (($ns = $GLOBALS['imp_imap']->getNamespace($folder)) !== null) {
/* Converting to preference value. */
if ($ns['name'] == $def_ns['name']) {
/* From personal namespace => strip namespace. */
/**
* Get namespace info for a full folder path.
*
- * @param string $mailbox The folder path. If empty, will return info
- * on the default namespace (i.e. the first
- * personal namespace).
+ * @param string $mailbox The folder path.
+ * @param boolean $personal If true, will return empty namespace only
+ * if it is a personal namespace.
*
* @return mixed The namespace info for the folder path or null if the
* path doesn't exist.
*/
- public function getNamespace($mailbox = null)
+ public function getNamespace($mailbox = null, $personal = false)
{
if ($_SESSION['imp']['protocol'] == 'pop') {
return null;
}
}
- return isset($ns['']) ? $ns[''] : null;
+ return (isset($ns['']) && (!$personal || ($val['type'] == 'personal')))
+ ? $ns['']
+ : null;
}
/**