Source for file webmail.php

Documentation is available at webmail.php

  1. <?php
  2.  
  3. /**
  4.  * webmail.php -- Displays the main frameset
  5.  *
  6.  * This file generates the main frameset. The files that are
  7.  * shown can be given as parameters. If the user is not logged in
  8.  * this file will verify username and password.
  9.  *
  10.  * @copyright 1999-2014 The SquirrelMail Project Team
  11.  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  12.  * @version $Id: webmail.php 14422 2014-01-01 20:59:43Z pdontthink $
  13.  * @package squirrelmail
  14.  */
  15.  
  16. /** This is the webmail page */
  17. define('PAGE_NAME''webmail');
  18.  
  19. /**
  20.  * Path for SquirrelMail required files.
  21.  * @ignore
  22.  */
  23. define('SM_PATH','../');
  24.  
  25. /* SquirrelMail required files. */
  26. require_once(SM_PATH 'include/validate.php');
  27. require_once(SM_PATH 'functions/imap.php');
  28.  
  29. sqgetGlobalVar('username'$usernameSQ_SESSION);
  30. sqgetGlobalVar('delimiter'$delimiterSQ_SESSION);
  31. sqgetGlobalVar('onetimepad'$onetimepadSQ_SESSION);
  32. sqgetGlobalVar('right_frame'$right_frameSQ_GET);
  33. if (sqgetGlobalVar('sort'$sort)) {
  34.     $sort = (int) $sort;
  35. }
  36.  
  37. if (sqgetGlobalVar('startMessage'$startMessage)) {
  38.     $startMessage = (int) $startMessage;
  39. }
  40.  
  41. if (!sqgetGlobalVar('mailbox'$mailbox)) {
  42.     $mailbox 'INBOX';
  43. }
  44.  
  45. if(sqgetGlobalVar('mailtodata'$mailtodata)) {
  46.     $mailtourl 'mailtodata='.urlencode($mailtodata);
  47. else {
  48.     $mailtourl '';
  49. }
  50.  
  51. // this value may be changed by a plugin, but initialize
  52. // it first to avoid register_globals headaches
  53. //
  54. $right_frame_url '';
  55. do_hook('webmail_top');
  56.  
  57. /**
  58.  * We'll need this to later have a noframes version
  59.  *
  60.  * Check if the user has a language preference, but no cookie.
  61.  * Send him a cookie with his language preference, if there is
  62.  * such discrepancy.
  63.  */
  64. $my_language getPref($data_dir$username'language');
  65. if ($my_language != $squirrelmail_language{
  66.     sqsetcookie('squirrelmail_language'$my_languagetime()+2592000$base_uri);
  67. }
  68.  
  69. set_up_language($my_language);
  70.  
  71. global $browser_rendering_mode;
  72. $output ($browser_rendering_mode === 'standards' || $browser_rendering_mode === 'almost'
  73.        ? '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">'
  74.        : /* "quirks" */ '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">').
  75.           "\n<html><head>\n" .
  76.           "<meta name=\"robots\" content=\"noindex,nofollow\">\n" .
  77.           "<title>$org_title</title>\n".
  78.           "</head>";
  79.  
  80. $left_size getPref($data_dir$username'left_size');
  81. $location_of_bar getPref($data_dir$username'location_of_bar');
  82.  
  83. if (isset($languages[$squirrelmail_language]['DIR']&&
  84.     strtolower($languages[$squirrelmail_language]['DIR']== 'rtl'{
  85.     $temp_location_of_bar 'right';
  86. else {
  87.     $temp_location_of_bar 'left';
  88. }
  89.  
  90. if ($location_of_bar == ''{
  91.     $location_of_bar $temp_location_of_bar;
  92. }
  93. $temp_location_of_bar '';
  94.  
  95. if ($left_size == ""{
  96.     if (isset($default_left_size)) {
  97.          $left_size $default_left_size;
  98.     }
  99.     else {
  100.         $left_size 200;
  101.     }
  102. }
  103.  
  104. if ($location_of_bar == 'right'{
  105.     $output .= "<frameset cols=\"*, $left_size\" id=\"fs1\">\n";
  106. }
  107. else {
  108.     $output .= "<frameset cols=\"$left_size, *\" id=\"fs1\">\n";
  109. }
  110.  
  111. /*
  112.  * There are three ways to call webmail.php
  113.  * 1.  webmail.php
  114.  *      - This just loads the default entry screen.
  115.  * 2.  webmail.php?right_frame=right_main.php&sort=X&startMessage=X&mailbox=XXXX
  116.  *      - This loads the frames starting at the given values.
  117.  * 3.  webmail.php?right_frame=folders.php
  118.  *      - Loads the frames with the Folder options in the right frame.
  119.  *
  120.  * This was done to create a pure HTML way of refreshing the folder list since
  121.  * we would like to use as little Javascript as possible.
  122.  *
  123.  * The test for // should catch any attempt to include off-site webpages into
  124.  * our frameset.
  125.  *
  126.  * Note that plugins are allowed to completely and freely override the URI
  127.  * used for the "right" (content) frame, and they do so by modifying the 
  128.  * global variable $right_frame_url.
  129.  *
  130.  */
  131.  
  132. if (empty($right_frame|| (strpos(urldecode($right_frame)'//'!== false)) {
  133.     $right_frame '';
  134. }
  135.  
  136. if strpos($right_frame,'?') ) {
  137.     $right_frame_file substr($right_frame,0,strpos($right_frame,'?'));
  138. else {
  139.     $right_frame_file $right_frame;
  140. }
  141.  
  142. if (empty($right_frame_url)) {
  143.     switch($right_frame_file{
  144.         case 'right_main.php':
  145.             $right_frame_url "right_main.php?mailbox=".urlencode($mailbox)
  146.                            . (!empty($sort)?"&amp;sort=$sort":'')
  147.                            . (!empty($startMessage)?"&amp;startMessage=$startMessage":'');
  148.             break;
  149.         case 'options.php':
  150.             $right_frame_url 'options.php';
  151.             break;
  152.         case 'folders.php':
  153.             $right_frame_url 'folders.php';
  154.             break;
  155.         case 'compose.php':
  156.             $right_frame_url 'compose.php?' $mailtourl;
  157.             break;
  158.         case '':
  159.             $right_frame_url 'right_main.php';
  160.             break;
  161.         default:
  162.             $right_frame_url =  urlencode($right_frame);
  163.             break;
  164.     
  165.  
  166. if ($location_of_bar == 'right'{
  167.     $output .= "<frame src=\"$right_frame_url\" name=\"right\" frameborder=\"1\">\n.
  168.                "<frame src=\"left_main.php\" name=\"left\" frameborder=\"1\">\n";
  169. }
  170. else {
  171.     $output .= "<frame src=\"left_main.php\" name=\"left\" frameborder=\"1\">\n".
  172.                "<frame src=\"$right_frame_url\" name=\"right\" frameborder=\"1\">\n";
  173. }
  174. $ret concat_hook_function('webmail_bottom'$output);
  175. if($ret != ''{
  176.     $output $ret;
  177. }
  178. echo $output;
  179. ?>
  180. </frameset>
  181. </html>

Documentation generated on Sun, 26 Oct 2014 04:22:01 +0100 by phpDocumentor 1.4.3