Source for file left_main.php

Documentation is available at left_main.php

  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 1999-2012 The SquirrelMail Project Team
  10.  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  11.  * @version $Id: left_main.php 14249 2012-01-02 02:09:17Z pdontthink $
  12.  * @package squirrelmail
  13.  */
  14.  
  15. /** This is the left_main page */
  16. define('PAGE_NAME''left_main');
  17.  
  18. /**
  19.  * Include the SquirrelMail initialization file.
  20.  */
  21. require('../include/init.php');
  22.  
  23. /* SquirrelMail required files. */
  24. require_once(SM_PATH 'functions/imap_general.php');
  25. require_once(SM_PATH 'functions/date.php');
  26. require_once(SM_PATH 'functions/template/folder_list_util.php');
  27.  
  28. /* These constants are used for folder stuff. */
  29. define('SM_BOX_UNCOLLAPSED'0);
  30. define('SM_BOX_COLLAPSED',   1);
  31.  
  32. /* get globals */
  33. sqgetGlobalVar('delimiter'$delimiterSQ_SESSION);
  34.  
  35. sqgetGlobalVar('fold'$foldSQ_GET);
  36. sqgetGlobalVar('unfold'$unfoldSQ_GET);
  37. /* end globals */
  38.  
  39. // open a connection on the imap port (143)
  40. // why hide the output?
  41. $imapConnection sqimap_login($usernamefalse$imapServerAddress$imapPorttrue);
  42.  
  43. /**
  44.  * Using stristr since very old preferences may contain "None" and "none".
  45.  */
  46. if (!empty($left_refresh&&
  47.     !stristr($left_refresh'none')){
  48.     $xtra =  "\n<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);
  57. foreach ($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.  
  64. displayHtmlHeader$org_title$xtra );
  65. $oErrorHandler->setDelayedErrors(true);
  66.  
  67. sqgetGlobalVar('auto_create_done',$auto_create_done,SQ_SESSION);
  68. /* If requested and not yet complete, attempt to autocreate folders. */
  69. if ($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 != SMPREF_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$folderfalse);
  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 '';
  111. if ($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 '.$hrtime());
  132.         break;
  133.     case 2:
  134.         $clk date('d/m/y '.$hrtime());
  135.         break;
  136.     case 4:
  137.     case 5:
  138.         $clk date($hrtime());
  139.         break;
  140.     default:
  141.         $clk getDayAbrvdate'w'time() ) ) date', ' $hrtime() );
  142.     }
  143.     $clk str_replace(' ','&nbsp;',$clk);
  144.  
  145. //FIXME don't build HTML here - do it in template
  146.     $clock '<small><span style="white-space: nowrap;">'
  147.        . str_replace(' ''&nbsp;'_("Last Refresh"))
  148.        . ":</span><br /><span style=\"white-space: nowrap;\">$clk</span></small><br />\n";
  149. }
  150.  
  151. if $collapse_folders {
  152.     /* If directed, collapse or uncollapse a folder. */
  153.     if (isset($fold)) {
  154.         setPref($data_dir$username'collapse_folder_' $foldSM_BOX_COLLAPSED);
  155.     else if (isset($unfold)) {
  156.         setPref($data_dir$username'collapse_folder_' $unfoldSM_BOX_UNCOLLAPSED);
  157.     }
  158. }
  159.  
  160. /* Get unseen/total display prefs */
  161. $unseen_type getPref$data_dir $username 'unseen_type' );
  162. $unseen_notify getPref$data_dir $username 'unseen_notify' );
  163.  
  164. if (empty($unseen_type)) {
  165.     if (!empty($default_unseen_type)) {
  166.         $unseen_type $default_unseen_type;
  167.     else {
  168.         $unseen_type 1;
  169.     }
  170. }
  171.  
  172. if (empty($unseen_notify)) {
  173.     if (!empty($default_unseen_notify)) {
  174.         $unseen_notify $default_unseen_notify;
  175.     else {
  176.         $unseen_notify 0;
  177.     }
  178. }
  179.  
  180. /**
  181.  * pass $mailboxes now instead of $imapconnection - sqimap_get_mailboxes() has been separated from
  182.  * sqimap_mailbox_tree() so that the cached mailbox list can be used elsewhere in left_main and beyond
  183.  */
  184. $boxes sqimap_mailbox_tree($imapConnection,$mailboxes,$show_only_subscribed_folders);
  185. $mailbox_structure getBoxStructure($boxes);
  186.  
  187. $oTemplate->assign('clock'$clock);
  188. $oTemplate->assign('mailboxes'$mailbox_structure);
  189.  
  190. /*
  191.  * Build an array to pass user prefs to the template in order to avoid using
  192.  * globals, which are dirty, filthy things in templates. :)
  193.  */
  194. $settings array();
  195. #$settings['imapConnection'] = $imapConnection;
  196. $settings['templateID'$sTemplateID;
  197. $settings['unreadNotificationEnabled'$unseen_notify!=1;
  198. $settings['unreadNotificationAllFolders'$unseen_notify == 3;
  199. $settings['unreadNotificationDisplayTotal'$unseen_type == 2;
  200. $settings['unreadNotificationCummulative'$unseen_cum==1;
  201. $settings['useSpecialFolderColor'$use_special_folder_color;
  202. $settings['messageRecyclingEnabled'$move_to_trash;
  203. $settings['collapsableFoldersEnabled'$collapse_folders==1;
  204. $oTemplate->assign('settings'$settings);
  205.  
  206. //access keys
  207. //
  208. $oTemplate->assign('accesskey_folders_refresh'$accesskey_folders_refresh);
  209. $oTemplate->assign('accesskey_folders_purge_trash'$accesskey_folders_purge_trash);
  210. $oTemplate->assign('accesskey_folders_inbox'$accesskey_folders_inbox);
  211.  
  212. $oTemplate->display('left_main.tpl');
  213.  
  214. sqimap_logout($imapConnection);
  215. $oTemplate->display('footer.tpl');

Documentation generated on Tue, 21 May 2013 04:19:54 +0200 by phpDocumentor 1.4.3