6.0.0-beta1
7/4/25

[#6813] Warning: Cannot use a scalar value as an array in Tree.php on line 1139
Summary Warning: Cannot use a scalar value as an array in Tree.php on line 1139
Queue IMP
Queue Version 4.2
Type Bug
State Resolved
Priority 2. Medium
Owners
Requester jhorner (at) arinbe (dot) com
Created 06/01/2008 (6242 days ago)
Due
Updated 06/27/2008 (6216 days ago)
Assigned
Resolved 06/27/2008 (6216 days ago)
Github Issue Link
Github Pull Request
Milestone
Patch No

History
06/27/2008 02:11:52 AM Michael Slusarz Comment #4
State ⇒ Resolved
Reply to this comment
Going to mark as resolved with the addition of the new IMAP_Tree 
library (Ticket #6972).
06/03/2008 04:46:47 AM jhorner (at) arinbe (dot) com Comment #3 Reply to this comment


I tried it w/o using imap_config and I get the same error/warning:



$servers['imap'] = array(

     'name' => Mail Server',

     'server' => 'localhost',

     'hordeauth' => true,

     'protocol' => 'imap/notls',

     'port' => '143'

);



When I use "show non-private mailboxes in separate folders" I see the 
warning on the page but additionally (from reading the code) the 
folder "Shared Folders" is not in the tree, nor are any of the share 
folders. On the other hand, if I use "combine all namespaces" I can 
see the share folders and there aren't any warnings/errors.



To answer the first question, originally I did not use imap_config but 
then I could not figure out why the personal folders were not showing 
up under INBOX. So I figured I would "hard-code" the namespaces since 
apparently (to me) IMP was not getting it right. I spent a great deal 
of time floundering there. Finally I read the tickets on this subject 
and just left the configuration that way. I understand that 
imap_config is not supported.



Thanks.




06/03/2008 04:12:39 AM Michael Slusarz Comment #2 Reply to this comment
Why are you using imap_config?  Why aren't you letting IMP auto-detect 
namespaces?
06/01/2008 11:07:19 AM jhorner (at) arinbe (dot) com Comment #1
Priority ⇒ 2. Medium
Patch ⇒ No
Milestone ⇒
Queue ⇒ IMP
Summary ⇒ Warning: Cannot use a scalar value as an array in Tree.php on line 1139
Type ⇒ Bug
State ⇒ Unconfirmed
Reply to this comment
We make heavy use of shared/public folders. I was trying to find a way 
to make the folders display more like what my users see on their 
desktop and that is have their private folders under INBOX and the 
shared folders on the same level as INBOX. I've read the futile 
tickets on that subject so I won't complain. The warning message 
"Warning: Cannot use a scalar value as an array in Tree.php on line 
1139" occurs when I switch to "show non-private mailboxes in separate 
folders". It says warning but the web page fails to render properly. 
The alternative "combine all namespaces" has no problems but it is 
also what I am trying to avoid. We are using a dovecot server and my 
namespace configuration (cut to show a few shared/public folders) is



$servers['imap'] = array(

     'name' => 'Mail Server',

     'server' => 'localhost',

     'hordeauth' => true,

     'protocol' => 'imap/notls',

     'port' => '143',

     'imap_config' => array(

         'children' => true,

         'namespace' => array(

             'INBOX.' => array(

                 'name' => 'INBOX.',

                 'delimiter' => '.',

                 'type' => 'personal',

                 'hidden' => false

             ),

             'COMPANY.' => array(

                 'name' => 'COMPANY.',

                 'delimiter' => '.',

                 'type' => 'shared',

                 'hidden' => false

             ),

             'ROOTMAIL.' => array(

                 'name' => 'ROOTMAIL.',

                 'delimiter' => '.',

                 'type' => 'shared',

                 'hidden' => false

             )

         ),

         'search_charset' => array(

             'UTF-8' => true

         )

     )

);



The function causing the problem is



     function _setAttribute(&$elt, $const, $bool)

     {

         if ($bool) {

             $elt['a'] |= $const; <--- line 1139

         } else {

             $elt['a'] &= ~$const;

         }

     }




Saved Queries