X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fpage_header.php;h=46f45e43140dc44ea5bd90c6673bb143ebc9a3f0;hb=0493ed1186b2b5393e29facef012b1a028e8e52d;hp=dc33315c94d9008eb65cf5cd2a33fa69b8d7b2fb;hpb=b9d5e41157843ab7b3621d183362b93e7e85edad;p=squirrelmail.git
diff --git a/functions/page_header.php b/functions/page_header.php
index dc33315c..46f45e43 100644
--- a/functions/page_header.php
+++ b/functions/page_header.php
@@ -3,213 +3,260 @@
/**
* page_header.php
*
- * Copyright (c) 1999-2002 The SquirrelMail Project Team
+ * Copyright (c) 1999-2005 The SquirrelMail Project Team
* Licensed under the GNU GPL. For full terms see the file COPYING.
*
* Prints the page header (duh)
*
- * $Id$
+ * @version $Id$
+ * @package squirrelmail
*/
-require_once('../functions/strings.php');
+/** 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 */
-function displayHtmlHeader( $title = 'SquirrelMail', $xtra = '', $do_hook = TRUE ) {
+/**
+ * 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
+ * @param bool frames generate html frameset doctype (since 1.5.1)
+ * @return void
+ */
+function displayHtmlHeader( $title = 'SquirrelMail', $xtra = '', $do_hook = true, $frames = false ) {
+ global $squirrelmail_language;
- global $theme_css, $custom_css, $base_uri;
+ if ( !sqgetGlobalVar('base_uri', $base_uri, SQ_SESSION) ) {
+ global $base_uri;
+ }
+ global $theme_css, $custom_css, $pageheader_sent;
- echo '' .
- "\n\n\n
\n";
+ if ($frames) {
+ echo '';
+ } else {
+ echo '';
+ }
+ echo "\n" . html_tag( 'html' ,'' , '', '', 'lang="'.$squirrelmail_language.'"' ) .
+ "\n\n";
+ /*
+ * Add closing / to link and meta elements only after switching to xhtml 1.0 Transitional.
+ * It is not compatible with html 4.01 Transitional
+ */
if ( !isset( $custom_css ) || $custom_css == 'none' ) {
if ($theme_css != '') {
- echo "";
+ echo "";
}
} else {
- echo '';
}
-
- echo "\n$title$xtra\n\n";
-}
-function displayInternalLink($path, $text, $target='') {
- global $base_uri;
+ if ($squirrelmail_language == 'ja_JP') {
+ /*
+ * force correct detection of charset, when browser does not follow
+ * http content-type and tries to detect charset from page content.
+ * Shooting of browser's creator can't be implemented in php.
+ * We might get rid of it, if we follow http://www.w3.org/TR/japanese-xml/
+ * recommendations and switch to unicode.
+ */
+ echo "\n";
+ echo '' . "\n";
+ }
+ if ($do_hook) {
+ do_hook('generic_header');
+ }
+
+ echo "$title\n$xtra\n";
+
+ /* work around IE6's scrollbar bug */
+ echo <<
+
+
+ECHO;
+
+ echo "\n\n\n";
+
+ /* this is used to check elsewhere whether we should call this function */
+ $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 != '') {
$target = " target=\"$target\"";
}
- echo ''.$text.'';
+ // This is an inefficient hook and is only used by
+ // one plugin that still needs to patch this code,
+ // plus if we are templat-izing SM, visual hooks
+ // are not needed. However, I am leaving the code
+ // here just in case we find a good (non-visual?)
+ // use for the internal_link hook.
+ //
+ //$hooktext = do_hook_function('internal_link',$text);
+ //if ($hooktext != '')
+ // $text = $hooktext;
+
+ return ''.$text.'';
+}
+
+/**
+ * Same as makeInternalLink, but echoes it too
+ */
+function displayInternalLink($path, $text, $target='') {
+ echo makeInternalLink($path, $text, $target);
}
-function displayPageHeader($color, $mailbox, $xtra='') {
+/**
+ * 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 sHeaderJs javascipt code to be inserted in a script block in the header
+ * @param string sBodyTagJs js events to be inserted in the body tag
+ * @return void
+ */
- global $delimiter, $hide_sm_attributions, $base_uri, $PHP_SELF, $frame_top,
- $compose_new_win, $username, $datadir, $compose_width, $compose_height;
+function displayPageHeader($color, $mailbox, $sHeaderJs='', $sBodyTagJs = 'onload="checkForm();"') {
+ global $hide_sm_attributions, $frame_top,
+ $provider_name, $provider_uri, $startMessage,
+ $javascript_on;
+
+ sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION );
- $module = substr( $PHP_SELF, ( strlen( $PHP_SELF ) - strlen( $base_uri ) ) * -1 );
- if ($qmark = strpos($module, '?')) {
- $module = substr($module, 0, $qmark);
- }
if (!isset($frame_top)) {
$frame_top = '_top';
}
- /*
- Locate the first displayable form element
- */
- switch ( $module ) {
- default:
- $js = '\n";
- $onload = "onLoad=\"checkForm();\"";
- displayHtmlHeader ('Squirrelmail', $js);
- break;
-
+ if( $javascript_on || strpos($sHeaderJs, 'new_js_autodetect_results.value') ) {
+ $sJsBlock = '' ."\n";
+ if ($sHeaderJs) {
+ $sJsBlock .= "\n\n";
+ }
+ displayHtmlHeader ('SquirrelMail', $sJsBlock);
+ } else {
+ /* do not use JavaScript */
+ displayHtmlHeader ('SquirrelMail');
+ $sBodyTagJs = '';
}
- echo "\n\n";
+ echo "\n\n";
+
/** Here is the header and wrapping table **/
- $shortBoxName = readShortMailboxName($mailbox, $delimiter);
+ $shortBoxName = htmlspecialchars(imap_utf7_decode_local(
+ readShortMailboxName($mailbox, $delimiter)));
if ( $shortBoxName == 'INBOX' ) {
$shortBoxName = _("INBOX");
}
- echo "\n"
- . "