From: pdontthink Date: Fri, 16 Feb 2007 01:48:34 +0000 (+0000) Subject: Allow error_box and plain_error_message functions to return output instead of immedia... X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=87d2ad512ec9a0dbfd15efdb10e3d9d700f32073;p=squirrelmail.git Allow error_box and plain_error_message functions to return output instead of immediately echoing. Also make sure all output is generated with templates for these functions git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@12270 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- diff --git a/functions/display_messages.php b/functions/display_messages.php index 47a55f99..6cdfac59 100644 --- a/functions/display_messages.php +++ b/functions/display_messages.php @@ -36,12 +36,15 @@ function error_message($message, $mailbox, $sort, $startMessage) { /** * Displays error message * - * Second argument ($color array) is removed in 1.5.2. + * Second argument ($color array) is changed to boolean $return_output as of 1.5.2. * @param string $message error message + * @param boolean $return_output When TRUE, output is returned to caller + * instead of being sent to browser (OPTIONAL; + * default = FALSE) * @since 1.0 */ -function plain_error_message($message) { - error_box($message); +function plain_error_message($message, $return_output=FALSE) { + return error_box($message, NULL, $return_output); } /** @@ -124,25 +127,35 @@ function logout_error( $errString, $errTitle = '' ) { * for $color array, new function uses it for optional link data. Function * will ignore color array and use standard colors instead. * + * The $return_output argument was added in 1.5.2 + * * @param string $string Error message to be displayed * @param array $link Optional array containing link details to be displayed. * Array uses three keys. 'URL' key is required and should contain link URL. * 'TEXT' key is optional and should contain link name. 'FRAME' key is * optional and should contain link target attribute. + * @param boolean $return_output When TRUE, output is returned to caller + * instead of being sent to browser (OPTIONAL; + * default = FALSE) * * @since 1.3.2 */ -function error_box($string, $link=NULL) { +function error_box($string, $link=NULL, $return_output=FALSE) { global $pageheader_sent, $oTemplate; $err = _("ERROR"); do_hook('error_box', $string); - /* check if the page header has been sent; if not, send it! */ - if (!isset($pageheader_sent) && !$pageheader_sent) { + // check if the page header has been sent; if not, send it! + // + // (however, if $return_output is turned on, the output of this + // should be being used in some other page, so we don't have + // to worry about page headers in that case) + // + if (!$return_output && empty($pageheader_sent)) { displayHtmlHeader('SquirrelMail: '.$err); $pageheader_sent = TRUE; - echo "\n\n"; + echo create_body(); // this is template-safe (see create_body() function) } // Double check the link for everything we need @@ -161,7 +174,10 @@ function error_box($string, $link=NULL) { $oTemplate->assign('error', $err); $oTemplate->assign('errorMessage', $string); $oTemplate->assign('link', $link); - $oTemplate->display('error_box.tpl'); + $output = $oTemplate->fetch('error_box.tpl'); + + if ($return_output) return $output; + echo $output; } /**