TWiki Variables » Search » Category: Development

Variables in this category:

ACTIVATEDPLUGINS -- list of currently activated plugins

ADDTOHEAD -- add HTML to the HTML head section of the current page

  • Useful for TWiki applications to add custom CSS or JavaScript to the HTML head section of a topic. Supplied TWiki variables will be expanded. %ADDTOHEAD{}% expands in-place to an empty string, unless there is an error in which case the variable expands to an error string.
  • Syntax: %ADDTOHEAD{ "..." text="..." }%
  • Supported parameters:
    Parameter: Description: Comment:
    "..." ID of the head block, such as "MY_CSS" Optional but recommended
    text="..." HTML text to add to the head section Mutually exclusive with topic=""
    topic="Web.TopicName" Name of topic that contains the full HTML text to add to the head section, such as topic="Main.MyCssTopic" Mutually exclusive with text=""
    section="name" If topic parameter is used, includes only the specified named section, as defined in the topic by the STARTSECTION and ENDSECTION variables. Nothing is shown if the named section does not exists. section="" is equivalent to not specifying a section Optional
    requires="..., ..." Comma-separated list of other IDs this one depends on Optional
  • Category: ApplicationsAndComponentsVariables, DevelopmentVariables
  • Example: %ADDTOHEAD{ "MYBOX_CSS" text="<style type=\"text/css\"> .myBox { height: 22px; background-color: #AFB3C5; } </style>" }% (this topic)

CALC{"formula"} -- add spreadsheet calculations to tables

  • The %CALC{formula}% variable is handled by the SpreadSheetPlugin. Over 100 functions are available, such as $ABS(), $EXACT(), $EXISTS(), $GET()/$SET(), $IF(), $LOG(), $LOWER(), $PERCENTILE(), $TIME(), $VALUE().
  • Syntax: %CALC{formula}%
  • Examples:
    • %CALC{$SUM($ABOVE())}% returns the sum of all cells above the current cell
    • %CALC{$EXISTS(Web.SomeTopic)}% returns 1 if the topic exists
    • %CALC{$UPPER(Collaboration)}% returns COLLABORATION
  • Note: The CALC variable is handled with delay compared to other TWiki variables. You may get unexpected results if you nest CALC inside other variables (such as %INCLUDE{%CALC{...}%}%) because it does not get evaluated inside-out & left-to-right like ordinary TWiki variables. Use CALCULATE if you nest variables.
  • Category: DevelopmentVariables, TablesAndSpreadsheetsVariables
  • Related: CALCULATE, IF, IfStatements, SpreadSheetPlugin (this topic)

CALCULATE{"formula"} -- handle spreadsheet calculations outside tables

  • The %CALCULATE{formula}% variable is handled by the SpreadSheetPlugin. Over 100 functions are available, such as $ABS(), $EXACT(), $EXISTS(), $GET()/$SET(), $IF(), $LOG(), $LOWER(), $PERCENTILE(), $TIME(), $VALUE().
  • Syntax: %CALC{formula}%
  • Examples:
    • %CALC{$EXISTS(Web.SomeTopic)}% returns 1 if the topic exists
    • %CALC{$UPPER(Collaboration)}% returns COLLABORATION
  • Note: The CALCULATE variable is handled inside-out & left-to-right like ordinary TWiki variables, but it does not support functions that refer to table cells, such as $LEFT() or $T(). Use CALC instead.
  • Category: DevelopmentVariables, TablesAndSpreadsheetsVariables
  • Related: CALC, IF, IfStatements, SpreadSheetPlugin (this topic)

DASHBOARD -- build a dashboard with banner and boxes

EDITFORM{} -- render a TWiki form for edit

  • Show an HTML form to update the TWiki form data of a topic.
  • Syntax to update a TWiki form: %EDITFORM{topic="..." formfields="..."}%
  • Supported parameters:
    Parameter: Description: Default:
    "..." or
    topic="..."
    Name of topic containing the TWiki form, such as "Bug1234". Specify topic name or Web.TopicName Either "...", topic=""
    or formtemplate=""
    is required
    formtemplate="..." Name of form template topic, such as "BugForm". Specify topic name or Web.TopicName
    elements="..." Elements of edit form: formstart is the HTML form tag, header the form header, formfields the form fields, submit the submit button, hiddenfields are hidden input fields, formend is the HTML form end tag. "formstart, header,
      formfields, submit, hiddenfields, formend"
    header="..." Form header, typically containing the form name. If "on", the default format is used:
    "|  *[[$formweb.$formtopic][$formtopic]]*  ||"
    Supported variables:
    $formweb - name of web containing the form definition.
    $formtopic - name of topic containing the form definition.
    "on"
    formfields="..., ..." Specify names of TWiki form fields to use, in sequence. The all token shows all remaining fields. "all"
    format="..." Format of one form field. Supported variables:
    $inputfield - rendered form input field.
    $title - raw field name (includes space and other special characters).
    $name - field name (sanitized title).
    $size - size of field or selector.
    $value - initial value, or select options.
    $tooltip - tooltip message.
    $attributes - type attributes, such as H for hidden, M for mandatory.
    $extra - extra information, such as * for mandatory field.
    $formweb - name of web containing the form definition.
    $formtopic - name of topic containing the form definition.
    See details in TWikiForms.
    "| $title: $extra | $inputfield |"
    hiddenfields="..., ..." List of form field names to use as hidden fields. For each name listed in hiddenfields="", add a name="value" parameter to specify the value of the hidden input field. If you omit the name="value" parameter for a hidden input field, it will be excluded as a form field, even with a formfields="all". ""
    submit="..." Format of submit button row. Line separator. Variable $submit expands to submit input field with label "Save", $submit(Save) to a submit input field with specific label. "| | $submit |"
    onsubmit="..." Execute JavaScript when the form is submitted, optional. ""
    action="..." Specify a TWiki script (view, edit, save, ...), or the full URL of an action to take on form submit. "save"
    method="..." HTML form action method. "post" for save
    action, else "get"
    separator="..." Line separator. Variable $br expands to <br /> tag, and $n to a newline. "$n"
    default="..." Text shown when no form or form fields are found ""
  • Example: %EDITFORM{ topic="%INCLUDINGTOPIC%" }% - show HTML form to update form data of the including topic (typically used in an included header)
  • Example: Custom form in an included header to update some form field values of the base topic, including one hidden field:
    %EDITFORM{
      topic="%BASEWEB%.%BASETOPIC%"
      formfields="Priority, Status"
      hiddenfields="Updated"
      Updated="%SERVERTIME{$year-$mo-$day}%"
      submit=" | | $submit(Update) |"
    }%
  • Category: DatabaseAndFormsVariables, DevelopmentVariables, EditingAndContentUpdateVariables
  • Related: EDITFORMFIELD, ENCODE, ENTITY, FORM, FORMFIELD, META, METASEARCH, SEARCH, TWikiForms, FormattedSearch, QuerySearch, SearchHelp, TWikiScripts, TWikiTemplates (this topic)

EDITFORMFIELD{"fieldname" form=""} -- render an input field specified in a form template topic

  • Use this to create HTML forms that update TWikiForms, such as a custom "create new topic" form, or a topic header that allows users to change some form values at the top of the page. A valid form is composed of a start form type, various form fields, a submit type, and an end form type.
  • Syntax:
    • %EDITFORMFIELD{"fieldname" form="...Form"}% - create form field defined in a TWiki Form template
    • %EDITFORMFIELD{"fieldname" topic="..."}% - create form field based on a topic that has a TWiki Form & initialize its value
    • %EDITFORMFIELD{"fieldname" type="..."}% - create an HTML input field
  • Supported parameters:
    Parameter: Description: Default:
    "fieldname" The name of a TWiki form field or HTML form field. Required
    form="..." Name of form template topic, such as "BugForm". Specify topic name or Web.TopicName Either form or topic
    is required unless
    type is specified
    topic="..." Name of topic containing form, such as "Bug1234". Specify topic name or Web.TopicName
    format="..." Format string. Supported variables:
    $inputfield - rendered form input field.
    $title - raw field name (includes space and other special characters).
    $name - field name (sanitized title).
    $size - size of field or selector.
    $value - initial value, or select options.
    $tooltip - tooltip message.
    $attributes - type attributes, such as H for hidden, M for mandatory.
    $extra - extra information, such as * for mandatory field.
    See details in TWikiForms. This parameter is ignored if type="..." is specified.
    "$inputfield"
    value="..." Initial value of input field. If omitted and if topic="..." is specified, the value is taken from the named form field. ""
    type="start" Special case: Start an HTML form. Parameters:
    "form" type="start" action="save" topic="..." method="" onsubmit="" onreset=""
    action: Specify a TWiki script (view, edit, save, ...), or a full action URL, default "view".
    topic: Specify topic name or Web.TopicName, default current topic; ignored if full action URL is provided.
    method: HTML form action method, default "post" for save action, else "get".
    onsubmit: Execute JavaScript when the form is submitted, optional.
    onreset: Execute JavaScript when the reset button is clicked, optional.
    ""
    type="end" Special case: End an HTML form. Parameters:
    "form" type="end"
    ""
    type="..." Special case: Create an input field regardless of the type defined in the TWikiForm. Used mainly for hidden fields and submit button. The nameless parameter is the field name. Supported types:
    "fieldname" type="hidden" value="..." - hidden input field.
    "fieldname" type="submit" value="..." - submit button, value is button label.
    "fieldname" type="button" value="..." onclick="..." - regular button, value is button label.
    "fieldname" type="text" value="..." size="80" - text input field.
    "fieldname" type="textarea" value="..." size="80x6" - multi line text area field, size denotes columns x rows.
    "fieldname" type="checkbox" value="..." text="..." - checkbox, text is display text.
    "fieldname" type="radio" value="..." text="..." - radio button, text is display text.
    • In addition, any valid XHML and HTML5 input type is supported, such as type="date", type="file", type="image".
    Additional type-specific parameters can be supplied, such as alt="...", checked="checked", class="...", max="...", min="...", placeholder="...", src="...", style="...", width="...". Consult HTML documentation.
    ""
  • Example: %EDITFORMFIELD{ "ReleaseType" form="PackageForm" value="Beta-1" }%
  • Example: Custom form in an included header to update some values of the base topic
    %EDITFORMFIELD{ "form" type="start" action="save" topic="%BASEWEB%.%BASETOPIC%" method="post" }%
    | Priority: | %EDITFORMFIELD{ "Priority" topic="%BASETOPIC%" }% |
    | Status:   | %EDITFORMFIELD{ "Status"   topic="%BASETOPIC%" }% |
    |  | %EDITFORMFIELD{ "form" type="submit" value="Update" }% |
    %EDITFORMFIELD{ "Updated" type="hidden" value="%SERVERTIME{$year-$mo-$day}%" }%
    %EDITFORMFIELD{ "form" type="end" }%
  • Category: DatabaseAndFormsVariables, DevelopmentVariables, EditingAndContentUpdateVariables
  • Related: EDITFORM, EDITTABLE, FORM, FORMFIELD, METASEARCH, SEARCH, TWikiForms, FormattedSearch, QuerySearch, SearchHelp, TWikiScripts, TWikiTemplates (this topic)

ENCODE{string} -- encode a string to URL entities, HTML entities, CSV format, and more

  • Encode "special" characters in a string to HTML numeric entities, URL entities. Also escapes special characters for CSV use and more.
  • Encoded characters:
    • all non-printable ASCII characters below space, except newline ("\n") and linefeed ("\r")
    • HTML special characters "<", ">", "&", single quote (') and double quote (")
    • TWiki special characters "%", "[", "]", "@", "_", "*", "=" and "|"
  • Syntax: %ENCODE{"string"}%
  • Supported parameters:
    Parameter: Description: Default:
    "string" String to encode required (can be empty)
    type="url" Encode special characters for URL parameter use, like a double quote into %22 (this is the default)
    type="quotes" Escape double quotes with backslashes (\"), does not change other characters. This type does not protect against cross-site scripting. type="url"
    type="moderate" Encode special characters into HTML entities for moderate cross-site scripting protection: "<", ">", single quote (') and double quote (") are encoded. Useful to allow TWiki variables in comment boxes. type="url"
    type="safe" Encode special characters into HTML entities for cross-site scripting protection: "<", ">", "%", single quote (') and double quote (") are encoded. type="url"
    type="entity" Encode special characters into HTML entities, like a double quote into &#034;. Does not encode newline (\n) or linefeed (\r). type="url"
    type="entity"
    extra=" $n$r"
    For type="entity" only, use the extra parameter to encode additional characters to HTML numeric entities. Formatting tokens can be used, such as "$n" for newline. Note that type="entity" extra=" $n$r" is equivalent to type="html". type="url"
    extra=""
    type="html" Encode special characters into HTML entities. In addition to type="entity", it also encodes space, \n and \r. Useful to encode text properly in HTML input fields. See equivalent ENTITY. type="url"
    type="json" Escape double quotes and backslashes with backslashes (\" and \\, respectively), escape non-printable characters with hex code \u0000 ... \u001F, does not change other characters. Use this to properly escape text for a JSON string. Example result: This is a string with \"quoted\" and \\backslashed\\ text. type="url"
    type="csv" Escape single quotes and double quotes by repeating them, other characters do not change. Use this to properly escape fields in CSV reports that output comma-separated values, such as "field 1","field 2 with ''single'' and ""double"" quotes". type="url"
    type="search" Special encoding used for SEARCH: Substitute % characters into non-printable characters, so that TWikiVariables are no longer expanded. Also escapes quotes. Used to feed a search string from a URLPARAM into SEARCH without expanding any variables, such as when searching for %BR%. type="url"
    newline="..." Replace a newline with the specified value before encoding.
    Please note that newline="<br/>" does not bring <br/> to the output because < and > are encoded (except with the quotes and csv types). To have <br/> in the output, you need to specify newline="$br". However, newline="$br" does not work in combination with type="url" (the defautl type). This shouldn't be a problem because it's very rare to need to have <br/> encoded in a URL.
    In addition to $br, $n has a special meaning in a newline parameter value - $n results in a newline in the output.
    This parameter is expected to be used in combination with the moderate, safe, entity, or html type. With the other types, it causes unuseful results.
     
  • Examples:
    • %ENCODE{"spaced name"}% expands to spaced%20name
    • %ENCODE{"spaced name" type="entity" extra=" "}% expands to spaced&#32;name
  • Notes:
    • Values of HTML input fields should be encoded as "html". A shorter %ENTITY{any text}% can be used instead of the more verbose %ENCODE{ "any text" type="html" }%.
      Example: <input type="text" name="address" value="%ENTITY{any text}%" />
    • Double quotes in strings must be escaped when passed into other TWiki variables.
      Example: %SET{ "lunch" value="%ENCODE{ "string with "quotes"" type="quotes" }%" remember="1" }%
    • Use type="moderate", type="safe", type="entity" or type="html" to protect user input from URL parameters and external sources against cross-site scripting (XSS). type="html" is the safest mode, but some TWiki applications might not work. type="safe" provides a safe middle ground, type="moderate" provides only moderate cross-site scripting protection.
  • Category: ApplicationsAndComponentsVariables, DevelopmentVariables, ExportAndPublishingVariables
  • Related: ENTITY, FORMFIELD, QUERYPARAMS, URLPARAM (this topic)

ENDSECTION{"name"} -- marks the end of a named section within a topic

  • Syntax: %ENDSECTION{"name"}%
  • Syntax: %ENDSECTION{type="include"}%
  • Syntax: %ENDSECTION{type="templateonly"}%
  • Syntax: %ENDSECTION{type="expandvariables"}%
  • Supported parameter:
    Parameter: Description:
    "name" Name of the section.
    type="..." Type of the section being terminated; supported types "section", "include", "templateonly", "expandvariables"
  • If the STARTSECTION is named, the corresponding ENDSECTION must also be named with the same name. If the STARTSECTION specifies a type, then the corresponding ENDSECTION must also specify the same type. If the section is unnamed, ENDSECTION will match with the nearest unnamed %STARTSECTION% of the same type above it.
  • Category: DevelopmentVariables, WorkflowAndAutomationVariables
  • Related: ENDSECTION, INCLUDE, STARTINCLUDE, STARTSECTION, STOPINCLUDE (this topic)

ENTITY{string} -- encode a string to HTML entities

  • Encode "special" characters to HTML entities. Useful to encode text properly for HTML input fields.
  • Encoded characters:
    • all non-printable ASCII characters below space, including newline ("\n") and linefeed ("\r")
    • Space
    • HTML special characters "<", ">", "&", single quote (') and double quote (")
    • TWiki special characters "%", "[", "]", "@", "_", "*", "=" and "|"
  • Syntax: %ENTITY{string}%
  • Example: %ENTITY{text with "quotes" and
    newline}%
    expands to text&#32;with&#32;&#34;quotes&#34;&#32;and&#10;newline
  • Notes:
    • To protect against cross-site scripting (XSS), always entity encode text intended for HTML input fields. This is especially true if text is received dynamically via URLPARAM or the like.
      Example: <input type="text" name="address" value="%ENTITY{any text}%" />
    • %ENTITY{string}% is roughly equivalent to %ENCODE{ "string" type="html" }%, but the latter cannot handle strings that have double quotes embedded in it.
  • Category: DevelopmentVariables, FormattingAndRenderingVariables, ExportAndPublishingVariables
  • Related: ENCODE, FORMFIELD, QUERYPARAMS, URLPARAM (this topic)

EXAMPLEVAR -- example variable

  • The %EXAMPLEVAR{}% variable is handled by the EmptyPlugin
  • Syntax: %EXAMPLEVAR{"text" format="..."}%
  • Parameter text="..." - example text.
  • Parameter format="..." - format of report.
  • Example: %EXAMPLEVAR{"hello" format="| $topic: $summary |"}%
  • Category: DevelopmentVariables
  • Related: EmptyPlugin (this topic)

FORM{} -- render a TWiki form for view

  • Show a table containing data of a TWiki form attached to a topic
  • Syntax: %FORM{topic="..." formfields="..." ...}%
  • Supported parameters:
    Parameter: Description: Default:
    "..." or
    topic="..."
    Name of topic containing the TWiki form, such as "Bug1234". Specify topic name or Web.TopicName Current topic
    rev="..." Get the form from the specified topic revision, range "1" to top revision of topic. "0" is equivalent to the top revision The rev URL parameter value if present, else the top revision
    formfields="..., ..." Specify names of TWiki form fields to show, in sequence. The all token shows all remaining fields. "all"
    header="..." Form header, typically containing the form name. If "on", the default format "|  *[[$formweb.$formtopic][$formtopic]]*  ||" is used. If "none", the header is suppressed. Supported variables:
    $formweb - name of web containing the form definition.
    $formtopic - name of topic containing the form definition.
    "on"
    format="..." Format of one form field. Supported variables:
    $title - raw field name (includes space and other special characters).
    $name - field name (sanitized title).
    $type - form field type.
    $size - size of field or selector.
    $value - form field value.
    $value(20, -<br />) - value hyphenated every 20 characters using separator -<br />.
    $value(30, ...) - value shortened to 30 characters.
    $length - length of form field value.
    $tooltip - tooltip message.
    $attributes - type attributes, such as H for hidden, M for mandatory.
    $formweb - name of web containing the form definition.
    $formtopic - name of topic containing the form definition.
    See details in TWikiForms.
    "| $title: | $value |"
    separator="..." Line separator. Variable $br expands to <br /> tag, and $n to a newline. "$n"
    default="..." Text shown when no form or form fields are found ""
    newline="$br" Convert newlines in textarea to other delimiters. Variable $br expands to <br /> tag, and $n to a newline. Other text is encoded based on encode parameter. "$br" if format is a TWiki table, else "\n"
    encode="html" Encode special characters in form field value into HTML entities. Additional encodings available: encode="quote", encode="moderate", encode="safe", encode="entity" and encode="url". See ENCODE for details. "" (no encoding)
    showhidden="..." Set to "on" to show also hidden form fields. ""
  • Examples:
    • %FORM{topic="%INCLUDINGTOPIC%"}% - show form data of the including topic (typically used in an included header)
    • %FORM{topic="Projects.SushiProject" formfields="Title, Status, Deadline" header="none"}% - show a subset of form fields
    • %FORM{format="$name" header="none" separator=", "}% - get all visible form field names as a list
  • Category: DatabaseAndFormsVariables, DevelopmentVariables, FormattingAndRenderingVariables
  • Related: EDITFORM, EDITFORMFIELD, ENCODE, ENTITY, FORMFIELD, META, METASEARCH, SEARCH, TWikiForms, FormattedSearch, QuerySearch, SearchHelp (this topic)

FORMFIELD{"fieldname"} -- render a field in the form attached to some topic

  • Syntax: %FORMFIELD{"fieldname"}%
  • Supported parameters:
    Parameter: Description: Default:
    "fieldname" The name of a TWiki form field required
    topic="..." Topic where form data is located. May be of the form Web.TopicName Current topic
    rev="..." Get the form field value from the specified topic revision, range "1" to top revision of topic. "0" is equivalent to the top revision The rev URL parameter value if present, otherwise the top revision
    format="..." Format string. Supported variables:
    $value - form field value
    $value(20, -<br />) - value hyphenated every 20 characters using separator -<br />
    $value(30, ...) - value shortened to 30 characters
    $length - length of value (can be used to test if value is set)
    $title - raw field name (includes space and other special characters)
    $name - field name (sanitized title)
    $attributes - form field attributes
    $formtopic - name of form definition topic
    "$value"
    default="..." Text shown when no value is defined for the field ""
    alttext="..." Text shown when field is not found in the form ""
    newline="$br" Convert newlines in textarea to other delimiters. Variable $br expands to <br /> tag, and $n to a newline. Other text is encoded based on encode parameter. no conversion
    encode="html" Encode special characters into HTML entities. If a FORMFIELD is passed into an HTML form field it should be encoded as "html". Additional encodings available: encode="quote", encode="moderate", encode="safe", encode="entity", encode="url" and encode="csv". See ENCODE for details. "" (no encoding)
  • Example: %FORMFIELD{ "ProjectName" topic="Projects.SushiProject" default="(not set)" alttext="ProjectName field not found" }%
  • Example: %FORMFIELD{ "Title" topic="%INCLUDINGTOPIC%" }%
    • Note: Specify topic="%INCLUDINGTOPIC%" if you have a base topic that includes a report topic, and in the report topic you want to reference a field of the base topic
  • Example: %FORMFIELD{ "LastName" topic="%USERSWEB%.%WIKINAME%" encode="safe" }%
    • Note: Returns the "LastName" field from your profile page TWikiGuest
    • TIP Tip: Use encode="safe" to guard against Cross-Site Scripting (XSS) attacks
  • Example: <input type="text" name="Address" value="%FORMFIELD{ "Address" encode="html" }%" />
    • Note: It is easier to use EDITFORMFIELD for custom input fields
  • Category: DatabaseAndFormsVariables, DevelopmentVariables, FormattingAndRenderingVariables
  • Related: EDITFORM, EDITFORMFIELD, ENCODE, ENTITY, FORM, META, METASEARCH, SEARCH, TWikiForms, FormattedSearch, QuerySearch, SearchHelp (this topic)

GET{"name"} -- get a variable

  • Get the value of a named variable, previously set with %SET{}%. The %SET{}% and %GET{}% variables are handled by the SetGetPlugin.
  • Syntax: %GET{ "name" default="..." }%
  • Parameters:
    Parameter Description Default
    "name" Name of variable, such as menu. May optionally contain a JSON path, such as menu.File.Open. (required)
    format="..." Format with supported variables:
    $name for variable name
    $value for variable value
    $isdefined expanding to 1 or 0 depending if variable is defined or not
    $isset expanding to 1 or 0 depending if variable is logically true or false
    $ispersistent expanding to 1 or 0 depending if variable is persistent or not
    • all FormatTokens such as $dollar, $n, $percnt.
    "$value"
    default="..." Text shown if variable is not defined, e.g. not found. This parameter overrides the format parameter. "" (empty string)
    store="..." Specify a store name that holds the persistent variable. This assumes the variable was previously set with the same store name. ""
  • Example: %GET{"lunch"}% returns Sushi if the following has been previously set:
    %SET{ "lunch" value="Sushi" }% - see more examples
  • JSON Syntax: %GET{ name }% - see description.
  • Example to set a JSON object and to get a JSON object with a JSON path:
    • %SET{ menu = { "File": { "New": [ "new", "F" ], "Open": [ "open", "F" ] }, "Edit": { "Copy": [ "cpy", "F" ], "Paste": [ "pst", "F" ] } } }% - set a JSON object
    • %GET{ menu.File.Open }% - returns: ["open","F"]
  • Category: ApplicationsAndComponentsVariables, DevelopmentVariables
  • Related: IF, SET, SETGETDUMP, SetGetPlugin, SpreadSheetPlugin (this topic)

IF{"condition" ...} -- simple conditionals

INCLUDE{"page"} -- include other topic, attachment, or web page

  • Merges the content of a specified page into the current one before rendering.
  • Syntax: %INCLUDE{"page" ...}%
  • Supported parameters:
    Parameter: Description: Default:
    "SomeTopic" The name of a topic located in the current web, i.e. %INCLUDE{"WebNotify"}%  
    "Web.Topic" A topic in another web, i.e. %INCLUDE{"TWiki.SiteMap"}%  
    "http://..." A full qualified URL, i.e. %INCLUDE{"http://twiki.org:80/index.html"}%. Supported content types are text/html and text/plain by default. See allowanytype.
    IDEA! if the URL resolves to an attachment file on the server this will automatically translate to a server-side include.
     
    attachment="filename.ext" Include the specified attachment instead of topic text. The attachment content is subject to processing just like when topic text is included. For example, text up to %STARTINCLUDE% is excluded. When including an attachment, you can do without topic specification - %INCLUDE{attachment="filename.ext"}% works, which results in including the attachment of the same topic.  
    allowanytype="on" Suppress the content type checking in including the web page specified by a URL. disabled
    charset="CHARSET" Specify the charset of the included content so that a proper charset conversion happens when it's different from the site charset. Needless to say, this works for a TWiki topic, a topic attachment, and a content specified with a URL. This parameter overrides otherwise specified or implied charset. none
    pattern="..." Include a subset of a topic or a web page. Specify a RegularExpression that scans from start ('^') to end and contains the text you want to keep in parenthesis, e.g., pattern="^.*?(from here.*?to here).*". IncludeTopicsAndWebPages has more. none
    headingoffset="2" Adjust the level of headings in the included topic. A "2" or "+2" increases the level by two, e.g. a ---+ H1 turns into a ---+++ H3. Positive and negative values are supported. Adjusted min and max levels are H1 and H6, respectively. no adjustment
    hidetoc="on" Remove %TOC% in included content. Useful to show table of contents in individual topics, while suppressing them if included in a big master document. TOC_HIDE_IF_
    INCLUDED
    setting
    rev="2" Include a previous topic revision; N/A for URLs top revision
    raw="on" (for HTTP inclusion) When a page is included via HTTP, normally TWiki will process it, doing the following: 1) Alter relative links to point back to originating host, 2) Remove some basic HTML tags (html, head, body, script) and finally 3) Remove newlines from HTML tags spanning multiple lines. If you prefer to include exactly what is in the source of the originating page set this to on. raw="on" is short for disableremoveheaders="on", disableremovescript="on", disableremovebody="on", disablecompresstags="on" and disablerewriteurls="on". disabled
    raw="on" (for topic or attachment inclusion) When a topic is included, normally TWiki variables in the included topic are expanded in the context of the included topic. If raw="on" is specified, that variable expansion does not happen. You may wonder what's that for and what are the implications, which are found out on IncludeTopicRaw.
    Because of the "in the raw" nature of the parameter, if it's specified, parameters such as encode, headingoffset, hidetoc, newline, nofinalnewline, and section are ignored.
    disabled
    literal="on" While using the raw option will indeed include the raw content, the included content will still be processed and rendered like regular topic content. To disable parsing of the included content, set the literal option to "on". disabled
    nofinalnewline="on" Delete the new line at the end of the result if exists disabled
    newline="$br" Convert newlines in textarea to other delimiters. Variable $br expands to <br /> tag, and $n to a newline. Other text is encoded based on encode parameter. no conversion
    encode="html" Encode special characters into HTML entities. If a FORMFIELD is passed into an HTML form field it should be encoded as "html". Additional encodings available: encode="quote", encode="moderate", encode="safe", encode="entity" and encode="url". See ENCODE for details. no encoding
    disableremoveheaders="on" Bypass stripping headers from included HTML (everything until first </head> tag) disabled
    disableremovescript="on" Bypass stripping all <script> tags from included HTML disabled
    disableremovebody="on" Bypass stripping the </body> tag and everything around over and below it disabled
    disablecompresstags="on" Bypass replacing newlines in HTML tags with spaces. This compression step rewrites unmatched <'s into &lt; entities unless bypassed disabled
    disablerewriteurls="on" Bypass rewriting relative URLs into absolute ones disabled
    disablefixlinks="on" Bypass fixing WikiWord links if include is done across webs. Fixing links in included text such as from SomeLink to Otherweb.SomeLink is usually desirable so that links in included text still point to the same target disabled
    warn="off" Warn if topic include fails: Fail silently (if off); output default warning (if set to on); else, output specific text (use $topic for topic name) %INCLUDEWARNING% preferences setting
    section="name" Includes only the specified named section, as defined in the included topic by the STARTSECTION and ENDSECTION variables. Nothing is shown if the named section does not exists. section="" is equivalent to not specifying a section  
    PARAMONE="val 1"
    PARAMTWO="val 2"
    Any other parameter will be defined as a variable within the scope of the included topic. The example parameters on the left will result in %PARAMONE% and %PARAMTWO% being defined within the included topic. A default value for a variable can be specified in the included topic in case the corresponding parameter is not specified, such as %PARAMONE{ default="..." }%  
  • Security Considerations:
    • The ability to INCLUDE arbitrary URLs, such as %INCLUDE{"http://www.google.com/"}% is turned off by default. To turn this on, ask your TWiki administrator to enable the {INCLUDE}{AllowURLs} flag in the Security setup section of configure.
    • JavaScript in included web pages is filtered out as a security precaution per default. Disable filtering with raw or disableremovescript parameter.
  • Infinite INCLUDE loop prevention:
    • To prevent obvious infinite INCLUDE loop, %INCLUDE{"http://THIS_SERVER/.../THIS_WEB/THIS_TOPIC}% is detected and blocked.
    • If the server has aliases, $TWiki::cfg{UrlHostRegex} should be set so that it matches all possible server names. e.g.
      $TWiki::cfg{UrlHostRegex} = qr{http://(www\.)?domain\.com};
      
  • INCLUDE attachment:
    As described above, there are two ways to include an attachment. They are similar, but behave slightly differently.
    • attachment="filename.ext"
      This works in the same manner as ordinary topic text inclusion. %STARTINCLUDE% and %STOPINCLUDE% in the attachment are observed. The section parameter is observed. The variables are expanded in the context of the topic having the attachment. For example, %TOPIC% is expanded to the name of the topic having the attachment.
    • Specifying the URL of an attachment. (e.g. %INCLUDE{%ATTACHURL%/foo.txt}%)
      The attachment content is processed in the same manner as when data is retrieved from another web server. Unless raw="on" is specified, the content of <body>...</body> is extracted, all occurrences of <script>...</script> are removed. Topic context change doesn't happen because in general inclusion via HTTP doesn't cause topic context change.
  • Examples: See IncludeTopicsAndWebPages
  • Category: ApplicationsAndComponentsVariables, DevelopmentVariables, ImportVariables
  • Related: BASETOPIC, BASEWEB, INCLUDINGTOPIC, INCLUDINGWEB, STARTINCLUDE, STOPINCLUDE, STARTSECTION, ENDSECTION, TOC, IncludeTopicsAndWebPages, ParameterizedVariables (this topic)

MAKETEXT -- translate text using TWiki's I18N infrastructure

  • Text in MAKETEXT is translated into another language at page view time if the user activates a language other than the default English language.
  • Syntax: %MAKETEXT{"string" args="..."}%
  • Supported parameters:
    Parameter Description Default
    "text" or string="text" The text to be displayed. none
    args="param1, param2" a comma-separated list of arguments to be interpolated in the string, replacing the [_N] placeholders in it. none
  • Examples:
    • %MAKETEXT{string="Notes:"}%
      expands to
      Notes:
    • %MAKETEXT{"If you have any questions, please contact [_1]." args="%WIKIWEBMASTER%"}%
      expands to
      If you have any questions, please contact beheer@junolink.nl.
    • %MAKETEXT{"Did you want to ~[~[[_1]~]~[reset [_2]'s password~]~]?" args="%SYSTEMWEB%.ResetPassword, %WIKINAME%"}%
      expands to
      Did you want to reset TWikiGuest's password?
  • Notes:
    • TWiki will translate the string to the current user's language only if it has such string in its translation table for that language.
    • Ampersands (&) followed by one letter (one of a...z, A...Z -- say, X) in the translatable string will be translated to <span class='twikiAccessKey'>X</span>. This is used to implement access keys. If you want to write an actual amperstand that stays just before a letter, write two consecutive amperstands (&&): they will be transformed in just one.
    • Square brackets ~[ and ~] in the text have a special meaning and need to be escaped using ~[ and ~], respectively.
    • Translatable string starting with underscores (_) are reserved. You must not use translatable phrases starting with an underscore.
    • Make sure that the translatable string is constant. Specially, do not include %VARIABLES% inside the translatable strings - string would not get translated because variables get expanded before the %MAKETEXT{...}% itself is handled.
  • Category: DevelopmentVariables, FormattingAndRenderingVariables
  • Related: TWiki:Codev.UserInterfaceInternationalisation (on TWiki.org), CPAN:Locale::Maketext (Maketext documentation) (this topic)

QUERYPARAMS -- show paramaters to the query

  • Expands the parameters to the query that was used to display the page.
  • Syntax: %QUERYPARAMS{...}%
  • Parameters:
    • format="..." format string for each entry, default $name=$value
    • separator="..." separator string, default separator="$n" (newline)
    • encode="..." the encoding to apply to parameter values; see ENCODE for a description of the available encodings. If this parameter is not given, no encoding is performed.
  • The following escape sequences are expanded in the format string:
    Sequence: Expands To:
    $name Name of the parameter
    $value String value of the parameter. Multi-valued parameters will have a "row" for each value.
    $n or $n() New line. Use $n() if followed by alphanumeric character, e.g. write Foo$n()Bar instead of Foo$nBar
    $nop or $nop() Is a "no operation". This variable gets removed; useful for nested search
    $quot or \" Double quote (")
    $aquot Apostrophe quote (')
    $percnt Percent sign (%)
    $dollar Dollar sign ($)
    $lt Less than sign (<)
    $gt Greater than sign (>)

QUERYSTRING -- full, unprocessed string of parameters to this URL

  • String of all the URL parameters that were on the URL used to get to the current page. For example, if you add ?name=Samantha;age=24;eyes=blue to this URL you can see this in action. This string can be appended to a URL to pass parameter values on to another page.
  • ALERT! Note: URLs built this way are typically restricted in length, typically to 2048 characters. If you need more space than this, you will need to use an HTML form and %QUERYPARAMS%.
  • Syntax: %QUERYSTRING%
  • Expands to:
  • Category: DevelopmentVariables, SystemInformationVariables
  • Related: QUERYPARAMS, URLPARAM (this topic)

REMOTE_ADDR -- environment variable

REMOTE_PORT -- environment variable

REMOTE_USER -- environment variable

SCRIPTNAME -- name of current script

SCRIPTSUFFIX -- script suffix

SCRIPTURL -- base URL of TWiki scripts

SCRIPTURL{"script"} -- URL of TWiki script

  • Expands to the URL of the specified script. Optionally, you can specify a web and/or a topic. In that case, the URL of the script for the specified web and topic is returned.
  • If ReadOnlyAndMirrorWebs is in effect and a web is specified, whether the web is a slave or not is taken into account. For a slave web, with scripts edit, save, attach, upload, and rename, the URL on the master site is returned.
    For the other scripts, if the master="on" parameter is specified, the URL on the master site is returned.
  • Syntax: %SCRIPTURL{"script" ...}%
  • Supported parameters:
    Parameter: Description: Default:
    "script" The name of the script  
    web="WEB" Specifies a web When a topic name is specified and a web is not, the current web is assumed
    topic="TOPIC" or topic="WEB.TOPIC" Specifies a topic or both a web and a topic  
    master="on" A URL on the master site is needed or not off
  • If web="WEB" is specified but topic is not specified, the resulting URL ends with WEB.
  • Example: To get the authenticated version of the current topic you can write %SCRIPTURL{"viewauth"}%/%WEB%/%TOPIC% which expands to https://junobase.com/do/viewauth/TWiki/TWikiVariablesCategoryBody. It can be written %SCRIPTURL{"viewauth" topic="%TOPIC%"}% as well.
  • Example: Let's assume this site has a web named 'Flowers' whose master site is http://florawiki/cgi-bin. Then %SCRIPTURL{"edit" web="Flowers"}% expands to http://florawiki/cgi-bin/edit/Flowers. This is because the 'Flower' web on this site is a slave and editing needs to happen on the master site.
  • Example: Asuming above, %SCRIPTURL{"view" web="Flowers" master="on"}% expands to http://florawiki/cgi-bin/view/Flowers. The view script works on a slave site, but master="on" parameter forces to yield the master site URL.
  • Example: How to link to another topic with a URL parameter: [[%SCRIPTURL{view}%/%WEB%/MyQuery?food=sushi][Sushi]]
  • Note: In most cases you should use %SCRIPTURLPATH{"script"}% instead, as it works with URL rewriting much better
  • Category: DevelopmentVariables, SystemInformationVariables
  • Related: CONTENTMODE, PUBURL, SCRIPTNAME, SCRIPTSUFFIX, SCRIPTURL, SCRIPTURLPATH, SCRIPTURLPATH{"script"}, SITENAME, ReadOnlyAndMirrorWebs, MetadataRepository, TWikiScripts (this topic)

SCRIPTURLPATH -- base URL path of TWiki scripts

SCRIPTURLPATH{"script"} -- URL path of TWiki script

  • As %SCRIPTURL{"script"}%, but doesn't include the protocol and host part of the URL
  • Like %SCRIPTURL{"script"}%, this variable is aware of ReadOnlyAndMirrorWebs. So it may return a URL of a different site.
  • Syntax: %SCRIPTURLPATH{"script" ...}%
  • Supported parameters:
    Parameter: Description: Default:
    "script" The name of the script.  
    web="WEB" Specifies a web When a topic name is specified and a web is not, the current web is assumed
    topic="TOPIC" or topic="WEB.TOPIC" Specifies a topic or both a web and a topic  
    master="on" A URL on the master site is needed or not. off
  • If web="WEB" is specified but topic is not specified, the resulting URL ends with WEB.
  • Example: %SCRIPTURLPATH{"view"}% expands to "/do/view" (This might be a null string. Hence surrounded by double quotes)
  • Example: %SCRIPTURLPATH{"view" web="%WEB%"}% expands to /do/view/TWiki
  • Example: %SCRIPTURLPATH{"view" topic="%TOPIC%"}% expands to /do/view/TWiki/VarSCRIPTURLPATH2
  • Example: Let's assume this site has a web named 'Flowers' whose master site is http://florawiki/cgi-bin. Then %SCRIPTURLPATH{"edit" web="Flowers"}% expands to http://florawiki/cgi-bin/edit/Flowers. This is because the 'Flower' web on this site is a slave and editing needs to happen on the master site.
  • Category: DevelopmentVariables, SystemInformationVariables
  • Related: CONTENTMODE, PUBURLPATH, SCRIPTNAME, SCRIPTSUFFIX, SCRIPTURL, SCRIPTURL{"script"}, SCRIPTURLPATH, ReadOnlyAndMirrorWebs, MetadataRepository, TWikiScripts (this topic)

SEARCH{"text"} -- search content

  • Inline search, shows a search result embedded in a topic
  • Syntax: %SEARCH{"text" ...}%
  • Supported parameters:
    Parameter: Description: Default:
    "text" Search term. Is a keyword search, literal search, regular expression search, or query, depending on the type parameter. SearchHelp has more required
    search="text" (Alternative to above) N/A
    web="Name"
    web="Main, Know"
    web="all"
    Comma-separated list of webs to search. You can specifically \*exclude\* webs from an all search using a minus sign - for example, web="all,-Secretweb". The special word all means all webs that do not have the NOSEARCHALL variable set to on in their WebPreferences. Note that TWikiAccessControls are respected when searching webs; it is much better to use them than NOSEARCHALL. Current web
    topic="WebPreferences"
    topic="*Bug"
    Limit search to topics: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. Note this is a list of topic names and must not include web names. All topics in a web
    excludetopic="Web*"
    excludetopic="WebHome, WebChanges"
    Exclude topics from search: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. Note this is a list of topic names and must not include web names. None
    scope="topic"
    scope="text"
    scope="all"
    Search topic name (title); the text (body) of topic; or all (title and body) "text"
    type="keyword"
    type="word"
    type="literal"
    type="regex"
    type="query"
    Control how the search is performed when scope="text" or scope="all"
    keyword: use Google-like controls as in soap "web service" -shampoo; searches word parts: using the example, topics with "soapsuds" will be found as well, but topics with "shampoos" will be excluded
    word: identical to keyword but searches whole words: topics with "soapsuds" will not be found, and topics with "shampoos" will not be excluded
    literal: search for the exact string, like web service
    regex: use a RegularExpression search like soap;web service;!shampoo; to search on whole words use \bsoap\b
    query: QuerySearch of form fields and other meta-data, like (Firstname='Emma' OR Firstname='John') AND Lastname='Peel'
    %SEARCHVAR- DEFAULTTYPE% preferences setting (literal)
    sort="topic"
    sort="created"
    sort="modified"
    sort="editby"
    sort="parent"
    sort="parent(99)"
    sort="formfield(name)"
    sort="parent,
     formfield(name)"
    Sort the search results by:
    topic: topic name,
    created: topic creation time,
    modified: last modified time,
    editby: last editor,
    parent: parent topic name,
    parent(N): parent breadcrumb up to indicated level,
    formfield(NAME): named TWikiForms field,
    • or a combination to sort by more than one field using a comma list.
    The sorting is done web by web; if you want to sort across webs, create a formatted table and sort it with TablePlugin's initsort. Note that dates are sorted most recent date last (i.e at the bottom of the table). Legacy order parameter is used in case sort is not specified.
    "topic"
    reverse="on"
    reverse="off, on"
    Reverse the direction of the search. Specify a comma list of on, off tokens to toggle direction by sort field. If sort has more fields than reverse tokens, the state of the last reverse token is taken for the remaining fields. "off"
    start="0"
    start="20"
    Specify the number of results to skip. This is done after sorting if sort parameter is specified. This is intended for pagination of results. If this parameter is specified, %NTOPICS% in the search template is replaced with the number of topics matched. Without this parameter, %NTOPICS% doesn't exceed the limit value. "0"
    limit="all"
    limit="16"
    Limit the number of results returned. This is done after sorting if sort parameter is specified. This parameter specifing the number of results remains the same in the presense of the start parameter. Assuming there are more than 20 results matched, start="10" limit="10" results in 11th to 20th results are returned "all"
    date="..." limits the results to those pages with latest edit time in the given time interval. All results
    createdate="..." similar to date but it's about create time instead of last edit. You can specify both date and createdate, in which case topics matching both conditions are shown. All results
    casesensitive="on" Case sensitive search Ignore case
    bookview="on" BookView search, e.g. show complete topic text Show topic summary
    nonoise="on" Shorthand for nosummary="on" nosearch="on" nototal="on" zeroresults="off" noheader="on" noempty="on" Off
    nosummary="on" Show topic title only Show topic summary
    nosearch="on" Suppress search string Show search string
    noheader="on" Suppress default search header
    Topics: Changed: By: , unless a header is explicitly specified
    Show default search header, unless search is inline and a format is specified (Cairo compatibility)
    nototal="on" Do not show number of topics found Show number
    zeroresults="off" Suppress all output if there are no hits zeroresults="on", displays: "Number of topics: 0"
    noempty="on" Suppress results for webs that have no hits. Show webs with no hits
    headingoffset="2" Adjust the level of headings in text of topics found, taking effect in $text and $pattern() of a FormattedSearch. A "2" or "+2" increases the level by two, e.g. a ---+ H1 turns into a ---+++ H3. Positive and negative values are supported. Adjusted min and max levels are H1 and H6, respectively. no adjustment
    header="..."
    format="..."
    footer="..."
    Custom format results. See FormattedSearch for usage, variables & examples Results in table
    default="..." Default message if there are no hits in a web. See FormattedSearch for usage, variables & examples No output
    expandvariables="on" Expand variables before applying a FormattedSearch on a search hit. Useful to show the expanded text, e.g. to show the result of a SpreadSheetPlugin %CALC{}% instead of the formula Raw text
    multiple="on" Multiple hits per topic. Each hit can be formatted. The last token is used in case of a regular expression ";" and search Only one hit per topic
    nofinalnewline="on" If on, the search variable does not end in a line by itself. Any text continuing immediately after the search variable on the same line will be rendered as part of the table generated by the search, if appropriate. off
    recurse="on" Recurse into subwebs, if subwebs are enabled. off
    separator=", " Line separator between search hits. Specify format="$topic" separator=", " to get a comma separated list of topic names. The following variables can be used in the separator value: $n expands to a newline, $br expands to a <br /> line break tag. "$n" (Newline)
    newline="$br" Line separator within a search hit. Useful if you want to put multi-line content into a table cell, for example if the format="" parameter contains a $pattern() that captures more than one line, or contains a $formfield() that returns a multi-line textfield. The following variables can be used in the newline value: $n expands to a newline, $br expands to a <br /> line break tag. "$n" (Newline)
    encode="html" Encode special characters into HTML entities. If a FORMFIELD is passed into an HTML form field it should be encoded as "html". Additional encodings available: encode="quote", encode="moderate", encode="safe", encode="entity" and encode="url". See ENCODE for details. no encoding
  • Example: %SEARCH{"wiki" web="Main" scope="topic"}%
  • Example with URLPARAM: %SEARCH{"%URLPARAM{"query" encode="search"}%" web="Main"}%
  • Example with format: %SEARCH{"FAQ" scope="topic" nosearch="on" nototal="on" header="| *Topic: * | *Summary: * |" format="| $topic | $summary |"}% (displays results in a table with header - details)
  • HELP Hint: If the TWiki:Plugins.TablePlugin is installed, you may set a %TABLE{}% variable just before the %SEARCH{}% to alter the output of a search. Example: %TABLE{ tablewidth="90%" }%
  • Category: DevelopmentVariables, DatabaseAndFormsVariables, ExportAndPublishingVariables, SearchingAndListingVariables
  • Related: CHILDREN, EDITFORM, EDITFORMFIELD, FORM, FORMFIELD, META, METASEARCH, PARENTTOPIC, TOPICLIST, WEBLIST, FormattedSearch, SearchResultsPagination, QuerySearch, SearchHelp, SearchPatternCookbook, RegularExpression (this topic)

SENDMAIL{...} -- send e-mail from actions in TWiki topics, useful for workflow automation

  • The %SENDMAIL{}% variable is handled by the SendMailPlugin.
  • Syntax: %SENDMAIL{ action="send" ... }%
  • Parameters:
    Parameter Description Default
    action="" Only action="send" is supported, it will send an e-mail "" (no action)
    excludetopic="MyTemplate" Exclude action for named topic. Typically used in a template topic containing the SENDMAL variable to disable the action when viewing the topic. "" (no exclude)
    from="admin@example.com" E-mail address or WikiName of sender. If a WikiName is specified, the registered e-mail of that person is used. Supported tokens:
    $webmastername - name of TWiki administrator.
    $webmasteremail - e-mail of TWiki administrator.
    $username - WikiName of logged in user.
    $useremail - e-mail address of the logged in user.
    Defaults to TWiki administrator. See note on open mail relay.
    "$webmastername <$webmasteremail>"
    to="jom@example.com" To list: Comma-space delimited list of e-mail addresses or WikiNames of adressees. Same tokens supported as in from="". Defaults to TWiki administrator. "$webmastername <$webmasteremail>"
    cc="jimmy@example.com" CC list: Comma-space delimited list of e-mails or WikiNames. Same tokens supported as in from="". ""
    bcc="boss@example.com" BCC list: Comma-space delimited list of e-mails or WikiNames. Same tokens supported as in from="". ""
    subject="Any text" E-mail subject. Text may include TWikiVariables such as %URLPARAM{subject}%, and format tokens such as $n and $percnt. (help message)
    text="Any text" or
    plaintext="Any text"
    E-mail body in plain text format. Text may include TWikiVariables and format tokens. (help message)
    htmltext="Any HTML" E-mail body in HTML format, optional. Text may include TWikiVariables and format tokens. Double quotes need to be escaped, such as <a href=\"http://twiki.org/\">TWiki.org<a>. A MIME Multi-Part message is sent if both, plaintext and htmltext are specified. ""
    onsuccess="..." Text shown in place of the SENDMAIL variable on success, default is empty. Text may include TWikiVariables and format tokens. ""
    onerror="| $error ||" Error message shown in place of the SENDMAIL variable on error, if any. Text may include TWikiVariables and format tokens. Token $error expands to the error message. "$error"
  • Security: See note on how to avoid an open mail relay
  • Example:
    %SENDMAIL{ action="send" to="$username <$useremail>" subject="Status change" text="Status changed to %FORMFIELD{Status}%" }%
  • Category: DevelopmentVariables, EmailAndNotificationVariables, WorkflowAndAutomationVariables
  • Related: SendMailPlugin (this topic)

SESSIONID -- unique ID for this session

SESSIONVAR -- name of CGI and session variable that stores the session ID

SESSION_VARIABLE -- get, set or clear a session variable

  • Session variables are stored in a personal "persistent memory space" that is not lost until the web browser is closed
  • Syntax: %SESSION_VARIABLE{"name"}% - read a session variable
  • Syntax: %SESSION_VARIABLE{"name" set="value"}% - set a session variable
  • Syntax: %SESSION_VARIABLE{"name" clear=""}% - clear a session variable
  • Special read-only session variables:
    • %SESSION_VARIABLE{"AUTHUSER"}% - user ID, current value:
    • %SESSION_VARIABLE{"SESSION_REQUEST_NUMBER"}% - number of pages accessed by current user since login, current value:
  • Note: It is not possible to set/get/clear session variables starting with an underscore, such as "_NON_OF_YOUR_BUSINESS"
  • Category: DevelopmentVariables, SystemInformationVariables, UsersAndAuthenticationVariables
  • Related: TWikiUserAuthentication, AUTHREALM, GET, LOGIN, LOGOUT, SESSIONID, SESSIONVAR, SET (this topic)

SET{"name" value="..."} -- set a variable

  • Set a named variable that can be retrieved later with %GET{}%. No output is shown, e.g. %SET{}% resolves to an empty string. It is also possible to set a JSON object using a JSON path. The %SET{}% and %GET{}% variables are handled by the SetGetPlugin.
  • Syntax: %SET{ "name" value="..." remember="1" }%
  • Parameters:
    Parameter Description Default
    "name" Name of variable. Alphanumeric characters, dashes and underscores can be used. (required)
    value="..." Value of variable. Escape double quotes with backslash. (required, may be empty)
    remember="1" If set, the variable will be stored persistently so that it can be used later in any TWiki topic. Alternatively use the store parameter. See important notes. "0"
    store="..." Specify a store name to persistently store the variable, such as store="Parts". Use alphanumeric characters, dashes and underscores for the name. For better performance, store is preferred over the remember parameter if you need to store a large dataset. See important notes. ""
  • Example: %SET{"lunch" value="Sushi"}% - see more examples.
  • JSON Syntax: %SET{ name = { ... } remember="1" }% - see description.
    • An optional remember="1" or store="..." parameter can be appended. If specified, the JSON object will be stored persistently so that it can be used later in any TWiki topic.
  • Example to set, modify and get a JSON object:
    • %SET{ menu = { "File": { "New": [ "new", "F" ], "Open": [ "open", "F" ] }, "Edit": { "Copy": [ "cpy", "F" ], "Paste": [ "pst", "F" ] } } }% - set a JSON object
    • %GET{ menu }% - returns: {"File":{"New":["new","F"],"Open":["open","F"]},"Edit":{"Copy":["cpy","F"],"Paste":["pst","F"]}}
    • %SET{ menu.File.Open[1] = "T" }% - modify a JSON object
    • %GET{ menu }% - returns: {"File":{"New":["new","F"],"Open":["open","T"]},"Edit":{"Copy":["cpy","F"],"Paste":["pst","F"]}}
    • %SET{ menu.Edit.Cut = [ "cut", "T" ] }% - add to a JSON object
    • %GET{ menu }% - returns: {"File":{"New":["new","F"],"Open":["open","T"]},"Edit":{"Copy":["cpy","F"],"Paste":["pst","F"],"Cut":["cut","T"]}}
  • Category: ApplicationsAndComponentsVariables, DevelopmentVariables
  • Related: GET, IF, SETGETDUMP, SetGetPlugin, SpreadSheetPlugin (this topic)

SETGETDUMP{...} -- dump variables

STARTINCLUDE -- start position of topic text if included

STARTSECTION -- marks the start of a section within a topic

  • Section boundaries are defined with %STARTSECTION{}% and %ENDSECTION{}%.
  • Sections may be given a name to help identify them, and/or a type, which changes how they are used.
    • type="section" - the default, used for a generic section, such as a named section used by INCLUDE.
    • type="include" - like %STARTINCLUDE% ... %STOPINCLUDE% except that you can have as many include blocks as you want (%STARTINCLUDE% is restricted to only one).
    • type="templateonly" - start position of text to be removed when a template topic is used. Use this to embed text that you do not want expanded when a new topic based on the template topic is created. TWikiTemplates has more.
    • type="expandvariables" - start position where TWikiVariables get expanded when a new topic is created. As documented in TWikiTemplates, only certain variables get expanded when a new topic based on the template topic is created. All variables get expanded within a "expandvariables" section.
  • Syntax: %STARTSECTION{"name"}% ................... %ENDSECTION{"name"}%
  • Syntax: %STARTSECTION{type="include"}% ........... %ENDSECTION{type="include"}%
  • Syntax: %STARTSECTION{type="templateonly"}% ...... %ENDSECTION{type="templateonly"}%
  • Syntax: %STARTSECTION{type="expandvariables"}% ... %ENDSECTION{type="expandvariables"}%
  • Supported parameters:
    Parameter: Description: Default
    "name" Name of the section. Must be unique inside a topic. Generated name
    type="..." Type of the section; type "section", "include", "templateonly", or "expandvariables" "section"
    disablefixlinks="on" Only for named sections: Bypass fixing WikiWord links if section is included from a topic in another web. Fixing links in included text such as from SomeLink to Thisweb.SomeLink is usually desirable so that links in included text still point to the same target. fix links
  • ALERT! Note: If a section is not given a name, it will be assigned one. Unnamed sections are assigned names starting with _SECTION0 for the first unnamed section in the topic, _SECTION1 for the second, etc..
  • ALERT! Note: You can define nested sections. Do not overlap sections. Use named sections to make sure that the correct START and ENDs are matched. Section markers are not displayed when a topic is viewed.
  • Category: DevelopmentVariables, WorkflowAndAutomationVariables
  • Related: ENDSECTION, HIDE, INCLUDE, NOP, STARTINCLUDE, STOPINCLUDE (this topic)

STOPINCLUDE -- end position of topic text if included

URLPARAM{"name"} -- get value of a URL parameter

  • Returns the value of a URL parameter.
  • Syntax: %URLPARAM{"name"}%
  • Supported parameters:
    Parameter: Description: Default:
    "name" The name of a URL parameter required
    newline="$br" Convert newlines in textarea to other delimiters. Variables $br (for <br /> tag), $n (for newline) are expanded. Other text is encoded based on encode parameter. no conversion
    encode="off" Turn off encoding. See important security note below encode="safe"
    encode="quote" Escape double quotes with backslashes (\"), does not change other characters; required when feeding URL parameters into other TWiki variables. This encoding does not protect against cross-site scripting. encode="safe"
    encode="moderate" Encode special characters into HTML entities for moderate cross-site scripting protection: "<", ">", single quote (') and double quote (") are encoded. Useful to allow TWiki variables in comment boxes. encode="safe"
    encode="safe" Encode special characters into HTML entities for cross-site scripting protection: "<", ">", "%", single quote (') and double quote (") are encoded. (this is the default)
    encode="entity" Encode special characters into HTML entities. See ENCODE for details. encode="safe"
    encode="html" Encode special characters into HTML entities. In addition to encode="entity", it also encodes space, newline (\n) and linefeed (\r). Useful to encode text properly in HTML input fields. encode="safe"
    encode="url" Encode special characters for URL parameter use, like a double quote into %22 encode="safe"
    encode="search" Special encoding used for SEARCH: Substitute % characters into non-printable characters, so that TWikiVariables are no longer expanded. Also escapes quotes. Used to feed a search string from a URLPARAM into SEARCH without expanding any variables, such as when searching for %BR%. type="url"
    multiple="on"
    multiple="[[$item]]"
    If set, gets all selected elements of a <select multiple="multiple"> tag. A format can be specified, with $item indicating the element, e.g. multiple="Option: $item" first element
    separator=", " Separator between multiple selections. Only relevant if multiple is specified "\n" (newline)
    format="..." Format the result. $value expands to the URL parameter. If multiple is specified, $value expands to the result of the concatenated items. "$value"
    default="..." Default value in case parameter is empty or missing. The format parameter is not applied. empty string
  • Example: %URLPARAM{"skin"}% returns print for a .../view/TWiki/TWikiVariablesCategoryBody?skin=print URL
  • ALERT! Notes:
    • IMPORTANT: There is a risk that this variable can be misused for cross-site scripting (XSS) if the encoding is turned off. The encode="safe" is the default, it provides a safe middle ground. The encode="entity" is more aggressive, but some TWiki applications might not work.
    • URL parameters passed into HTML form fields should be encoded as "html".
      Example: <input type="text" name="address" value="%URLPARAM{ "address" encode="html" }%" />
    • Double quotes in URL parameters must be escaped when passed into other TWiki variables.
      Example: %SET{ "lunch" value="%ENCODE{ "string with "quotes"" type="quotes" }%" remember="1" }%
    • Percent characters and double quotes in URL parameters should be escaped when passed into a SEARCH variable.
      Example: %SEARCH{ "%URLPARAM{ "query" encode="search" }%" noheader="on" }%
    • When used in a template topic, this variable will be expanded when the template is used to create a new topic. See TWikiTemplates for details.
    • Watch out for TWiki internal parameters, such as rev, skin, template, topic, web; they have a special meaning in TWiki. Common parameters and view script specific parameters are documented at TWikiScripts.
    • If you have %URLPARAM{ in the value of a URL parameter, it will be modified to %<nop>URLPARAM{. This is to prevent an infinite loop during expansion.
  • Category: DevelopmentVariables, SystemInformationVariables
  • Related: ENCODE, ENTITY, SEARCH, FormattedSearch, QUERYSTRING (this topic)

USERREPORT -- show user reports with profile pictures

  • Show various user reports documented in UserReports
  • Syntax: %USERREPORT{ action="..." ... }%
  • Overview of actions with parameters:
    Report action= Parameters
    Show a simple list of registered users "user_list" search, limit, sort, reverse
    Show the profile picture image of a user "profile_picture" user, height, width, title
    Show slim, one line height user boxes "slim_box_start"
    "slim_box" or
    "slim_box_list"
    "slim_box_end"
    style
    user, style
    users, style
    none
    Show small, two line height user boxes "small_box_start"
    "small_box" or
    "small_box_list"
    "small_box_end"
    style
    user, style
    users, style
    none
    Show users in business card format "business_card_start"
    "business_card" or
    "business_card_list"
    "business_card_end"
    style
    user, style
    users, style
    none
    Show a selector to pick a user,
    for use in HTML forms
    "select_one_user" name, selected, users
    Show rows of checkboxes to select users,
    for use in HTML forms
    "select_users" name, selected, users, colums, style
  • Example: %USERREPORT{ action="user_list" search="jane" limit="5" }%
  • Category: AdministrationVariables, DevelopmentVariables, UsersAndAuthenticationVariables
  • Related: BUBBLESIG, SEARCH, USERSIG, UserList, UserReports (this topic)

VAR{"NAME" ...} -- get a preference value from another web or topic and more

  • Gets the value of a variable in various manners.
    • If the topic parameter is specified, it gets the value of the specified preferences variable in the specified topic. Please note that the WebPreferences of the web of the specified topic is not examined. So the returned value may not be the same as the value of the variable when the specified topic is viewed.
    • If the topic parameter is not specified and the web parameter is specified, it gets the value of the specified preferences variable in the specified web, which means the specified web's WebPreferences is examined for the variable.
    • If the neither the topic nor web parameter is specified, it gets the value of the specified variable in the current context -- the variable can either be a preferences variable or a session variable but cannot be a tag with a tag handler (e.g. %GMTIME%).
      %VAR{"NAME"}% is similar to %NAME%, but they differ if NAME is undefined, in which case %VAR{"NAME"}% is expanded to null (zero width string) while %NAME% remains as is (%NAME%). %VAR{"NAME"}% yields the same value as %IF{"defined NAME" then="$percntNAME$percnt"}% if NAME is a variable, but the latter is cubmersome.
  • Syntax: %VAR{"NAME" ...}%
  • Supported parameters:
    Parameter: Description: Default:
    "Variable" The name of the variable to be retrieved. If not specified, %VAR{...}% is expanded to null. required
    topic="Web.Topic" Specifies the topic in which the specified preferences vaiable is fetched. none
    topic="Topic" Same as above, but the web is specified specified explicitly with the web parameter or the current web is specified. none
    web="Web" Specifies the web in which the specified preferences variable is fetched. none
    default="Value" Specifies the value to be returned if the specified variable is undefined. "" (null string)
    ignorenull="on" If specified, a null string ("") value is regarded as undefined. This affects whether or not the value specified by the default parameter is returned. "off"
  • Example 1: To get the members of TWikiAdminGroup, %VAR{"GROUP" topic="%USERSWEB%.TWikiAdminGroup"}%, which expands to EmielVanRiel.
  • Example 2: To get %WEBBGCOLOR% of the Main web write %VAR{"WEBBGCOLOR" web="Main"}%, which expands to #FFEFA6
  • Example 3: Let's say you are writing the "foo" skin. And you want to have the users specify a string inserted in the head tag with FOOSKIN_HTML_HEAD_HOOK. That can be achived by the following:
    %VAR{"FOOSKIN_HTML_HEAD_HOOK" default="<nop>" ignorenull="on"}%
  • Category: DevelopmentVariables, SystemInformationVariables
  • Related: ALLVARIABLES, WEBPREFSTOPIC (this topic)

Total: 41 variables

Related Topics: TWikiVariables, TWikiVariablesSearch, TWikiVariablesQuickStart

Topic revision: r1 - 11 Nov 2012 - TWikiContributor
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 1999-2024 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.DevelopmentVariables.