X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=messages.php;h=8c66ee2fce17143e6d89d95f1e59e07ae1b654f0;hb=3e70448969d205f3387edc245c6b52d01ae9ab75;hp=2d065e32e16bca925ad8c33916b52d14548c5539;hpb=a0e5ba78fcf29b7dd798e4f691068634e5355806;p=wfpl.git
diff --git a/messages.php b/messages.php
index 2d065e3..8c66ee2 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');
+# 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_tem_data']['message'][] = $sub;
- $GLOBALS['wfpl_tem_data']['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');
}