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