| ||||||||
Added: | ||||||||
> > | ||||||||
TWiki Variables | ||||||||
Changed: | ||||||||
< < | Special text strings expand on the fly to display user data or system info | |||||||
> > | Special text strings expand on the fly to display dynamic content, such as user data or system info | |||||||
TWikiVariables are text strings - %VARIABLE% or %VARIABLE{ parameter="value" }% - that expand into content whenever a topic is rendered for viewing. There are two types of variables: | ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
Added: | ||||||||
> > |
| |||||||
Changed: | ||||||||
< < | ||||||||
> > | See list of all TWiki Variables currently defined in this TWiki installation. | |||||||
Added: | ||||||||
> > |
TWiki Variables Wizard
Select a category and a variable
![]()
Build Your Variable:
<----><----> | |||||||
Using VariablesTo use a variable type its name. For example,
| ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
Note:
| ||||||||
Changed: | ||||||||
< < | Variable Names | |||||||
> > | Variable Names | |||||||
Changed: | ||||||||
< < | Variable names must start with a letter. The following characters can be letters, numbers and the underscore '_'. You can use both upper-case and lower-case letters and you can mix the characteres. E.g. %MYVAR% , %MyVar% , %My2ndVar% , and %My_Var% are all valid variable names. Variables are case sensitive. %MyVAR% and %MYVAR% are not the same variable. | |||||||
> > | Variable names must start with a letter, optionally followed by letters, numbers and underscore '_' characters. Both upper-case and lower-case characters can be used, %MYVAR% , %MyVar% , %My2ndVar% , and %My_Var% are valid names. Variables are case sensitive, e.g. %MyVAR% and %MYVAR% are not the same. | |||||||
Changed: | ||||||||
< < | By convention all settings, predefined variables and variables used by plugins are always UPPER-CASE. | |||||||
> > | By convention all settings, predefined variables and variables handled by extensions are always UPPER-CASE. | |||||||
Preferences VariablesUnlike predefined variables, preferences variables can be defined by the user in various places.Setting Preferences VariablesYou can set variables in all the following places:
| ||||||||
Added: | ||||||||
> > |
| |||||||
preview will show the wrong thing, and you must save the topic to see it correctly.
The syntax for setting variables is the same anywhere in TWiki (on its own TWiki bullet line, including nested bullets): [multiple of 3 spaces] * [space] Set [space] VARIABLENAME [space] = [space] value
Examples:
* Set VARIABLENAME1 = value * Set VARIABLENAME2 = valueSpaces between the = sign and the value will be ignored. You can split a value over several lines by indenting following lines with spaces - as long as you don't try to use * as the first character on the following line. Example: * Set VARIABLENAME = value starts here and continues hereWhatever you include in your variable will be expanded on display, exactly as if it had been entered directly. Example: Create a custom logo variable
* Set MYLOGO = %PUBURL%/%WEB%/LogoTopic/mylogo.gifYou can also set preferences variables on a topic by clicking the link Edit topic preference settings under More topic actions . Use the same * Set VARIABLENAME = value syntax. Preferences set in this manner are not visible in the topic text, but take effect nevertheless.
Parameterized Variables (Macros)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:* Set EXAMPLE = Example variable using %DEFAULT%, %PARAM1% and %PARAM2% * Set DEMO = Demo using %DEFAULT{ default="(undefined)" }%, %PARAM1{ default="(undefined)" }% and %PARAM2{ default="(undefined)" }%A special %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:
* %EXAMPLE{ "foo" PARAM1="bar" PARAM2="baz" }% * %DEMO{ "demo" PARAM2="parameter 2" }% -- note that PARAM1 is missingwhich resolves to:
ExampleDefine variables:* Set DRINK = red wine * Set FAVORITE = My %DEFAULT{default="favorite"}% dish is %DISH{default="steak"}%, my %DEFAULT{default="favorite"}% drink is %DRINK%. ![]() %DISH{default="steak"}% ), or as a preferences setting (Set DRINK = ... ).
Use Variables:
%FAVORITE{ DISH="Sushi" DRINK="Sake" }%Returns: My favorite dish is Sushi, my favorite drink is Sake. %FAVORITE{}%Returns: My favorite dish is steak, my favorite drink is red wine. %FAVORITE{ "preferred" }%Returns: My preferred dish is steak, my preferred drink is red wine. Access Control VariablesThese are special types of preferences variables to control access to content. TWikiAccessControl explains these security settings in detail.Local values for variablesCertain topics (a users home topic, web site and default preferences topics) have a problem; variables defined in those topics can have two meanings. For example, consider a user topic. A user may want to use a double-height edit box when they are editing their home topic - but only when editing their home topic. The rest of the time, they want to have a normal edit box. This separation is achieved usingLocal in place of Set in the variable definition. For example, if the user sets the following in their home topic:
* Set EDITBOXHEIGHT = 10 * Local EDITBOXHEIGHT = 20Then when they are editing any other topic, they will get a 10 high edit box. However when they are editing their home topic, they will get a 20 high edit box. Local can be used wherever a preference needs to take a different value depending on where the current operation is being performed.
Use this powerful feature with great care! %ALLVARIABLES% can be used to get a listing of the values of all variables in their evaluation order, so you can see variable scope if you get confused.
Frequently Used Preferences VariablesThe following preferences variables are frequently used. They are defined in TWikiPreferences#Miscellaneous_Settings:
Predefined VariablesMost predefined variables return values that were either set in the configuration when TWiki was installed, or taken from server info (such as current username, or date and time). Some, like%SEARCH% , are powerful and general tools. | ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
Added: | ||||||||
> > |
| |||||||
Changed: | ||||||||
< < | Search predefined variables | |||||||
> > | ||||||||
Added: | ||||||||
> > | Search or List Variables by Category | |||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
Deleted: | ||||||||
< < | ||||||||
Changed: | ||||||||
< < | List of all predefined variables | |||||||
> > | All TWiki Variables: | |||||||
Deleted: | ||||||||
< < | This TWiki: - TWiki-6.1.0, Mon, 16 Jul 2018, build 30610 | |||||||
%SEARCH{ | ||||||||
Changed: | ||||||||
< < | "^Var[A-Z_0-9]+$" casesensitive="on" type="regex" scope="topic" format="$percntINCLUDE{$web.$topic}$percnt" nonoise="on" | |||||||
> > | "^Var[A-Z_0-9]+$" casesensitive="on" type="regex" scope="topic" format="$percntCALCULATE{$SUBSTRING($topic, 4, 999)}$percnt" separator=", " | |||||||
Added: | ||||||||
> > | nonoise="on" footer="total $ntopics variables" | |||||||
}% | ||||||||
Added: | ||||||||
> > |
Documenting TWiki VariablesThis section is for people documenting TWiki variables of the TWiki core and TWiki extensions. Each variable is documented in a topic namedVar<name> in the TWiki web. For example, a %LIGHTSABER% variable has a documentation topic called VarLIGHTSABER. The topic is expected to have a specific format so that reports in this TWikiVariables topic, in TWikiVariablesSearch and in category topics work as expected.
Basic structure of a variable documentation topic:
VarLIGHTSABER topic:
#VarLIGHTSABER ---+++ LIGHTSABER -- laser sword to fend of unethical competition * The =%<nop>LIGHTSABER{}%= variable is handled by the LightsaberPlugin. * Syntax: =%<nop>LIGHTSABER{ _parameters_ }%= * Parameters: | *Parameter* | *Description* | *Default* | | =color="..."= | Color: =red=, =glue=, =green= | =white= | | =sound="..."= | Sound: =none=, =standard=, =loud= | =none= | * Example: =%<nop>LIGHTSABER{ color="red" }%= shows a red Lightsaber * Expands to: =%LIGHTSABER{ color="red" }%= * Note: The Lightsaber is a fictional weapon in the Star Wars universe, a "laser sword." * Category: FormattingAndRenderingVariables, UIAndVisualizationVariables * Related: [[%IF{"'%INCLUDINGTOPIC%'='TWikiVariables'" then="#"}%VarPLASMA][PLASMA]], LightsaberPlugin | |||||||
Changed: | ||||||||
< < | Related Topics: UserDocumentationCategory, TWikiVariablesSearch, TWikiVariablesQuickStart, ParameterizedVariables | |||||||
> > | Related Topics: UserDocumentationCategory, TWikiVariablesWizard, TWikiVariablesSearch, TWikiVariablesQuickStart, ParameterizedVariables | |||||||