---+ Parameterized Variables (Macros) %STARTINCLUDE% It is possible to pass parameters to TWiki variables. This is called a macro in a programming language. To define a parameterized variable, set a variable that contains other variables, such as: <verbatim> * Set EXAMPLE = Example variable using %DEFAULT%, %PARAM1% and %PARAM2% * Set DEMO = Demo using %DEFAULT{ default="(undefined)" }%, %PARAM1{ default="(undefined)" }% and %PARAM2{ default="(undefined)" }% </verbatim> A special =%<nop>DEFAULT%= variable denotes the default (nameless) parameter of the calling variable. Variables optionally may list a =default="..."= parameter that gets used in case the calling variable does not specify that parameter. To use a parameterized variable (or call a macro), add parameters within the curly brackets, such as: <verbatim> * %EXAMPLE{ "foo" PARAM1="bar" PARAM2="baz" }% * %DEMO{ "demo" PARAM2="parameter 2" }% -- note that PARAM1 is missing </verbatim> which resolves to: * %EXAMPLE{ "foo" PARAM1="bar" PARAM2="baz" }% * %DEMO{ "demo" PARAM2="parameter 2" }% -- note that PARAM1 is missing Parameters in the variable definition are expanded using the following sequence: 1. Parameter from variable call. In above example, =%<nop>PARAM1%= gets expanded to =bar=. 2. Session variable and preferences settings ---++!! Example *Define variables:* <verbatim> * Set DRINK = red wine * Set FAVORITE = My %DEFAULT{default="favorite"}% dish is %DISH{default="steak"}%, my %DEFAULT{default="favorite"}% drink is %DRINK%. </verbatim> %T% The default can be defined with a default parameter (=%<nop>DISH{default="steak"}%=), or as a preferences setting (=Set DRINK = ...=). *Use Variables:* <verbatim> %FAVORITE{ DISH="Sushi" DRINK="Sake" }% </verbatim> Returns: %BR% %FAVORITE{ DISH="Sushi" DRINK="Sake" }% <verbatim> %FAVORITE{}% </verbatim> Returns: %BR% %FAVORITE{}% <verbatim> %FAVORITE{ "preferred" }% </verbatim> Returns: %BR% %FAVORITE{ "preferred" }% %STOPINCLUDE% __Related:__ TWikiVariables, IncludeTopicsAndWebPages
This topic: TWiki
>
WebHome
>
TWikiVariables
>
ParameterizedVariables
Topic revision: r1 - 2011-03-27 - TWikiContributor
Copyright © 1999-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback
Note:
Please contribute updates to this topic on TWiki.org at
TWiki:TWiki.ParameterizedVariables
.