X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Fleft_main.php;h=031cc486f4caeae1625647cea3dcd80dba117f3b;hp=eb1b0995a2d54d9c55cfd183fd4282283dd0126b;hb=91e0dccca7b2452d8b450791cae3aa4125e8889e;hpb=67eb95d7ef58b59491cdbcf3fef77d77ce04da86
diff --git a/src/left_main.php b/src/left_main.php
index eb1b0995..031cc486 100644
--- a/src/left_main.php
+++ b/src/left_main.php
@@ -3,16 +3,20 @@
/**
* left_main.php
*
- * Copyright (c) 1999-2003 The SquirrelMail Project Team
+ * Copyright (c) 1999-2004 The SquirrelMail Project Team
* Licensed under the GNU GPL. For full terms see the file COPYING.
*
* This is the code for the left bar. The left bar shows the folders
* available, and has cookie information.
*
- * $Id$
+ * @version $Id$
+ * @package squirrelmail
*/
-/* Path for SquirrelMail required files. */
+/**
+ * Path for SquirrelMail required files.
+ * @ignore
+ */
define('SM_PATH','../');
/* SquirrelMail required files. */
@@ -31,11 +35,8 @@ define('SM_BOX_COLLAPSED', 1);
function formatMailboxName($imapConnection, $box_array) {
- global $folder_prefix, $trash_folder, $sent_folder,
- $color, $move_to_sent, $move_to_trash,
- $unseen_notify, $unseen_type, $collapse_folders,
- $draft_folder, $save_as_draft,
- $use_special_folder_color;
+ global $trash_folder, $color, $move_to_trash,
+ $unseen_notify, $unseen_type, $use_special_folder_color;
$real_box = $box_array['unformatted'];
$mailbox = str_replace(' ','',$box_array['formatted']);
$mailboxURL = urlencode($real_box);
@@ -48,10 +49,10 @@ function formatMailboxName($imapConnection, $box_array) {
$status = array('','');
if (($unseen_notify == 2 && $real_box == 'INBOX') ||
$unseen_notify == 3) {
- $tmp_status = create_unseen_string($real_box, $box_array, $imapConnection, $unseen_type );
- if ($status !== false) {
- $status = $tmp_status;
- }
+ $tmp_status = create_unseen_string($real_box, $box_array, $imapConnection, $unseen_type );
+ if ($status !== false) {
+ $status = $tmp_status;
+ }
}
list($unseen_string, $unseen) = $status;
$special_color = ($use_special_folder_color && isSpecialMailbox($real_box));
@@ -60,12 +61,12 @@ function formatMailboxName($imapConnection, $box_array) {
$line = '';
/* If there are unseen message, bold the line. */
- if ($unseen > 0) { $line .= ''; }
+ if ($unseen > 0) { $line .= ''; }
/* Create the link for this folder. */
if ($status !== false) {
- $line .= '';
+ $line .= '';
}
if ($special_color) {
$line .= "";
@@ -73,20 +74,20 @@ function formatMailboxName($imapConnection, $box_array) {
if ( $mailbox == 'INBOX' ) {
$line .= _("INBOX");
} else {
- $line .= str_replace(' ',' ',$mailbox);
+ $line .= str_replace(array(' ','<','>'),array(' ','<','>'),$mailbox);
}
if ($special_color == TRUE)
$line .= '';
if ($status !== false) {
- $line .= '';
+ $line .= '';
}
/* If there are unseen message, close bolding. */
- if ($unseen > 0) { $line .= ""; }
+ if ($unseen > 0) { $line .= ""; }
/* Print unseen information. */
if ($unseen_string != '') {
- $line .= " $unseen_string";
+ $line .= " $unseen_string";
}
/* If it's the trash folder, show a purge link when needed */
@@ -98,14 +99,17 @@ function formatMailboxName($imapConnection, $box_array) {
if (($numMessages > 0) or ($box_array['parent'] == 1)) {
$urlMailbox = urlencode($real_box);
$line .= "\n\n" .
- " ("._("purge").")" .
- "";
- } else {
- $line .= concat_hook_function('left_main_after_each_folder',
- array(isset($numMessages) ? $numMessages : '',$real_box,$imapConnection));
+ ' ['._("Purge").']' .
+ '';
}
}
+
+ // let plugins fiddle with end of line
+ $line .= concat_hook_function('left_main_after_each_folder',
+ array(isset($numMessages) ? $numMessages : '', $real_box, $imapConnection));
+
+
/* Return the final product. */
return ($line);
}
@@ -166,23 +170,27 @@ function compute_folder_children(&$parbox, $boxcount) {
* currently appropriate.
*/
function create_collapse_link($boxnum) {
- global $boxes, $imapConnection, $unseen_notify, $color;
+ global $boxes, $unseen_notify, $color, $use_icons, $icon_theme;
$mailbox = urlencode($boxes[$boxnum]['unformatted']);
/* Create the link for this collapse link. */
$link = '+";
+ if ($use_icons && $icon_theme != 'none') {
+ $link .= "unfold=$mailbox\">';
+ } else {
+ $link .= "unfold=$mailbox\">+";
+ }
} else {
- $link .= "fold=$mailbox\">-";
+ if ($use_icons && $icon_theme != 'none') {
+ $link .= "fold=$mailbox\">';
+ } else {
+ $link .= "fold=$mailbox\">-";
+ }
}
$link .= '';
- $hooklink = do_hook_function('create_collapse_link',$link);
- if ($hooklink != '')
- $link = $hooklink;
-
/* Return the finished product. */
return ($link);
}
@@ -196,11 +204,10 @@ function create_collapse_link($boxnum) {
* @param string $boxName name of the current mailbox
* @param array $boxArray array for the current mailbox
* @param $imapConnection current imap connection in use
- * @return array[0] unseen message string (for display)
- * @return array[1] unseen message count
+ * @return array unseen message string (for display), unseen message count
*/
function create_unseen_string($boxName, $boxArray, $imapConnection, $unseen_type) {
- global $boxes, $unseen_type, $color, $unseen_cum;
+ global $boxes, $color, $unseen_cum;
/* Initialize the return value. */
$result = array(0,0);
@@ -215,7 +222,7 @@ function create_unseen_string($boxName, $boxArray, $imapConnection, $unseen_type
$status = sqimap_status_messages($imapConnection, $boxName);
$boxUnseenCount = $status['UNSEEN'];
if ($boxUnseenCount === false) {
- return false;
+ return false;
}
if ($unseen_type == 2) {
$boxMessageCount = $status['MESSAGES'];
@@ -235,10 +242,10 @@ function create_unseen_string($boxName, $boxArray, $imapConnection, $unseen_type
/* Collect the counts for this subfolder. */
if (($boxName != $boxes[$i]['unformatted'])
- && (substr($boxes[$i]['unformatted'], 0, $curBoxLength) == $boxName)
- && !in_array('noselect', $boxes[$i]['flags'])) {
- $status = sqimap_status_messages($imapConnection, $boxes[$i]['unformatted']);
- $subUnseenCount = $status['UNSEEN'];
+ && (substr($boxes[$i]['unformatted'], 0, $curBoxLength) == $boxName)
+ && !in_array('noselect', $boxes[$i]['flags'])) {
+ $status = sqimap_status_messages($imapConnection, $boxes[$i]['unformatted']);
+ $subUnseenCount = $status['UNSEEN'];
if ($unseen_type == 2) {
$subMessageCount = $status['MESSAGES'];;
}
@@ -286,155 +293,161 @@ function is_parent_box($curbox_name, $parbox_name) {
}
function ListBoxes ($boxes, $j=0 ) {
- global $data_dir, $username, $startmessage, $color, $unseen_notify, $unseen_type,
- $move_to_trash, $trash_folder, $collapse_folders, $imapConnection;
+ global $data_dir, $username, $color, $unseen_notify, $unseen_type,
+ $move_to_trash, $trash_folder, $collapse_folders, $imapConnection,
+ $use_icons, $icon_theme, $use_special_folder_color;
+
+ if (!isset($boxes) || empty($boxes))
+ return;
+
$pre = '';
$end = '';
$collapse = false;
- $unseen_type = 1;
- $unseen_notify = 0;
+ $unseen_found = false;
$unseen = 0;
- /* Get unseen/total display prefs */
- $unseen_type = getPref( $data_dir , $username , 'unseen_type' );
- $unseen_notify = getPref( $data_dir , $username , 'unseen_notify' );
-
- if (isset($boxes) && !empty($boxes)) {
- $mailbox = $boxes->mailboxname_full;
- $leader = '';
- $leader .= str_repeat(' ',$j);
- $mailboxURL = urlencode($mailbox);
-
- /* get unseen/total messages information */
- /* Only need to display info when option is set */
- if (isset($unseen_notify) && ($unseen_notify > 1)) {
-
- if ($boxes->unseen !== false) {
- $unseen = $boxes->unseen;
- } else {
- $unseen = 0;
- }
-
- /*
- Should only display unseen info if the folder is inbox
- or you set the option for all folders
- */
+ $mailbox = $boxes->mailboxname_full;
+ $leader = '';
+ $leader .= str_repeat(' ',$j);
+ $mailboxURL = urlencode($mailbox);
- if ((strtolower($mailbox) == 'inbox') || ($unseen_notify == 3)) {
- $unseen_string = $unseen;
-
-
- /* If users requests, display message count too */
- if (isset($unseen_type) && ($unseen_type == 2)) {
- $numMessages = $boxes->total;
- $unseen_string .= '/' . $numMessages;
- }
-
- $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;
- }
-
- }
-
+ /* get unseen/total messages information */
+ /* Only need to display info when option is set */
+ if (isset($unseen_notify) && ($unseen_notify > 1) &&
+ (($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;
+ }
+
+ $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 (isset($boxes->mbxs[0]) && $collapse_folders) {
- $collapse = getPref($data_dir, $username, 'collapse_folder_' . $mailbox);
- $collapse = ($collapse == '' ? SM_BOX_UNCOLLAPSED : $collapse);
+ if (isset($boxes->mbxs[0]) && $collapse_folders) {
+ $collapse = getPref($data_dir, $username, 'collapse_folder_' . $mailbox);
+ $collapse = ($collapse == '' ? SM_BOX_UNCOLLAPSED : $collapse);
- $link = '$leader ';
+ } else {
$link .= "unfold=$mailboxURL\">$leader+ ";
+ }
+ } else {
+ if ($use_icons && $icon_theme != 'none') {
+ $link .= "fold=$mailboxURL\">$leader ';
} else {
$link .= "fold=$mailboxURL\">$leader- ";
}
- $link .= '';
- $pre .= $link;
- } else {
- $pre.= $leader . ' ';
}
+ $link .= '';
+ $pre .= $link;
+ } else {
+ $pre.= $leader . ' ';
+ }
- /* If there are unseen message, bold the line. */
- if (($move_to_trash) && ($mailbox == $trash_folder)) {
- if (! isset($boxes->total)) {
- $boxes->total = sqimap_status_messages($imapConnection, $mailbox);
- }
+ /* If there are unseen message, bold the line. */
+ if (($move_to_trash) && ($mailbox == $trash_folder)) {
+ if (! isset($boxes->total)) {
+ $boxes->total = sqimap_status_messages($imapConnection, $mailbox);
+ }
+ if ($unseen > 0) {
+ $pre .= '';
+ }
+ $pre .= "";
+ if ($unseen > 0) {
+ $end .= '';
+ }
+ $end .= '';
+ if ($boxes->total > 0) {
if ($unseen > 0) {
$pre .= '';
}
- $pre .= "";
+ $pre .= "";
if ($unseen > 0) {
$end .= '';
}
- $end .= '';
- if ($boxes->total > 0) {
- if ($unseen > 0) {
- $pre .= '';
- }
- $pre .= "";
- if ($unseen > 0) {
- $end .= '';
- }
- /* Print unseen information. */
- if (isset($unseen_found) && $unseen_found) {
- $end .= " $unseen_string";
- }
- $end .= "\n\n" .
- " ("._("purge").")" .
- "";
- }
- } else {
- if (!$boxes->is_noselect) {
- if ($unseen > 0) {
- $pre .= '';
- }
- $pre .= "";
- if ($unseen > 0) {
- $end .= '';
- }
- $end .= '';
- }
/* Print unseen information. */
- if (isset($unseen_found) && $unseen_found) {
+ if ($unseen_found) {
$end .= " $unseen_string";
}
-
+ $end .= "\n\n" .
+ ' ['._("Purge").']'.
+ '';
}
-
- $font = '';
- $fontend = '';
- if ($boxes->is_special) {
- $font = "";
- $fontend = "";
+ } else {
+ if (!$boxes->is_noselect) {
+ if ($unseen > 0) {
+ $pre .= '';
+ }
+ $pre .= "";
+ if ($unseen > 0) {
+ $end .= '';
+ }
+ $end .= '';
}
- $end .= '';
-
- if (!$boxes->is_root) {
- echo "" . $pre .$font. $boxes->mailboxname_sub .$fontend . $end. '
' . "\n";
- $j++;
+ /* Print unseen information. */
+ if ($unseen_found) {
+ $end .= " $unseen_string";
}
- if (!$collapse || $boxes->is_root) {
- for ($i = 0; $i mbxs); $i++) {
- listBoxes($boxes->mbxs[$i],$j);
- }
+ }
+
+ $font = '';
+ $fontend = '';
+ if ($use_special_folder_color && $boxes->is_special) {
+ $font = "";
+ $fontend = "";
+ }
+
+ // let plugins fiddle with end of line
+ $end .= concat_hook_function('left_main_after_each_folder',
+ array(isset($numMessages) ? $numMessages : '',
+ $boxes->mailboxname_full, $imapConnection));
+
+ $end .= '';
+
+ if (!$boxes->is_root) {
+ echo "" . $pre .$font. str_replace(array(' ','<','>'),array(' ','<','>'),$boxes->mailboxname_sub) .$fontend . $end. '
' . "\n";
+ $j++;
+ }
+
+ if (!$collapse || $boxes->is_root) {
+ for ($i = 0; $i mbxs); $i++) {
+ listBoxes($boxes->mbxs[$i],$j);
}
}
}
function ListAdvancedBoxes ($boxes, $mbx, $j='ID.0000' ) {
- global $data_dir, $username, $startmessage, $color, $unseen_notify, $unseen_type,
- $move_to_trash, $trash_folder, $collapse_folders;
+ global $data_dir, $username, $color, $unseen_notify, $unseen_type,
+ $move_to_trash, $trash_folder, $collapse_folders, $use_special_folder_color;
- if (!$boxes)
- return;
+ if (!isset($boxes) || empty($boxes))
+ return;
/* use_folder_images only works if the images exist in ../images */
$use_folder_images = true;
@@ -448,13 +461,15 @@ function ListAdvancedBoxes ($boxes, $mbx, $j='ID.0000' ) {
$mailbox = $boxes->mailboxname_full;
$mailboxURL = urlencode($mailbox);
+ /* get unseen/total messages information */
/* Only need to display info when option is set */
- if (isset($unseen_notify) && ($unseen_notify > 1) && (($boxes->unseen !== false) || ($boxes->total !== false))) {
+ if (isset($unseen_notify) && ($unseen_notify > 1) &&
+ (($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
*/
@@ -463,8 +478,9 @@ function ListAdvancedBoxes ($boxes, $mbx, $j='ID.0000' ) {
$unseen_string = $unseen;
/* If users requests, display message count too */
- if (isset($unseen_type) && ($unseen_type == 2) && ($boxes->total !== false))
+ if (isset($unseen_type) && ($unseen_type == 2) && ($boxes->total !== false)) {
$unseen_string .= '/' . $boxes->total;
+ }
$unseen_string = "($unseen_string)";
@@ -476,16 +492,14 @@ function ListAdvancedBoxes ($boxes, $mbx, $j='ID.0000' ) {
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 ($boxes->is_special) {
+ if ($use_special_folder_color && $boxes->is_special) {
$pre .= "";
$end .= '';
}
@@ -494,70 +508,77 @@ function ListAdvancedBoxes ($boxes, $mbx, $j='ID.0000' ) {
if ($unseen > 0) { $end .= ''; }
/* Print unseen information. */
- if (isset($unseen_found) && $unseen_found) {
- $end .= " $unseen_string";
+ if ($unseen_found) {
+ $end .= " $unseen_string";
}
if (($move_to_trash) && ($mailbox == $trash_folder)) {
if (! isset($numMessages)) {
$numMessages = $boxes->total;
}
- $pre = "" . $pre;
+ $pre = "" . $pre;
$end .= '';
if ($numMessages > 0) {
- $urlMailbox = urlencode($mailbox);
$end .= "\n\n" .
- " ("._("purge").")" .
- "";
+ ' ['._("Purge").']'.
+ '';
}
} else {
if (!$boxes->is_noselect) { /* \Noselect boxes can't be selected */
- $pre = "" . $pre;
+ $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));
+
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 ($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])) {
echo ' ' . html_tag( 'div',
- ''. $pre . $folder_img . ''. $boxes->mailboxname_sub . $end,
+ ''. $pre . $folder_img . ''. str_replace(array(' ','<','>'),array(' ','<','>'),$boxes->mailboxname_sub) . $end,
'left', '', 'class="mbx_sub" id="' .$j. '"' ) . "\n";
- }
- else {
+ } else {
/* 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 {
+ } 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
+ } else {
$collapse_link='';
- echo ' ' . html_tag( 'div',
+ }
+ echo ' ' . html_tag( 'div',
$collapse_link . $pre . $folder_img . ' '. $boxes->mailboxname_sub . $end ,
'left', '', 'class="mbx_par" id="' .$j. 'P"' ) . "\n";
- echo ' '."\n";
+ echo ' '."\n";
}
}
@@ -627,12 +648,18 @@ if (isset($left_refresh) && ($left_refresh != '') &&
* to marc@its-projects.nl
**/
-$advanced_tree = false; /* set this to true if you want to see a nicer mailboxtree */
-$oldway = false; /* default SM behaviour */
+/* set this to true if you want to see a nicer mailboxtree */
+if (! isset($advanced_tree) || $advanced_tree=="" ) {
+ $advanced_tree=false;
+}
+/* default SM behaviour */
+if (! isset($oldway) || $oldway=="" ) {
+ $oldway=false;
+}
if ($advanced_tree) {
$xtra .= <<
+