Reverting to old string.
[squirrelmail.git] / templates / default / left_main.tpl
1 <?php
2
3 /**
4 * left_main.tpl
5 *
6 * Basic template to the left main window. The following variables are
7 * avilable in this template:
8 * $clock - formatted string containing last refresh
9 * $mailbox_listing - string containing HTML to display default mailbox tree
10 * $location_of_bar - string "left" or "right" indicating where the frame
11 * is located. Currently only used in
12 * left_main_advanced.tpl
13 * $left_size - width of left column in pixels. Currently only used
14 * in left_main_advanced.tpl
15 * $imapConnection - IMAP connection handle. Needed to allow plugins to
16 * read the mailbox.
17 * $icon_theme_path - Path to the desired icon theme. If no icon theme has
18 * been chosen, this will be the template directory. If
19 * the user has disabled icons, this will be NULL.
20 *
21 * $unread_notification_enabled - Boolean TRUE if the user wants to see unread
22 * message count on mailboxes
23 * $unread_notification_cummulative - Boolean TRUE if the user has enabled
24 * cummulative message counts.
25 * $unread_notification_allFolders - Boolean TRUE if the user wants to see
26 * unread message count on ALL folders or just the
27 * mailbox.
28 * $unread_notification_displayTotal - Boolean TRUE if the user wants to
29 * see the total number of messages in addition to
30 * the unread message count.
31 * $collapsable_folders_enabled - Boolean TRUE if the user has enabled collapsable
32 * folders.
33 * $use_special_folder_color - Boolean TRUE if the use has chosen to tag
34 * "Special" folders in a different color.
35 * $message_recycling_enabled - Boolean TRUE if messages that get deleted go to
36 * the Trash folder. FALSE if they are permanently
37 * deleted.
38 * $trash_folder_name - Name of the Trash folder.
39 *
40 * $mailboxes - Associative array of current mailbox structure.
41 * Provided so template authors know what they have to
42 * work with when building a custom mailbox tree.
43 * Array contains the following elements:
44 * $a['MailboxName'] = String containing the name of the mailbox
45 * $a['MailboxFullName'] = String containing full IMAP name of mailbox
46 * $a['MessageCount'] = integer of all messages in the mailbox
47 * $a['UnreadCount'] = integer of unseen message in the mailbox
48 * $a['ViewLink'] = array containing elements needed to view the
49 * mailbox. Elements are:
50 * 'Target' = target frame for link
51 * 'URL' = target URL for link
52 * $a['IsRecent'] = boolean TRUE if the mailbox is tagged "recent"
53 * $a['IsSpecial'] = boolean TRUE if the mailbox is tagged "special"
54 * $a['IsRoot'] = boolean TRUE if the mailbox is the root mailbox
55 * $a['IsNoSelect'] = boolean TRUE if the mailbox is tagged "noselect"
56 * $a['IsCollapsed'] = boolean TRUE if the mailbox is currently collapsed
57 * $a['CollapseLink'] = array containg elements needed to expand/collapse
58 * the mailbox. Elements are:
59 * 'Target' = target frame for link
60 * 'URL' = target URL for link
61 * 'Icon' = the icon to use, based on user prefs
62 * $a['ChildBoxes'] = array containing this same data structure for
63 * each child folder/mailbox of the current
64 * mailbox.
65 * $a['CummulativeMessageCount'] = integer of total messages in all
66 * folders in this mailbox, exlcuding
67 * trash folders.
68 * $a['CummulativeUnreadCount'] = integer of total unseen messages
69 * in all folders in this mailbox,
70 * excluding trash folders.
71 *
72 *
73 * @copyright &copy; 1999-2006 The SquirrelMail Project Team
74 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
75 * @version $Id$
76 * @package squirrelmail
77 * @subpackage templates
78 */
79
80 // include required files
81 include_once(SM_PATH . 'templates/util_global.php');
82
83 /*
84 * Recursively parse the mailbox structure to build the navigation tree.
85 *
86 * @since 1.5.2
87 */
88 function buildMailboxTree ($box, $settings, $indent_factor=0) {
89 // stop condition
90 if (empty($box)) {
91 return '';
92 }
93
94 # echo '<b>'.$box['MailboxName'].':</b> '.dump_array($box).'<hr>';
95 $pre = '<span style="white-space: nowrap;">';
96 $end = '';
97 $indent = str_repeat('&nbsp;&nbsp;',$indent_factor);
98
99 // Get unseeen/total message info if needed
100 $unseen_str = '';
101 if ($settings['unreadNotificationEnabled']) {
102 // We only display the unread count if we on the Inbox or we are told
103 // to display it on all folders.
104 if ( $settings['unreadNotificationAllFolders'] ||
105 (!$settings['unreadNotifictionAllFolders'] && strtolower($box['MailboxFullName'])=='inbox')
106 ) {
107 $unseen_str = $settings['unreadNotificationCummulative'] ?
108 $box['CummulativeUnreadCount'] :
109 $box['UnreadCount'];
110
111 // Add the total messages if desired
112 if ($settings['unreadNotificationDisplayTotal']) {
113 $unseen_str .= '/' . ($settings['unreadNotificationCummulative'] ?
114 $box['CummulativeMessageCount'] :
115 $box['MessageCount']);
116 }
117
118 $unseen_str = '<span class="'.
119 ($box['IsRecent'] ? 'leftrecent' : 'leftunseen') .
120 '">' . $unseen_str .
121 '</span>';
122 }
123 }
124
125 /*
126 * If the box has any children, and collapsable folders have been enabled
127 * we need to output the expand/collapse link.
128 */
129 if (sizeof($box['ChildBoxes'])>0 && $settings['collapsableFoldersEnabled']) {
130 $link = $indent .
131 '<a href="'.$box['CollapseLink']['URL'].'" ' .
132 'target="'.$box['CollapseLink']['Target'].'" ' .
133 'style="text-decoration:none" ' .
134 # 'alt="'.$box['CollapseLink']['Alt'].'" ' .
135 # 'title="'.$box['CollapseLink']['Alt'].'">' .
136 '>' .
137 $box['CollapseLink']['Icon'] .
138 '</a>';
139 $pre .= $link;
140 } else {
141 $pre .= $indent . '&nbsp;&nbsp;';
142 }
143
144 /*
145 * The Trash folder should only be displayed if message recycling has
146 * been enabled, i.e. when deleted is a message moved to the trash or
147 * deleted forever?
148 */
149 $view_link = '<a href="'.$box['ViewLink']['URL'].'" ' .
150 'target="'.$box['ViewLink']['Target'].'" ' .
151 'style="text-decoration:none">';
152
153 if ($settings['messageRecyclingEnabled'] && $box['MailboxFullName'] == $settings['trashFolderName']) {
154 $pre .= $view_link;
155
156 // Boxes with unread messages should be emphasized
157 if ($box['UnreadCount'] > 0) {
158 $pre .= '<em>';
159 $end .= '</em>';
160 }
161 $end .= '</a>';
162
163 // Print unread info
164 if ($box['UnreadCount'] > 0) {
165 if (!empty($unseen_str)) {
166 $end .= '&nbsp;<small>('.$unseen_str.')</small>';
167 }
168 $end .= "\n<small>" .
169 '&nbsp;&nbsp;[<a href="empty_trash.php">'. _("Purge").'</a>]' .
170 '</small>';
171 }
172 } else {
173 // Add a few other things for all other folders...
174 if (!$box['IsNoSelect']) {
175 $pre .= $view_link;
176
177 // Boxes with unread messages should be emphasized
178 if ($box['UnreadCount'] > 0) {
179 $pre .= '<em>';
180 $end .= '</em>';
181 }
182 $end .= '</a>';
183 }
184
185 // Display unread info...
186 if (!empty($unseen_str)) {
187 $end .= '&nbsp;<small>('.$unseen_str.')</small>';
188 }
189 }
190
191 $span = '';
192 $spanend = '';
193 if ($settings['useSpecialFolderColor'] && $box['IsSpecial']) {
194 $span = '<span class="leftspecial">';
195 $spanend = '</span>';
196 } elseif ( $box['IsNoSelect'] ) {
197 $span = '<span class="leftnoselect">';
198 $spanend = '</span>';
199 }
200
201 // let plugins fiddle with end of line
202 $end .= concat_hook_function('left_main_after_each_folder',
203 array(isset($numMessages) ? $numMessages : '',
204 $box['MailboxFullName'], $settings['imapConnection']));
205
206 $end .= '</span>';
207
208 $out = '';
209 if (!$box['IsRoot']) {
210 $out = $span . $pre .
211 str_replace(
212 array(' ','<','>'),
213 array('&nbsp;','&lt;','&gt;'),
214 $box['MailboxName']) .
215 $end . $spanend . '<br />' . "\n";
216 $indent_factor++;
217 }
218
219 if (!$box['IsCollapsed'] || $box['IsRoot']) {
220 for ($i = 0; $i<sizeof($box['ChildBoxes']); $i++) {
221 $out .= buildMailboxTree($box['ChildBoxes'][$i], $settings, $indent_factor);
222 }
223 }
224
225 return $out;
226 }
227
228 // Retrieve the template vars
229 extract($t);
230
231 /*
232 * Build an array to pass user prefs to the function that builds the tree in
233 * order to avoid using globals, which are dirty, filthy things in templates. :)
234 */
235 $settings = array();
236 $settings['imapConnection'] = $imapConnection;
237 $settings['iconThemePath'] = $icon_theme_path;
238 $settings['unreadNotificationEnabled'] = $unread_notification_enabled;
239 $settings['unreadNotificationAllFolders'] = $unread_notification_allFolders;
240 $settings['unreadNotificationDisplayTotal'] = $unread_notification_displayTotal;
241 $settings['unreadNotificationCummulative'] = $unread_notification_cummulative;
242 $settings['useSpecialFolderColor'] = $use_special_folder_color;
243 $settings['messageRecyclingEnabled'] = $message_recycling_enabled;
244 $settings['trashFolderName'] = $trash_folder_name;
245 $settings['collapsableFoldersEnabled'] = $collapsable_folders_enabled;
246
247 ?>
248 <body class="sqm_leftMain">
249 <div class="sqm_leftMain">
250 <?php do_hook('left_main_before'); ?>
251 <table class="sqm_wrapperTable" cellspacing="0">
252 <tr>
253 <td>
254 <table cellspacing="0">
255 <tr>
256 <td style="text-align:center">
257 <span class="sqm_folderHeader"><?php echo _("Folders"); ?></span><br />
258 <span class="sqm_clock"><?php echo $clock; ?></span>
259 <span class="sqm_refreshButton"><small>[<a href="../src/left_main.php" target="left"><?php echo _("Check mail"); ?></a>]</small></span>
260 </td>
261 </tr>
262 </table>
263 <br />
264 <?php echo buildMailboxTree($mailboxes, $settings); ?>
265 </tr>
266 </td>
267 </table>
268 <?php do_hook('left_main_after'); ?>
269 </div>