[Tickets #1550] NEW: nod displaying courier-imap virtual shared folders

bugs at bugs.horde.org bugs at bugs.horde.org
Tue Mar 15 06:05:18 PST 2005


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/?id=1550
-----------------------------------------------------------------------
 Ticket             | 1550
 Created By         | m.zdila at episoftware.com
 Summary            | nod displaying courier-imap virtual shared folders
 Queue              | IMP
 Version            | 4.0.2
 State              | Unconfirmed
 Priority           | 1. Low
 Type               | Bug
 Owners             | 
-----------------------------------------------------------------------


m.zdila at episoftware.com (2005-03-15 06:05) wrote:

Hi

I use courier-imap server with virtual shared folders whose namespace is
#shared. I added into imap server configuration:
'hierarchies' => array("#shared")

In the tree hierarchy I saw only:
#shared
L test at domain com

instead of:
#shared
[+] test at domain com
      L some-shared-folder

Under Folders menu I saw all the shared folders only if I [Showed
Unsubscribed]. Subscribing all the shared folders didn't show them in the
left tree menu. I found the problem in Horde/imp/lib/IMAP/Tree.php or
Horde/lib/Horde/IMAP/Tree.php - the namespaces in hierarches wasn't checked
for subsctiption (array $this->_subscribed). I send you a patch that removes
that problem. Maybe you'll find better place to add this code.

--- ../../../../Horde/imp/lib/IMAP/Tree.php      Mon Jan  3 13:25:34 2005
+++ Tree.php    Tue Mar 15 14:48:58 2005
@@ -153,6 +153,14 @@
          * add them in. */
         foreach ($GLOBALS['imp']['hierarchies'] as $val) {
             $val = $this->noTrailingDelimiter($val);
+
+            $sublist = @imap_lsub($this->_getStream(), $this->_server, $val
. '*');
+            if (!empty($sublist)) {
+                foreach ($sublist as $val2) {
+                    $this->_subscribed[substr($val2, strpos($val2, '}') +
1)] = 1;
+                }
+            }
+
             $tmp = $this->_getMailbox($val);
             if ($tmp) {
                 $tmp->name = $this->noTrailingDelimiter($tmp->name);





More information about the bugs mailing list