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 &copy; 1999-2006 The SquirrelMail Project Team
  10.  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  11.  * @version $Id: left_main.php,v 1.246 2006/09/28 14:55:00 pdontthink Exp $
  12.  * @package squirrelmail
  13.  */
  14.  
  15. /**
  16.  * Include the SquirrelMail initialization file.
  17.  */
  18. require('../include/init.php');
  19.  
  20. /* SquirrelMail required files. */
  21. require_once(SM_PATH 'functions/imap_general.php');
  22. require_once(SM_PATH 'functions/date.php');
  23. require_once(SM_PATH 'templates/util_global.php');
  24. require_once(SM_PATH 'templates/util_left_main.php');
  25.  
  26. /* These constants are used for folder stuff. */
  27. define('SM_BOX_UNCOLLAPSED'0);
  28. define('SM_BOX_COLLAPSED',   1);
  29.  
  30. /* get globals */
  31. sqgetGlobalVar('delimiter'$delimiterSQ_SESSION);
  32.  
  33. sqgetGlobalVar('fold'$foldSQ_GET);
  34. sqgetGlobalVar('unfold'$unfoldSQ_GET);
  35. /* end globals */
  36.  
  37. // open a connection on the imap port (143)
  38. // why hide the output?
  39. $imapConnection sqimap_login($usernamefalse$imapServerAddress$imapPorttrue);
  40.  
  41. /**
  42.  * Using stristr since very old preferences may contain "None" and "none".
  43.  */
  44. if (!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);
  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'SquirrelMail'$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 != '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.     $clock '<small><span style="white-space: nowrap;">'
  146.        . str_replace(' ''&nbsp;'_("Last Refresh"))
  147.        . ":</span><br /><span style=\"white-spacenowrap;\">$clk</span></small><br />\n";
  148. }
  149.  
  150. if $collapse_folders {
  151.     /* If directed, collapse or uncollapse a folder. */
  152.     if (isset($fold)) {
  153.         setPref($data_dir$username'collapse_folder_' $foldSM_BOX_COLLAPSED);
  154.     else if (isset($unfold)) {
  155.         setPref($data_dir$username'collapse_folder_' $unfoldSM_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.  
  163. if (empty($unseen_type)) {
  164.     if (!empty($default_unseen_type)) {
  165.         $unseen_type $default_unseen_type;
  166.     else {
  167.         $unseen_type 1;
  168.     }
  169. }
  170.  
  171. if (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. //FIXME: I think this is already included in all templates by init.php
  196. $settings['iconThemePath'$icon_theme_path;
  197. //FIXME: I think this is already included in all templates by init.php
  198. $settings['templateID'$sTemplateID;
  199. $settings['unreadNotificationEnabled'$unseen_notify!=1;
  200. $settings['unreadNotificationAllFolders'$unseen_notify == 3;
  201. $settings['unreadNotificationDisplayTotal'$unseen_type == 2;
  202. $settings['unreadNotificationCummulative'$unseen_cum==1;
  203. $settings['useSpecialFolderColor'$use_special_folder_color;
  204. $settings['messageRecyclingEnabled'$move_to_trash;
  205. $settings['collapsableFoldersEnabled'$collapse_folders==1;
  206. $oTemplate->assign('settings'$settings);
  207.  
  208. $oTemplate->display('left_main.tpl');
  209.  
  210. sqimap_logout($imapConnection);
  211. $oTemplate->display('footer.tpl');
  212. ?>

Documentation generated on Sat, 07 Oct 2006 16:12:10 +0300 by phpDocumentor 1.3.0RC6