X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fpage_header.php;h=4129316940039fef2e7a6223b64706812c50d4b9;hb=15b1d9878320a10fe3a479b47b608d50b468b79d;hp=50957d603e9444bbdec6e1614667b22b212f9719;hpb=da9a8410fa32eb91f44576621e566f386500f0de;p=squirrelmail.git diff --git a/functions/page_header.php b/functions/page_header.php index 50957d60..41293169 100644 --- a/functions/page_header.php +++ b/functions/page_header.php @@ -3,20 +3,30 @@ /** * page_header.php * - * Copyright (c) 1999-2003 The SquirrelMail Project Team + * Copyright (c) 1999-2004 The SquirrelMail Project Team * Licensed under the GNU GPL. For full terms see the file COPYING. * * Prints the page header (duh) * * $Id$ + * @package squirrelmail */ +/** Include required files from SM */ require_once(SM_PATH . 'functions/strings.php'); require_once(SM_PATH . 'functions/html.php'); require_once(SM_PATH . 'functions/imap_mailbox.php'); require_once(SM_PATH . 'functions/global.php'); -/* Always set up the language before calling these functions */ +/** + * Output a SquirrelMail page header, from to + * Always set up the language before calling these functions. + * + * @param string title the page title, default SquirrelMail. + * @param string xtra extra HTML to insert into the header + * @param bool do_hook whether to execute hooks, default true + * @return void + */ function displayHtmlHeader( $title = 'SquirrelMail', $xtra = '', $do_hook = TRUE ) { global $squirrelmail_language; @@ -69,6 +79,13 @@ ECHO; $pageheader_sent = TRUE; } +/** + * Given a path to a SquirrelMail file, return a HTML link to it + * + * @param string path the SquirrelMail file to link to + * @param string text the link text + * @param string target the target frame for this link + */ function makeInternalLink($path, $text, $target='') { sqgetGlobalVar('base_uri', $base_uri, SQ_SESSION); if ($target != '') { @@ -80,16 +97,31 @@ function makeInternalLink($path, $text, $target='') { return ''.$text.''; } +/** + * Same as makeInternalLink, but echoes it too + */ function displayInternalLink($path, $text, $target='') { echo makeInternalLink($path, $text, $target); } +/** + * Outputs a complete SquirrelMail page header, starting with and + * including the default menu bar. Uses displayHtmlHeader and takes + * JavaScript and locale settings into account. + * + * @param array color the array of theme colors + * @param string mailbox the current mailbox name to display + * @param string xtra extra html code to add + * @param bool session + * @return void + */ function displayPageHeader($color, $mailbox, $xtra='', $session=false) { global $hide_sm_attributions, $PHP_SELF, $frame_top, $compose_new_win, $compose_width, $compose_height, $attachemessages, $provider_name, $provider_uri, - $javascript_on, $default_use_mdn, $mdn_user_support; + $javascript_on, $default_use_mdn, $mdn_user_support, + $startMessage; sqgetGlobalVar('base_uri', $base_uri, SQ_SESSION ); sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION ); @@ -102,10 +134,10 @@ function displayPageHeader($color, $mailbox, $xtra='', $session=false) { } if ($session) { - $compose_uri = $base_uri.'src/compose.php?mailbox='.urlencode($mailbox).'&attachedmessages=true&session='."$session"; + $compose_uri = $base_uri.'src/compose.php?mailbox='.urlencode($mailbox).'&attachedmessages=true&session='."$session"; } else { $compose_uri = $base_uri.'src/compose.php?newmessage=1'; - $session = 0; + $session = 0; } if($javascript_on) { @@ -122,15 +154,29 @@ function displayPageHeader($color, $mailbox, $xtra='', $session=false) { if (!preg_match("/^[0-9]{3,4}$/", $compose_height)) { $compose_height = '550'; } + $js .= "function comp_in_new_form(comp_uri, button, myform) {\n". + ' if (!comp_uri) {'."\n". + ' comp_uri = "'.$compose_uri."\";\n". + ' }'. "\n". + ' comp_uri += "&" + button.name + "=1";'."\n". + ' for ( var i=0; i < myform.elements.length; i++ ) {'."\n". + ' if ( myform.elements[i].type == "checkbox" && myform.elements[i].checked )'."\n". + ' comp_uri += "&" + myform.elements[i].name + "=1";'."\n". + ' }'."\n". + ' var newwin = window.open(comp_uri' . + ', "_blank",'. + '"width='.$compose_width. ',height='.$compose_height. + ',scrollbars=yes,resizable=yes");'."\n". + "}\n\n"; $js .= "function comp_in_new(comp_uri) {\n". - " if (!comp_uri) {\n". - ' comp_uri = "'.$compose_uri."\";\n". - ' }'. "\n". - ' var newwin = window.open(comp_uri' . - ', "_blank",'. - '"width='.$compose_width. ',height='.$compose_height. - ',scrollbars=yes,resizable=yes");'."\n". - "}\n\n"; + " if (!comp_uri) {\n". + ' comp_uri = "'.$compose_uri."\";\n". + ' }'. "\n". + ' var newwin = window.open(comp_uri' . + ', "_blank",'. + '"width='.$compose_width. ',height='.$compose_height. + ',scrollbars=yes,resizable=yes");'."\n". + "}\n\n"; } // javascript for sending read receipts @@ -138,7 +184,7 @@ function displayPageHeader($color, $mailbox, $xtra='', $session=false) { $js .= 'function sendMDN() {'."\n". " mdnuri=window.location+'&sendreceipt=1'; ". "var newwin = window.open(mdnuri,'right');". - "\n}\n\n"; + "\n}\n\n"; } // if any of the above passes, add the JS tags too. @@ -153,8 +199,16 @@ function displayPageHeader($color, $mailbox, $xtra='', $session=false) { case 'src/compose.php': $js = '\n"; + "\n"; $onload = 'onload="checkForm();"'; displayHtmlHeader ('SquirrelMail', $js); break; @@ -201,9 +255,9 @@ function displayPageHeader($color, $mailbox, $xtra='', $session=false) { "if( pos >= 0 ) {\n". "document.forms[i-1].elements[pos].focus();\n". "}\n". - "$xtra\n". + "$xtra\n". "}\n"; - + if ($compose_new_win == '1') { if (!preg_match("/^[0-9]{3,4}$/", $compose_width)) { $compose_width = '640'; @@ -212,9 +266,9 @@ function displayPageHeader($color, $mailbox, $xtra='', $session=false) { $compose_height = '550'; } $js .= "function comp_in_new(comp_uri) {\n". - " if (!comp_uri) {\n". - ' comp_uri = "'.$compose_uri."\";\n". - ' }'. "\n". + " if (!comp_uri) {\n". + ' comp_uri = "'.$compose_uri."\";\n". + ' }'. "\n". ' var newwin = window.open(comp_uri' . ', "_blank",'. '"width='.$compose_width. ',height='.$compose_height. @@ -223,7 +277,7 @@ function displayPageHeader($color, $mailbox, $xtra='', $session=false) { } $js .= "// -->\n". "\n"; - + $onload = 'onload="checkForm();"'; displayHtmlHeader ('SquirrelMail', $js); break; @@ -237,8 +291,8 @@ function displayPageHeader($color, $mailbox, $xtra='', $session=false) { echo "\n\n"; /** Here is the header and wrapping table **/ - $shortBoxName = imap_utf7_decode_local( - readShortMailboxName($mailbox, $delimiter)); + $shortBoxName = htmlspecialchars(imap_utf7_decode_local( + readShortMailboxName($mailbox, $delimiter))); if ( $shortBoxName == 'INBOX' ) { $shortBoxName = _("INBOX"); } @@ -261,17 +315,17 @@ function displayPageHeader($color, $mailbox, $xtra='', $session=false) { : html_tag( 'td', '', 'left' ) ) . "\n"; $urlMailbox = urlencode($mailbox); - echo makeComposeLink('src/compose.php?mailbox='.$urlMailbox); + echo makeComposeLink('src/compose.php?mailbox='.$urlMailbox.'&startMessage='.$startMessage); echo "  \n"; - displayInternalLink ('src/addressbook.php', _("Addresses"), 'right'); + displayInternalLink ('src/addressbook.php', _("Addresses")); echo "  \n"; - displayInternalLink ('src/folders.php', _("Folders"), 'right'); + displayInternalLink ('src/folders.php', _("Folders")); echo "  \n"; - displayInternalLink ('src/options.php', _("Options"), 'right'); + displayInternalLink ('src/options.php', _("Options")); echo "  \n"; - displayInternalLink ("src/search.php?mailbox=$urlMailbox", _("Search"), 'right'); + displayInternalLink ("src/search.php?mailbox=$urlMailbox", _("Search")); echo "  \n"; - displayInternalLink ('src/help.php', _("Help"), 'right'); + displayInternalLink ('src/help.php', _("Help")); echo "  \n"; do_hook('menuline'); @@ -290,7 +344,14 @@ function displayPageHeader($color, $mailbox, $xtra='', $session=false) { "
\n\n"; } -/* blatently copied/truncated/modified from the above function */ +/** + * Blatantly copied/truncated/modified from displayPageHeader. + * Outputs a page header specifically for the compose_in_new popup window + * + * @param array color the array of theme colors + * @param string mailbox the current mailbox name to display + * @return void + */ function compose_Header($color, $mailbox) { global $javascript_on; @@ -312,8 +373,16 @@ function compose_Header($color, $mailbox) { default: $js = '\n"; + "\n"; $onload = 'onload="checkForm();"'; displayHtmlHeader (_("Compose"), $js); break;