Add class attribute to template
[squirrelmail.git] / src / left_main.php
... / ...
CommitLineData
1<?php
2
3/**
4 * left_main.php
5 *
6 * This is the code for the left bar. The left bar shows the folders
7 * available, and has cookie information.
8 *
9 * @copyright &copy; 1999-2006 The SquirrelMail Project Team
10 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
11 * @version $Id$
12 * @package squirrelmail
13 */
14
15/**
16 * Include the SquirrelMail initialization file.
17 */
18require('../include/init.php');
19
20/* SquirrelMail required files. */
21require_once(SM_PATH . 'functions/imap_general.php');
22require_once(SM_PATH . 'functions/date.php');
23require_once(SM_PATH . 'templates/util_global.php');
24require_once(SM_PATH . 'templates/util_left_main.php');
25
26/* These constants are used for folder stuff. */
27define('SM_BOX_UNCOLLAPSED', 0);
28define('SM_BOX_COLLAPSED', 1);
29
30/* get globals */
31sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION);
32
33sqgetGlobalVar('fold', $fold, SQ_GET);
34sqgetGlobalVar('unfold', $unfold, SQ_GET);
35/* end globals */
36
37// open a connection on the imap port (143)
38// why hide the output?
39$imapConnection = sqimap_login($username, false, $imapServerAddress, $imapPort, true);
40
41/**
42 * Using stristr since very old preferences may contain "None" and "none".
43 */
44if (!empty($left_refresh) &&
45 !stristr($left_refresh, 'none')){
46 $xtra = "\n<meta http-equiv=\"Expires\" content=\"Thu, 01 Dec 1994 16:00:00 GMT\" />\n" .
47 "<meta http-equiv=\"Pragma\" content=\"no-cache\" />\n".
48 "<meta http-equiv=\"REFRESH\" content=\"$left_refresh;URL=left_main.php\" />\n";
49} else {
50 $xtra = '';
51}
52
53/**
54 * Include extra javascript files needed by template
55 */
56$js_includes = $oTemplate->get_javascript_includes(TRUE);
57foreach ($js_includes as $js_file) {
58 $xtra .= '<script src="'.$js_file.'" type="text/javascript"></script>' ."\n";
59}
60
61// get mailbox list and cache it
62$mailboxes=sqimap_get_mailboxes($imapConnection,false,$show_only_subscribed_folders);
63
64displayHtmlHeader( 'SquirrelMail', $xtra );
65$oErrorHandler->setDelayedErrors(true);
66
67sqgetGlobalVar('auto_create_done',$auto_create_done,SQ_SESSION);
68/* If requested and not yet complete, attempt to autocreate folders. */
69if ($auto_create_special && !isset($auto_create_done)) {
70 $autocreate = array($sent_folder, $trash_folder, $draft_folder);
71 $folders_created = false;
72 foreach( $autocreate as $folder ) {
73 if (($folder != '') && ($folder != 'none')) {
74 /**
75 * If $show_only_subscribed_folders is true, don't use
76 * $mailboxes array for checking if mailbox exists.
77 * Mailbox list contains only subscribed folders.
78 * sqimap_mailbox_create() will fail, if folder exists.
79 */
80 if ($show_only_subscribed_folders) {
81 $mailbox_cache = false;
82 } else {
83 $mailbox_cache = $mailboxes;
84 }
85 if ( !sqimap_mailbox_exists($imapConnection, $folder, $mailbox_cache)) {
86 sqimap_mailbox_create($imapConnection, $folder, '');
87 $folders_created = true;
88 } else {
89 // check for subscription is useless and expensive, just
90 // surpress the NO response. Unless we're on Mecury, which
91 // will just subscribe a folder again if it's already
92 // subscribed.
93 if ( strtolower($imap_server_type) != 'mercury32' ||
94 !sqimap_mailbox_is_subscribed($imapConnection, $folder) ) {
95 sqimap_subscribe($imapConnection, $folder, false);
96 $folders_created = true;
97 }
98 }
99 }
100 }
101
102 /* Let the world know that autocreation is complete! Hurrah! */
103 $auto_create_done = TRUE;
104 sqsession_register($auto_create_done, 'auto_create_done');
105 // reload mailbox list
106 if ($folders_created)
107 $mailboxes=sqimap_get_mailboxes($imapConnection,true,$show_only_subscribed_folders);
108}
109
110$clock = '';
111if ($date_format != 6) {
112 /* First, display the clock. */
113 if ($hour_format == 1) {
114 $hr = 'H:i';
115 if ($date_format == 4) {
116 $hr .= ':s';
117 }
118 } else {
119 if ($date_format == 4) {
120 $hr = 'g:i:s a';
121 } else {
122 $hr = 'g:i a';
123 }
124 }
125
126 switch( $date_format ) {
127 case 0:
128 $clk = date('Y-m-d '.$hr. ' T', time());
129 break;
130 case 1:
131 $clk = date('m/d/y '.$hr, time());
132 break;
133 case 2:
134 $clk = date('d/m/y '.$hr, time());
135 break;
136 case 4:
137 case 5:
138 $clk = date($hr, time());
139 break;
140 default:
141 $clk = getDayAbrv( date( 'w', time() ) ) . date( ', ' . $hr, time() );
142 }
143 $clk = str_replace(' ','&nbsp;',$clk);
144
145 $clock = '<small><span style="white-space: nowrap;">'
146 . str_replace(' ', '&nbsp;', _("Last Refresh"))
147 . ":</span><br /><span style=\"white-space: nowrap;\">$clk</span></small><br />\n";
148}
149
150if ( $collapse_folders ) {
151 /* If directed, collapse or uncollapse a folder. */
152 if (isset($fold)) {
153 setPref($data_dir, $username, 'collapse_folder_' . $fold, SM_BOX_COLLAPSED);
154 } else if (isset($unfold)) {
155 setPref($data_dir, $username, 'collapse_folder_' . $unfold, SM_BOX_UNCOLLAPSED);
156 }
157}
158
159/* Get unseen/total display prefs */
160$unseen_type = getPref( $data_dir , $username , 'unseen_type' );
161$unseen_notify = getPref( $data_dir , $username , 'unseen_notify' );
162
163if (empty($unseen_type)) {
164 if (!empty($default_unseen_type)) {
165 $unseen_type = $default_unseen_type;
166 } else {
167 $unseen_type = 1;
168 }
169}
170
171if (empty($unseen_notify)) {
172 if (!empty($default_unseen_notify)) {
173 $unseen_notify = $default_unseen_notify;
174 } else {
175 $unseen_notify = 0;
176 }
177}
178
179/**
180 * pass $mailboxes now instead of $imapconnection - sqimap_get_mailboxes() has been separated from
181 * sqimap_mailbox_tree() so that the cached mailbox list can be used elsewhere in left_main and beyond
182 */
183$boxes = sqimap_mailbox_tree($imapConnection,$mailboxes,$show_only_subscribed_folders);
184$mailbox_structure = getBoxStructure($boxes);
185
186$oTemplate->assign('clock', $clock);
187$oTemplate->assign('mailboxes', $mailbox_structure);
188
189/*
190 * Build an array to pass user prefs to the template in order to avoid using
191 * globals, which are dirty, filthy things in templates. :)
192 */
193$settings = array();
194#$settings['imapConnection'] = $imapConnection;
195$settings['templateID'] = $sTemplateID;
196$settings['unreadNotificationEnabled'] = $unseen_notify!=1;
197$settings['unreadNotificationAllFolders'] = $unseen_notify == 3;
198$settings['unreadNotificationDisplayTotal'] = $unseen_type == 2;
199$settings['unreadNotificationCummulative'] = $unseen_cum==1;
200$settings['useSpecialFolderColor'] = $use_special_folder_color;
201$settings['messageRecyclingEnabled'] = $move_to_trash;
202$settings['collapsableFoldersEnabled'] = $collapse_folders==1;
203$oTemplate->assign('settings', $settings);
204
205$oTemplate->display('left_main.tpl');
206
207sqimap_logout($imapConnection);
208$oTemplate->display('footer.tpl');