X-Git-Url: https://jasonwoof.com/gitweb/?p=wfpl.git;a=blobdiff_plain;f=messages.php;h=98ada56c16029afc69cbb2ebfee198c2ab4192fc;hp=826cb6e23df5a2cc38a59018b6070134d42deaf4;hb=eecd5e3576866afc8091abe9b74352130fd8e6cc;hpb=190f7cd55eb57df70388557c44667ac01494ebd1 diff --git a/messages.php b/messages.php index 826cb6e..98ada56 100644 --- a/messages.php +++ b/messages.php @@ -16,56 +16,72 @@ # along with this program. If not, see . -# This file is useful for putting message box(es) on the screen. +# This file is useful for putting message box(es) on the screen. If you include +# session_messages.php these messages can even persist accross http redirects +# (such as you should do after receiving a POST. # # Just call message("message here") whenever you have something to report. # -# Once a template is loaded, call display_messages(). Your template should have -# a section with a ~text:html~ tag in it. # -# If you want a divider (any text between message boxes when there are -# multiple boxes) provide a sub-template section named "separator" -# INSIDE "message" at the begining of it. +# Once a template is loaded, call display_messages(). run.php will call +# display_messages() for you automaticallly after your main function returns +# (so long as you require_once this file.) If you want these messages to +# persist accross browser redirects, then you should +# require_once("code/wfpl/session_messages.php") +# +# Just make sure your template has a section with a +# ~message html~ tag in it. # -# If you'd like something around the group of all message boxes, you can put -# the whole thing in a sub-template section called "messages" - # Simple example: # -# -#

~text:html~

-# - +# +#

~message html~

+# +# # Full-featured example: # -# -#
-# -# -#
-# -#

~text:html~

-# -#
-# +# +#
+# +#

~message html~

+# +#
+# +# +#
+# -require_once('code/wfpl/template.php'); +require_once(__DIR__ . '/template.php'); +# call this to display a message function message($msg) { if(!isset($GLOBALS['wfpl_messages'])) { - if(function_exists('session_restore_messages')) { - $GLOBALS['wfpl_messages'] = session_restore_messages(); - } else $GLOBALS['wfpl_messages'] = array(); + $GLOBALS['wfpl_messages'] = array(); } $GLOBALS['wfpl_messages'][] = $msg; } -function display_messages(&$tem = NULL) { - if(!$GLOBALS['wfpl_messages']) return; - foreach($GLOBALS['wfpl_messages'] as $msg) { - $sub = array('text' => $msg); - $GLOBALS['wfpl_template']['message'][] = $sub; - $GLOBALS['wfpl_template']['messages'] = TRUE; +# destructive +function get_messages() { + if(!isset($GLOBALS['wfpl_messages'])) { + $messages = array(); + } else { + $messages = $GLOBALS['wfpl_messages']; + unset($GLOBALS['wfpl_messages']); + } + + if(function_exists('session_restore_messages')) { + $messages = array_merge(session_restore_messages(), $messages); + } + + return $messages; +} + +# called automatically by run.php +function display_messages(&$tem = NULL, $key = '$messages') { + if(!$tem) { + $tem = &$GLOBALS['wfpl_template']; } + $tem->data[$key] = columnize(get_messages(), 'message'); }