The IfPlugin allows parts of a WikiPage to be executed conditionally.
You can also use shorthand "If" to run it.
Parameters:
- group - A "|" -separated list of group names.
- user - A "|" -separated list of user names.
- ip - A "|" -separated list of ip addresses.
- var - A wiki variable
- page - A page name
- contains - A Perl5 regexp pattern
- is - A Perl5 regexp pattern
- exists - "true" or "false".
If any of them match, the body of the plugin is executed. You can
negate the content by prefixing it with a "!". For example, to greet
all admins, put the following in your LeftMenu:
[{If group='Admin'
Hello, Admin, and your mighty powers!}]
In order to send a message to everybody except Jack use
[{If user='!Jack'
%%warning
Jack's surprise birthday party at eleven!
%%}]
Note that you can't use "!Jack|!Jill", because for Jack, !Jill matches;
and for Jill, !Jack matches. These are not regular expressions (though
they might become so in the future).
To check for page content, use
[{If page='TestPage' contains='xyzzy'
Page contains the text "xyzzy"}]
The difference between "contains" and "is" is that "is" is always an exact match,
whereas "contains" just checks if a pattern is available.
To check for page existence, use
[{If page='TestPage' exists='true'
Page "TestPage" exists.}]
With the same mechanism, it's also possible to test for the existence
of a variable - just use "var" instead of "page".
Another caveat is that the plugin body content is not counted
towards ReferenceManager links. So any links do not appear on any reference
lists. Depending on your position, this may be a good or a bad
thing.
Calling Externally
The functional, decision-making part of this plugin may be called from
other code (e.g., other plugins) since it is available as a static method
IfPlugin.ifInclude(WikiContext,Map) . Note that the plugin body may contain
references to other plugins.
author: Janne Jalkanen author: Murray Altheim since: 2.6 |