X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=functions%2Fstrings.php;h=944177d9d1523a3833522df5b89159eadbd0a90e;hp=1fcbd6dc9b7bfc5c8484e4d87f69cb12755f1fde;hb=fa965ffacefbf27fdbd62424eb1266bdf086072c;hpb=8f557b942c5a3fb6663c349f4cc7d4a1c8aa4504 diff --git a/functions/strings.php b/functions/strings.php index 1fcbd6dc..944177d9 100644 --- a/functions/strings.php +++ b/functions/strings.php @@ -6,7 +6,7 @@ * This code provides various string manipulation functions that are * used by the rest of the SquirrelMail code. * - * @copyright © 1999-2007 The SquirrelMail Project Team + * @copyright © 1999-2009 The SquirrelMail Project Team * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id$ * @package squirrelmail @@ -509,6 +509,16 @@ function get_location () { $port = ''; if (! strstr($host, ':')) { + // Note: HTTP_X_FORWARDED_PROTO could be sent from the client and + // therefore possibly spoofed/hackable. Thus, SquirrelMail + // ignores such headers by default. The administrator + // can tell SM to use such header values by setting + // $sq_ignore_http_x_forwarded_headers to boolean FALSE + // in config/config.php or by using config/conf.pl. + global $sq_ignore_http_x_forwarded_headers; + if ($sq_ignore_http_x_forwarded_headers + || !sqgetGlobalVar('HTTP_X_FORWARDED_PROTO', $forwarded_proto, SQ_SERVER)) + $forwarded_proto = ''; if (sqgetGlobalVar('SERVER_PORT', $server_port, SQ_SERVER)) { if (($server_port != 80 && $proto == 'http://') || ($server_port != 443 && $proto == 'https://' && @@ -645,12 +655,16 @@ function OneTimePadCreate ($length=100) { } /** - * Returns a string showing the size of the message/attachment. - * - * @param int $bytes the filesize in bytes - * @return string the filesize in human readable format - * @since 1.0 - */ + * Returns a string showing a byte size figure in + * a more easily digested (readable) format + * + * @param int $bytes the size in bytes + * + * @return string The size in human readable format + * + * @since 1.0 + * + */ function show_readable_size($bytes) { $bytes /= 1024; $type = _("KiB"); @@ -668,7 +682,8 @@ function show_readable_size($bytes) { settype($bytes, 'integer'); } - return $bytes . ' ' . $type; + global $nbsp; + return $bytes . $nbsp . $type; } /** @@ -724,13 +739,17 @@ function quoteimap($str) { * * Returns a link to the compose-page, taking in consideration * the compose_in_new and javascript settings. - * @param string $url the URL to the compose page - * @param string $text the link text, default "Compose" - * @param string $target (since 1.4.3) url target + * + * @param string $url The URL to the compose page + * @param string $text The link text, default "Compose" + * @param string $target URL target, if any (since 1.4.3) + * @param string $accesskey The access key to be used, if any + * * @return string a link to the compose page + * * @since 1.4.2 */ -function makeComposeLink($url, $text = null, $target='') { +function makeComposeLink($url, $text = null, $target='', $accesskey='NONE') { global $compose_new_win, $compose_width, $compose_height, $oTemplate; @@ -741,7 +760,7 @@ function makeComposeLink($url, $text = null, $target='') { // if not using "compose in new window", make // regular link and be done with it if($compose_new_win != '1') { - return makeInternalLink($url, $text, $target); + return makeInternalLink($url, $text, $target, $accesskey); } // build the compose in new window link... @@ -752,11 +771,16 @@ function makeComposeLink($url, $text = null, $target='') { sqgetGlobalVar('base_uri', $base_uri, SQ_SESSION); $compuri = SM_BASE_URI.$url; - return create_hyperlink('javascript:void(0)', $text, '', "comp_in_new('$compuri','$compose_width','$compose_height')"); + return create_hyperlink('javascript:void(0)', $text, '', + "comp_in_new('$compuri','$compose_width','$compose_height')", + '', '', '', + ($accesskey == 'NONE' + ? array() + : array('accesskey' => $accesskey))); } // otherwise, just open new window using regular HTML - return makeInternalLink($url, $text, '_blank'); + return makeInternalLink($url, $text, '_blank', $accesskey); } /**