page_header.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. <?php
  2. /**
  3. * page_header.php
  4. *
  5. * Copyright (c) 1999-2002 The SquirrelMail Project Team
  6. * Licensed under the GNU GPL. For full terms see the file COPYING.
  7. *
  8. * Prints the page header (duh)
  9. *
  10. * $Id$
  11. */
  12. require_once('../functions/strings.php');
  13. require_once('../functions/imap_utf7_decode_local.php');
  14. require_once('../functions/html.php');
  15. /* Always set up the language before calling these functions */
  16. function displayHtmlHeader( $title = 'SquirrelMail', $xtra = '', $do_hook = TRUE ) {
  17. global $theme_css, $custom_css, $base_uri;
  18. echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">' .
  19. "\n\n<HTML>\n<HEAD>\n";
  20. if ( !isset( $custom_css ) || $custom_css == 'none' ) {
  21. if ($theme_css != '') {
  22. echo "<LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"$theme_css\">";
  23. }
  24. } else {
  25. echo '<LINK REL="stylesheet" TYPE="text/css" HREF="' .
  26. $base_uri . 'themes/css/'.$custom_css.'">';
  27. }
  28. if ($do_hook) {
  29. do_hook ("generic_header");
  30. }
  31. echo "\n<title>$title</title>$xtra</head>\n\n";
  32. }
  33. function displayInternalLink($path, $text, $target='') {
  34. global $base_uri;
  35. if ($target != '') {
  36. $target = " target=\"$target\"";
  37. }
  38. echo '<a href="'.$base_uri.$path.'"'.$target.'>'.$text.'</a>';
  39. }
  40. function displayPageHeader($color, $mailbox, $xtra='', $session=false) {
  41. global $delimiter, $hide_sm_attributions, $base_uri, $PHP_SELF, $frame_top,
  42. $compose_new_win, $username, $datadir, $compose_width, $compose_height,
  43. $attachemessages, $session;
  44. $module = substr( $PHP_SELF, ( strlen( $PHP_SELF ) - strlen( $base_uri ) ) * -1 );
  45. if ($qmark = strpos($module, '?')) {
  46. $module = substr($module, 0, $qmark);
  47. }
  48. if (!isset($frame_top)) {
  49. $frame_top = '_top';
  50. }
  51. /*
  52. Locate the first displayable form element
  53. */
  54. if ($session != false) {
  55. $compose_uri = 'src/compose.php?mailbox='. urlencode($mailbox).'&attachedmessages=true&session='."$session";
  56. } else {
  57. $compose_uri = 'src/compose.php?newmessage=1';
  58. $session = 0;
  59. }
  60. switch ( $module ) {
  61. case 'src/read_body.php':
  62. if ($compose_new_win == '1') {
  63. if (!preg_match("/^[0-9]{3,4}$/", $compose_width)) {
  64. $compose_width = '640';
  65. }
  66. if (!preg_match("/^[0-9]{3,4}$/", $compose_height)) {
  67. $compose_height = '550';
  68. }
  69. $js = "\n".'<script language="JavaScript" type="text/javascript">' .
  70. "\n<!--\n";
  71. $js .= "function comp_in_new(new_mes, comp_uri) {\n".
  72. ' if (new_mes) { '."\n".
  73. " comp_uri = \"".$base_uri."src/compose.php?newmessage=1\";\n".
  74. ' } else { '."\n".
  75. " if (comp_uri =='') {\n".
  76. ' comp_uri = "'.$base_uri.$compose_uri."\";\n".
  77. ' }'. "\n".
  78. ' }'. "\n".
  79. ' var newwin = window.open(comp_uri' .
  80. ', "_blank",
  81. "width='.$compose_width.",height=$compose_height".
  82. ",scrollbars=yes,resizable=yes\");\n".
  83. "}\n";
  84. $js .= "// -->\n".
  85. "</script>\n";
  86. displayHtmlHeader ('Squirrelmail', $js);
  87. }
  88. displayHtmlHeader();
  89. $onload = $xtra;
  90. break;
  91. case 'src/compose.php':
  92. $js = '<script language="JavaScript" type="text/javascript">' .
  93. "\n<!--\n" .
  94. "function checkForm() {\n".
  95. "var f = document.forms.length;\n".
  96. "var i = 0;\n".
  97. "var pos = -1;\n".
  98. "while( pos == -1 && i < f ) {\n".
  99. "var e = document.forms[i].elements.length;\n".
  100. "var j = 0;\n".
  101. "while( pos == -1 && j < e ) {\n".
  102. "if ( document.forms[i].elements[j].type == 'text' ) {\n".
  103. "pos = j;\n".
  104. "}\n".
  105. "j++;\n".
  106. "}\n".
  107. "i++;\n".
  108. "}\n".
  109. "if( pos >= 0 ) {\n".
  110. "document.forms[i-1].elements[pos].focus();\n".
  111. "}\n".
  112. "}\n";
  113. $js .= "// -->\n".
  114. "</script>\n";
  115. $onload = "onLoad=\"checkForm();\"";
  116. displayHtmlHeader ('Squirrelmail', $js);
  117. break;
  118. default:
  119. $js = '<script language="JavaScript" type="text/javascript">' .
  120. "\n<!--\n" .
  121. "function checkForm() {\n".
  122. "var f = document.forms.length;\n".
  123. "var i = 0;\n".
  124. "var pos = -1;\n".
  125. "while( pos == -1 && i < f ) {\n".
  126. "var e = document.forms[i].elements.length;\n".
  127. "var j = 0;\n".
  128. "while( pos == -1 && j < e ) {\n".
  129. "if ( document.forms[i].elements[j].type == 'text' ) {\n".
  130. "pos = j;\n".
  131. "}\n".
  132. "j++;\n".
  133. "}\n".
  134. "i++;\n".
  135. "}\n".
  136. "if( pos >= 0 ) {\n".
  137. "document.forms[i-1].elements[pos].focus();\n".
  138. "}\n".
  139. "$xtra\n".
  140. "}\n";
  141. if ($compose_new_win == '1') {
  142. if (!preg_match("/^[0-9]{3,4}$/", $compose_width)) {
  143. $compose_width = '640';
  144. }
  145. if (!preg_match("/^[0-9]{3,4}$/", $compose_height)) {
  146. $compose_height = '550';
  147. }
  148. $js .= "function comp_in_new(new_mes, comp_uri) {\n".
  149. ' if (new_mes) { '."\n".
  150. " comp_uri = \"".$base_uri."src/compose.php?newmessage=1\";\n".
  151. ' } else { '."\n".
  152. " if (comp_uri =='') {\n".
  153. ' comp_uri = "'.$base_uri.$compose_uri."\";\n".
  154. ' }'. "\n".
  155. ' }'. "\n".
  156. ' var newwin = window.open(comp_uri' .
  157. ', "_blank",
  158. "width='.$compose_width.",height=$compose_height".
  159. ",scrollbars=yes,resizable=yes\");\n".
  160. "}\n";
  161. }
  162. $js .= "// -->\n".
  163. "</script>\n";
  164. $onload = "onLoad=\"checkForm();\"";
  165. displayHtmlHeader ('Squirrelmail', $js);
  166. break;
  167. }
  168. echo "<body text=\"$color[8]\" bgcolor=\"$color[4]\" link=\"$color[7]\" vlink=\"$color[7]\" alink=\"$color[7]\" $onload>\n\n";
  169. /** Here is the header and wrapping table **/
  170. $shortBoxName = imap_utf7_decode_local(
  171. readShortMailboxName($mailbox, $delimiter));
  172. if ( $shortBoxName == 'INBOX' ) {
  173. $shortBoxName = _("INBOX");
  174. }
  175. echo "<a name=\"pagetop\"></a>\n"
  176. . html_tag( 'table', '', '', $color[4], 'border="0" width="100%" cellspacing="0" cellpadding="2"' ) ."\n"
  177. . html_tag( 'tr', '', '', $color[9] ) ."\n"
  178. . html_tag( 'td', '', 'left' ) ."\n";
  179. if ( $shortBoxName <> '' && strtolower( $shortBoxName ) <> 'none' ) {
  180. echo ' ' . _("Current Folder") . ": <b>$shortBoxName&nbsp;</b>\n";
  181. } else {
  182. echo '&nbsp;';
  183. }
  184. echo " </td>\n"
  185. . html_tag( 'td', '', 'right' ) ."<b>\n";
  186. displayInternalLink ('src/signout.php', _("Sign Out"), $frame_top);
  187. echo "</b></td>\n"
  188. . " </tr>\n"
  189. . html_tag( 'tr', '', '', $color[4] ) ."\n"
  190. . html_tag( 'td', '', 'left' ) ."\n";
  191. $urlMailbox = urlencode($mailbox);
  192. if ($compose_new_win == '1') {
  193. echo "<a href=\"javascript:void(0)\" onclick=\"comp_in_new(true,'')\">". _("Compose"). '</a>';
  194. }
  195. else {
  196. displayInternalLink ("src/compose.php?mailbox=$urlMailbox", _("Compose"), 'right');
  197. }
  198. echo "&nbsp;&nbsp;\n";
  199. displayInternalLink ("src/addressbook.php", _("Addresses"), 'right');
  200. echo "&nbsp;&nbsp;\n";
  201. displayInternalLink ("src/folders.php", _("Folders"), 'right');
  202. echo "&nbsp;&nbsp;\n";
  203. displayInternalLink ("src/options.php", _("Options"), 'right');
  204. echo "&nbsp;&nbsp;\n";
  205. displayInternalLink ("src/search.php?mailbox=$urlMailbox", _("Search"), 'right');
  206. echo "&nbsp;&nbsp;\n";
  207. displayInternalLink ("src/help.php", _("Help"), 'right');
  208. echo "&nbsp;&nbsp;\n";
  209. do_hook("menuline");
  210. echo " </td>\n"
  211. . html_tag( 'td', '', 'right' ) ."\n";
  212. echo ($hide_sm_attributions ? '&nbsp;' :
  213. '<a href="http://www.squirrelmail.org/" target="_blank">SquirrelMail</a>');
  214. echo "</td>\n".
  215. " </tr>\n".
  216. "</table>\n\n";
  217. }
  218. /* blatently copied/truncated/modified from the above function */
  219. function compose_Header($color, $mailbox) {
  220. global $delimiter, $hide_sm_attributions, $base_uri, $PHP_SELF, $frame_top, $compose_new_win;
  221. $module = substr( $PHP_SELF, ( strlen( $PHP_SELF ) - strlen( $base_uri ) ) * -1 );
  222. if (!isset($frame_top)) {
  223. $frame_top = '_top';
  224. }
  225. /*
  226. Locate the first displayable form element
  227. */
  228. switch ( $module ) {
  229. case 'src/search.php':
  230. $pos = getPref($data_dir, $username, 'search_pos', 0 ) - 1;
  231. $onload = "onLoad=\"document.forms[$pos].elements[2].focus();\"";
  232. displayHtmlHeader (_("Compose"));
  233. break;
  234. default:
  235. $js = '<script language="JavaScript" type="text/javascript">' .
  236. "\n<!--\n" .
  237. "function checkForm() {\n".
  238. "var f = document.forms.length;\n".
  239. "var i = 0;\n".
  240. "var pos = -1;\n".
  241. "while( pos == -1 && i < f ) {\n".
  242. "var e = document.forms[i].elements.length;\n".
  243. "var j = 0;\n".
  244. "while( pos == -1 && j < e ) {\n".
  245. "if ( document.forms[i].elements[j].type == 'text' ) {\n".
  246. "pos = j;\n".
  247. "}\n".
  248. "j++;\n".
  249. "}\n".
  250. "i++;\n".
  251. "}\n".
  252. "if( pos >= 0 ) {\n".
  253. "document.forms[i-1].elements[pos].focus();\n".
  254. "}\n".
  255. "}\n";
  256. $js .= "// -->\n".
  257. "</script>\n";
  258. $onload = "onLoad=\"checkForm();\"";
  259. displayHtmlHeader (_("Compose"), $js);
  260. break;
  261. }
  262. echo "<body text=\"$color[8]\" bgcolor=\"$color[4]\" link=\"$color[7]\" vlink=\"$color[7]\" alink=\"$color[7]\" $onload>\n\n";
  263. }
  264. ?>