mailboxname_full; $mailboxURL = urlencode($mailbox); /* get collapse information */ if ($collapse_folders) { $form_entry = $j.'F'; if (isset($mbx) && isset($mbx[$form_entry])) { $collapse = $mbx[$form_entry]; setPref($data_dir, $username, 'collapse_folder_'.$boxes->mailboxname_full , $collapse ? SM_BOX_COLLAPSED : SM_BOX_UNCOLLAPSED); } else { $collapse = getPref($data_dir, $username, 'collapse_folder_' . $mailbox); $collapse = ($collapse == '' ? SM_BOX_UNCOLLAPSED : $collapse); } $img_src = ($collapse ? '../images/plus.png' : '../images/minus.png'); $collapse_link = '' . " "; } else { $collapse_link=''; } /* get unseen/total messages information */ /* Only need to display info when option is set */ if (isset($unseen_notify) && ($unseen_notify > 1)) { /* handle Cumulative Unread Message Notification */ if ($collapse && $unseen_cum) { foreach ($boxes->mbxs as $cumn_box) { if (!empty($cumn_box->unseen)) $boxes->unseen += $cumn_box->unseen; if (!empty($cumn_box->total)) $boxes->total += $cumn_box->total; } } if (($boxes->unseen !== false) || ($boxes->total !== false)) { if ($boxes->unseen !== false) $unseen = $boxes->unseen; /* * Should only display unseen info if the folder is inbox * or you set the option for all folders */ if ((strtolower($mailbox) == 'inbox') || ($unseen_notify == 3)) { $unseen_string = $unseen; /* If users requests, display message count too */ if (isset($unseen_type) && ($unseen_type == 2) && ($boxes->total !== false)) { $unseen_string .= '/' . $boxes->total; } if (isset($boxes->recent) && $boxes->recent > 0) { $unseen_string = "($unseen_string)"; } else { $unseen_string = "($unseen_string)"; } /* * Finally allow the script to display the values by setting a boolean. * This can only occur if the unseen count is great than 0 (if you have * unseen count only), or you have the message count too. */ if (($unseen > 0) || (isset($unseen_type) && ($unseen_type ==2))) { $unseen_found = true; } } } } /* If there are unseen message, bold the line. */ if ($unseen > 0) { $pre .= ''; } /* color special boxes */ if ($use_special_folder_color && $boxes->is_special) { $pre .= ""; $end .= ''; } /* If there are unseen message, close bolding. */ if ($unseen > 0) { $end .= ''; } /* Print unseen information. */ if ($unseen_found) { $end .= " $unseen_string"; } if (($move_to_trash) && ($mailbox == $trash_folder)) { $pre = "" . $pre; $end .= ''; $end .= "\n\n" . '  ['._("Purge").']'. ''; } else { if (!$boxes->is_noselect) { /* \Noselect boxes can't be selected */ $pre = "" . $pre; $end .= ''; } } // let plugins fiddle with end of line global $imapConnection; $end .= concat_hook_function('left_main_after_each_folder', array(isset($numMessages) ? $numMessages : '', $boxes->mailboxname_full, $imapConnection)); $out = ''; if (!$boxes->is_root) { if ($use_folder_images) { if ($boxes->is_inbox) { $folder_img = '../images/inbox.png'; } else if ($boxes->is_sent) { $folder_img = '../images/senti.png'; } else if ($boxes->is_trash) { $folder_img = '../images/delitem.png'; } else if ($boxes->is_draft) { $folder_img = '../images/draft.png'; } else if ($boxes->is_noinferiors) { $folder_img = '../images/folder_noinf.png'; } else { $folder_img = '../images/folder.png'; } $folder_img = '  '; } else { $folder_img = ''; } if (!isset($boxes->mbxs[0])) { $out .= ' ' . html_tag( 'div', $pre . $folder_img . str_replace( array(' ','<','>'), array(' ','<','>'), $boxes->mailboxname_sub) . $end, 'left', '', 'class="mbx_sub" id="' .$j. '"' ) . "\n"; } else { $out .= ' ' . html_tag( 'div', $collapse_link . $pre . $folder_img . ' '. $boxes->mailboxname_sub . $end , 'left', '', 'class="mbx_par" id="' .$j. 'P"' ) . "\n"; $out .= ' '."\n"; } } $visible = ($collapse ? ' style="display:none"' : ' style="display:block"'); if (isset($boxes->mbxs[0]) && !$boxes->is_root) /* mailbox contains childs */ $out .= html_tag( 'div', '', 'left', '', 'class="par_area" id='.$j.'.0000 '. $visible ) . "\n"; if ($j !='ID.0000') { $j = $j .'.0000'; } for ($i = 0; $i mbxs); $i++) { $j++; $out .= ListAdvancedBoxes($boxes->mbxs[$i],$mbx,$j); } if (isset($boxes->mbxs[0]) && !$boxes->is_root) { $out .= ''."\n\n"; } return $out; } /* -------------------- MAIN ------------------------ */ /* get globals */ sqgetGlobalVar('username', $username, SQ_SESSION); sqgetGlobalVar('key', $key, SQ_COOKIE); sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION); sqgetGlobalVar('onetimepad', $onetimepad, SQ_SESSION); sqgetGlobalVar('fold', $fold, SQ_GET); sqgetGlobalVar('unfold', $unfold, SQ_GET); /* end globals */ // open a connection on the imap port (143) // why hide the output? $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, true); /** * Using stristr since very old preferences may contain "None" and "none". */ if (!empty($left_refresh) && !stristr($left_refresh, 'none')){ $xtra = "\n\n" . "\n". "\n"; } else { $xtra = ''; } /** * $advanced_tree and is a boolean var which is default set to default * SM behaviour. * Setting $advanced tree to true causes SM to display a experimental * mailbox-tree with dhtml behaviour. * * See templates/default/left_main_advanced.tpl **/ /* set this to true if you want to see a nicer mailboxtree */ if (empty($advanced_tree)) { $advanced_tree=false; } // get mailbox list and cache it $mailboxes=sqimap_get_mailboxes($imapConnection,false,$show_only_subscribed_folders); displayHtmlHeader( 'SquirrelMail', $xtra ); sqgetGlobalVar('auto_create_done',$auto_create_done,SQ_SESSION); /* If requested and not yet complete, attempt to autocreate folders. */ if ($auto_create_special && !isset($auto_create_done)) { $autocreate = array($sent_folder, $trash_folder, $draft_folder); $folders_created = false; foreach( $autocreate as $folder ) { if (($folder != '') && ($folder != 'none')) { // use $mailboxes array for checking if mailbox exists if ( !sqimap_mailbox_exists($imapConnection, $folder, $mailboxes)) { sqimap_mailbox_create($imapConnection, $folder, ''); $folders_created = true; } else { // check for subscription is useless and expensive, just // surpress the NO response. Unless we're on Mecury, which // will just subscribe a folder again if it's already // subscribed. if ( strtolower($imap_server_type) != 'mercury32' || !sqimap_mailbox_is_subscribed($imapConnection, $folder) ) { sqimap_subscribe($imapConnection, $folder, false); $folders_created = true; } } } } /* Let the world know that autocreation is complete! Hurrah! */ $auto_create_done = TRUE; sqsession_register($auto_create_done, 'auto_create_done'); // reload mailbox list if ($folders_created) $mailboxes=sqimap_get_mailboxes($imapConnection,true,$show_only_subscribed_folders); } $clock = ''; if ($date_format != 6) { /* First, display the clock. */ if ($hour_format == 1) { $hr = 'H:i'; if ($date_format == 4) { $hr .= ':s'; } } else { if ($date_format == 4) { $hr = 'g:i:s a'; } else { $hr = 'g:i a'; } } switch( $date_format ) { case 0: $clk = date('Y-m-d '.$hr. ' T', time()); break; case 1: $clk = date('m/d/y '.$hr, time()); break; case 2: $clk = date('d/m/y '.$hr, time()); break; case 4: case 5: $clk = date($hr, time()); break; default: $clk = getDayAbrv( date( 'w', time() ) ) . date( ', ' . $hr, time() ); } $clk = str_replace(' ',' ',$clk); $clock = '' . str_replace(' ', ' ', _("Last Refresh")) . ":
$clk

\n"; } if ( $collapse_folders ) { /* If directed, collapse or uncollapse a folder. */ if (isset($fold)) { setPref($data_dir, $username, 'collapse_folder_' . $fold, SM_BOX_COLLAPSED); } else if (isset($unfold)) { setPref($data_dir, $username, 'collapse_folder_' . $unfold, SM_BOX_UNCOLLAPSED); } } /* Get unseen/total display prefs */ $unseen_type = getPref( $data_dir , $username , 'unseen_type' ); $unseen_notify = getPref( $data_dir , $username , 'unseen_notify' ); if (empty($unseen_type)) { if (!empty($default_unseen_type)) { $unseen_type = $default_unseen_type; } else { $unseen_type = 1; } } if (empty($unseen_notify)) { if (!empty($default_unseen_notify)) { $unseen_notify = $default_unseen_notify; } else { $unseen_notify = 0; } } /** * pass $mailboxes now instead of $imapconnection - sqimap_get_mailboxes() has been separated from * sqimap_mailbox_tree() so that the cached mailbox list can be used elsewhere in left_main and beyond */ $boxes = sqimap_mailbox_tree($imapConnection,$mailboxes,$show_only_subscribed_folders); $mailbox_listing = ''; if (isset($advanced_tree) && $advanced_tree) { $mailbox_listing = '
'."\n"; $mailbox_listing .= '

'; $mailbox_listing .= '
'."\n\n"; sqgetGlobalVar('mbx', $mbx, SQ_POST); if (!isset($mbx)) $mbx=NULL; $mailbox_listing .=ListAdvancedBoxes($boxes, $mbx); $mailbox_listing .= '
'; $mailbox_listing .= '
'."\n"; } else { $mailbox_listing = ListBoxes($boxes); } $mailbox_structure = getBoxStructure($boxes); $oTemplate->assign('clock', $clock); $oTemplate->assign('mailbox_listing', $mailbox_listing); $oTemplate->assign('location_of_bar', $location_of_bar); $oTemplate->assign('left_size', $left_size); $oTemplate->assign('mailboxes', $mailbox_structure); $oTemplate->assign('imapConnection', $imapConnection); $oTemplate->assign('unread_notification_enabled', $unseen_notify!=1); $oTemplate->assign('unread_notification_cummulative', $unseen_cum==1); $oTemplate->assign('unread_notification_allFolders', $unseen_notify == 3); $oTemplate->assign('unread_notification_displayTotal', $unseen_type == 2); $oTemplate->assign('collapsable_folders_enabled', $collapse_folders==1); $oTemplate->assign('icon_theme_path', $icon_theme_path); $oTemplate->assign('use_special_folder_color', $use_special_folder_color); $oTemplate->assign('message_recycling_enabled', $move_to_trash); if (isset($advanced_tree) && $advanced_tree) { $oTemplate->display('left_main_advanced.tpl'); } else { $oTemplate->display('left_main.tpl'); } sqimap_logout($imapConnection); $oTemplate->display('footer.tpl'); ?>