MessagesReplacement
Questions answered by this recipe
Can I display selected debugging messages from $MessagesFmt from only one, or from selected, message sources?
Can I make the messages from each message source hidden until shown on user demand?
Description
A drop in replacement for the PmWiki (:messages keys= :)
directive.
Based on code from PITS:01368.
The global variable $MessagesFmt
is written to by PmWiki recipes with debug and similar information.
By convention the array has two dimensions, the first a string identifying the source of the message, and the optional second dimension, a string with the debug message itself.
$MessagesFmt
['sourcename'] = $string; # concatenated lines$MessagesFmt
['sourcename'][] = $string; # multiple lines
Differences are:
- comma or space separated name parameters, with wildcards, can be supplied to select the groups of messages displayed
- only messages for specified name parameters are displayed
- name parameters are case insensitive
- directive does not have to start at the beginning of a line
- the output is placed within a HTML
section
ofclass=messages
- groups of messages are separated by a blank line
- groups of messages can be rolled up by using the
details=show | hide
parameter
Installation
- download
messagesreplacement-2024-05-31.phpΔ
- copy to the
/cookbook/
directory asmessagesreplacement.php
- add to
config.php
the lineinclude_once ($FarmD/cookbook/
messagesreplacement
.php);
Usage
Place the directive, as described below, in your PmWiki page.
The recipe provides a page variable {$MessagesReplacementVersion}
which contains the current version, and page variable $@MessagesReplacement
for a (:if enabled MessagesReplacement:)
recipe installation check.
Configuration
(:messages optional,list of names with,wildcards* keys="names,with,*wildcards" details=hide :)
Parameters are optional and case-insensitive:
names
can include wild cardskeys=
a comma separated list of namesdetails='show' or details = 'hide'
provides a clickable name for each group of messages with initial value of show or hide
config.php
settings
You can change the following in config.php
. For example
$MessagesReplacementDebug = true; # results may vary
$MessagesReplacementHeading = true; # shows heading level 3 for each group of messages
$MessagesReplacementDetails = 'hide'; # rolls up each group of messages
hide
' and 'show
'
Change log / Release notes
2024-05-31 add key=
parameter to maintain compatibility with built in directive
2024-04-27 fix PHP 8 warnings, add details=show||hide
parameter
2022-02-02 Separate groups of messages, enable heading
2022-01-22 Initial version
See also
- PITS:01368 add parameter to
(:messages:)
page directive - PmWiki
(:messages:)
directive. - $MessagesFmt
- DebugMessages Capture recipe debug messages for display by the messages directive
Contributors
Special thanks to Petko
Comments
See discussion at MessagesReplacement-Talk?
User notes? : If you use, used or reviewed this recipe, you can add your name. These statistics appear in the Cookbook listings and will help newcomers browsing through the wiki.