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
sectionofclass=messages - groups of messages are separated by a blank line
- groups of messages can be rolled up by using the
details=show | hideparameter
Installation
- download
messagesreplacement-2024-05-31.phpΔ - copy to the
/cookbook/directory asmessagesreplacement.php - add to
config.phpthe 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:
namescan 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.