Skip to topic | Skip to bottom
Powered by TWiki
You are here: TWiki > TWiki Web > TWikiVariables r79 - 27 Mar 2005 - 13:14 - TWikiContributor


Start of topic | Skip to actions

TWiki Variables

Special text strings expand on the fly to display user data or system info

TWikiVariables are text strings - %VARIABLE% - that expand into content whenever a page is rendered for viewing. Some variables can even take parameters - %VARIABLE{parameter="value"}%.

  • To leave a variable unexpanded, precede it with an exclamation point, e.g. type !%TOPIC% to get %TOPIC%.
  • Variables are expanded relative to the topic they are used in, not the topic they are defined in.
  • Optional plugins may extend the set of predefined variables

Setting Variables

You can set variables in all the following places:
  1. local site level in TWikiPreferences
  2. web level in WebPreferences of each web
  3. user level in individual user topics in Main web
  4. session variables (if sessions are enabled)
  5. topic level in topics in webs

Settings at higher-numbered levels override settings of the same variable at lower numbered levels, unless the variable was included in the setting of FINALPREFERENCES at a lower-numbered level, in which case it is locked at the value it has at that level.

There are many predefined variables defined by default, and many more may already have been defined for your site. You can put %ALL_VARIABLES% into a topic anywhere in your TWiki to get a full listing of the variables defined there.

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] = [value]

Examples:
  • Set VARIABLENAME = value
    • Set VARIABLENAME = value
Spaces between the = sign and the value will be ignored. You can split a value over several lines by starting following lines with [multiple of 3 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 here

Whatever you include in your Variable will be expanded on display, exactly as if it had been entered directly.

Example: Create a custom logo variable
  • To place a logo anywhere in a web by typing %MYLOGO%, define the Variable on the web's WebPreferences page, and upload a logo file, ex: mylogo.gif. You can upload by attaching the file to WebPreferences, or, to avoid clutter, to any other topic in the same web, ex: LogoTopic - Sample variable setting in WebPreferences:
    • Set MYLOGO = %PUBURL%/TWiki/LogoTopic/mylogo.gif

You can also set preference variables on a topic by clicking the link Edit topic preference settings under More topic actions. Preferences set in this manner are not visible in the topic text, but take effect nevertheless.

Access Control Variables

You should review TWikiAccessControl for details about security settings, which are managed using TWikiVariables.

Local values for variables

Certain 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 using Local 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 = 20
Then 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! %ALL_VARIABLES% 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.

Predefined Variables

Most predefined variables return values that were either set in the configuration when TWiki was installed, or taken from server info (like current username, or date and time). Some, like =%SEARCH%, are powerful and general tools.

  • warning Predefined variables can be overridden by Preferences variables
  • warning Plugins may extend the set of predefined variables see individual Plugins topics for details
  • tip Take the time to thoroughly read through ALL preference variables. If you actively configure your site, review variables periodically. They cover a wide range of functions, and it can be easy to miss the one perfect variable for something you have in mind. For example, see %INCLUDINGTOPIC%, %INCLUDE%, and the mighty %SEARCH%.
This version of TWiki - Sun, 06 Nov 2005 build 7330 - predefines the following variables

ACTIVATEDPLUGINS -- list of currently activated plugins

ATTACHURL -- full URL for attachments in the current topic

ATTACHURLPATH -- path of the attachment URL of the current topic

AUTHREALM -- authentication realm

BASETOPIC -- base topic where an INCLUDE started

  • The name of the topic where a single or nested INCLUDE started - same as %TOPIC% if there is no INCLUDE
  • Syntax: %BASETOPIC%
  • Related: BASEWEB, INCLUDINGTOPIC, INCLUDE, TOPIC

BASEWEB -- base web where an INCLUDE started

  • The web name where the includes started, e.g. the web of the first topic of nested includes. Same as %WEB% in case there is no include.
  • Syntax: %BASEWEB%
  • Related: BASETOPIC, INCLUDINGWEB, INCLUDE, WEB

DATE -- signature format date

DISPLAYTIME -- display time

DISPLAYTIME{"format"} -- formatted display time

  • Formatted time - either GMT or Local server time, depending on setting in configure. Same format qualifiers as %GMTIME%
  • Syntax: %DISPLAYTIME{"format"}%
  • Example: %DISPLAYTIME{"$hou:$min"}% expands to 23:56
  • Related: DISPLAYTIME, GMTIME, SERVERTIME

ENCODE{"string"} -- encodes a string

  • Syntax: %ENCODE{"string"}%
  • Supported parameters:
    Parameter: Description: Default:
    "string" String to encode required (can be empty)
    type="entity" Encode special characters into HTML entities, like a double quote into " URL encoding
    type="url" Encode special characters for URL parameter use, like a double quote into %22 (this is the default)
  • Example: %ENCODE{"spaced name"}% expands to spaced%20name
  • Related: URLPARAM

ENDSECTION{"name"} -- Marks the end of a named section

  • Syntax: %ENDSECTION{"name"}%
  • Supported parameters:
    Parameter: Description: Default:
    "name" Name of the section. Must be unique inside a topic, and must match with a previous %SEcTION% tag. Mandatory parameter without a default
  • Related: INCLUDE, SECTION

FAILEDPLUGINS -- debugging for plugins that failed to load, and handler list

FORMFIELD{"format"} -- renders 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
    format="..." Format string. $value expands to the field value, and $title expands to the field title "$value"
    default="..." Text shown when no value is defined for the field ""
    alttext="..." Text shown when field is not found in the form ""
  • Example: %FORMFIELD{"ProjectName" topic="Projects.SushiProject" default="(not set)" alttext="ProjectName field found"}%
  • Related: SEARCH

GMTIME -- GM time

GMTIME{"format"} -- formatted GM time

  • Syntax: %GMTIME{"format"}%
  • Supported variables:
    Variable: Unit: Example
    $seconds seconds 59
    $minutes minutes 59
    $hours hours 23
    $day day of month 31
    $wday day of the Week (Sun, Mon, Tue, Wed, Thu, Fri, Sat) Thu
    $dow day of the week (Sun = 0) 2
    $week number of week in year (ISO 8601) 34
    $month month in ISO format Dec
    $mo 2 digit month 12
    $year 4 digit year 1999
    $ye 2 digit year 99
    $tz either "GMT" (if set to gmtime), or "Local" (if set to servertime) GMT
    $iso ISO format timestamp 2008-10-06T23:56Z
    $rcs RCS format timestamp 2008/10/06 23:56:37
    $http E-mail & http format timestamp Mon, 06 Oct 2008 23:56:37 GMT
    $epoch Number of seconds since 00:00 on 1st January, 1970 1223337397
  • Variables can be shortened to 3 characters
  • Example: %GMTIME{"$day $month, $year - $hour:$min:$sec"}% expands to 06 Oct, 2008 - 23:56:37
  • warning Note: 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.
  • Related: DISPLAYTIME, GMTIME, SERVERTIME

HOMETOPIC -- home topic in each web

HTTP -- get HTTP headers

  • Called with the name of an HTTP header field, returns its value. Capitalization and the use of hyphens versus underscores are not significant.
  • Syntax: %HTTP%
  • Syntax: %HTTP{'Header-name'}%
  • Examples:
    %HTTP%  
    %HTTP{"Accept-language"}% en-us,en;q=0.5
    %HTTP{"User-Agent"}% CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
  • Note: You can see the HTTP headers your browser sends to the server on a number of sites e.g. http://www.ericgiguere.com/tools/http-header-viewer.html
  • Related: HTTPS, REMOTE_ADDR, REMOTE_PORT, REMOTE_USER

HTTPS -- get HTTPS headers

  • The same as %HTTP but operates on the HTTPS environment variables present when the SSL protocol is in effect. Can be used to determine whether SSL is turned on.
  • Syntax: %HTTPS%
  • Syntax: %HTTPS{'Header-name'}%
  • Related: HTTP, REMOTE_ADDR, REMOTE_PORT, REMOTE_USER

HTTP_HOST -- environment variable

ICON{"name"} -- small documentation graphic or icon of common attachment types

  • Small graphic (commonly 16x16 pixels) used to enhance topics. Specify the name of the graphic.
  • A set of 16x16 pixel icons of common attachment types is provided. Specify file type only, file name, or full path name.
  • Syntax: %ICON{"name"}% or %ICON{"type"}%
  • Graphic samples: arrowbright arrowbright, bubble bubble, choice-yes choice-yes, hand hand
  • Filetype samples: bmp bmp, doc doc, gif gif, hlp hlp, html html, mp3 mp3, pdf pdf, ppt ppt, txt txt, xls xls, xml xml, zip zip
  • Example: %ICON{"info"}% expands to info
  • Related: TWikiPreferences, FileAttachments, TWikiDocGraphics

ICONPATH{"name"} -- url path of small documentation graphic or icon of common attachment types

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

  • Syntax: %IF{"CONDITION" then="THEN" else="ELSE"}%
  • In the example above, if CONDITION evaluates to TRUE, then THEN will be shown; otherwise ELSE will be shown.
  • Related: IfStatements has more information on how to write %IF{}% statements
  • Related: $IF() of SpreadSheetPlugin

INCLUDE{"page"} -- include other topics or web pages

  • 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/"}%
    tip if the URL resolves to an attachment file on the server this will automatically translate to a server-side include.
     
    pattern="..." A RegularExpression pattern to include a subset of a topic or page none
    rev="1.2" Include a previous topic revision; N/A for URLs top revision
    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) on preferences setting
    section="name" Includes only the specified section, as defined in the included topic by the SECTION and ENDSECTION tags  
    Any other parameters will be defined as variables within the scope of the included topic. For example, %INCLUDE{"AnotherTopic" PONE="val 1" PTWO="val 2"}% will result in %PONE% and %PTWO% being defined within the included topic.
  • Example: To include a part of a webpage, use this pattern: %INCLUDE{"http://some.page.com/index.html" pattern="^.*?BEFORE(.*)AFTER.*" }%, where BEFORE is the part of the page just before the inclusion, and AFTER is the part just after the inclusion.
  • Related: BASETOPIC, BASEWEB, INCLUDINGTOPIC, INCLUDINGWEB, IncludeTopicsAndWebPages, STARTINCLUDE, STOPINCLUDE, SECTION, ENDSECTION

INCLUDINGTOPIC -- name of topic that includes current topic

  • The name of the topic that includes the current topic - same as %TOPIC% in case there is no include
  • Syntax: %INCLUDINGTOPIC%
  • Related: BASETOPIC, INCLUDINGWEB, INCLUDE, TOPIC

INCLUDINGWEB -- web that includes current topic

  • The web name of the topic that includes the current topic - same as %WEB% if there is no INCLUDE.
  • Syntax: %INCLUDINGWEB%
  • Related: BASEWEB, INCLUDINGTOPIC, INCLUDE, WEB

LANGUAGES -- TWiki available languages

  • list the languages available (as PO files) to TWiki. Those are the languages in which TWiki's user interface is available.
  • Syntax: %LANGUAGES{...}%
  • Supported parameters:
    Parameter: Description: Default:
    format format for each item. See below for variables available in the format string. "   * $langname"
    sep separator between items. "\n" (newline)
  • format variables:
    Variable Meaning
    $langname language's name, as informed by the translators
    $langtag language's tag. Ex: en, pt-br, etc.

LOCALSITEPREFS -- web.topicname of site preferences topic

  • The full name of the local site preferences topic. This topic is read for preferences before TWiki.%TWIKIPREFSTOPIC% is read.
  • Syntax: %LOCALSITEPREFS%
  • Expands to: Main.TWikiPreferences

LOGIN -- present a full login link

LOGOUT -- present a full logout link

MAKETEXT -- creates text using TWiki's I18N infrastructure

  • 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{"Contact [_1] if you have any questions." args="%WIKIWEBMASTER%"}%
      expands to
      Contact shadow@dementia.org if you have any questions.
    • %MAKETEXT{"Did you want to [[[_1]][reset [_2]'s password]]?" args="TWiki.ResetPassword,%WIKIUSERNAME%"}%
      expands to
      Did you want to reset Main.TWikiGuest's password?
  • Note that TWiki will translate the string to the current user's language only if it has such string in its translation table for that language.

MAINWEB -- name of Main web

META -- displays meta-data

  • Provided mainly for use in templates, this variable generates the parts of the topic view that relate to meta-data (attachments, forms etc.) The formfield item is the most likely to be useful to casual users.
  • Syntax: %META{ "item" ...}%
  • Parameters:
    Item Options Description
    "formfield" name="..." - name of the field. The field value can be shortened as described in FormattedSearch for $formfield Show a single form field
    "form" none Generates the table showing the form fields. See Form Templates
    "attachments" all="on" to show hidden attachments Generates the table showing the attachments
    "moved" none Details of any topic moves
    "parent" dontrecurse="on": By default recurses up tree, this has some cost.
    nowebhome="on": Suppress WebHome.
    prefix="...": Prefix that goes before parents, but only if there are parents, default "".
    suffix="...": Suffix, only appears if there are parents, default "".
    separator="...": Separator between parents, default is " > ".
    Generates the parent link
  • Related: METASEARCH

METASEARCH -- special search of meta data

  • Syntax: %METASEARCH{...}%
  • Supported parameters:
    Parameter: Description: Default:
    type="topicmoved" What sort of search is required?
    "topicmoved" if search for a topic that may have been moved
    "parent" if searching for topics that have a specific parent i.e. its children
    "field" if searching for topics that have a particular form field value (use the name and value parameters to specify which field to search)
    required
    web="%WEB%" Wiki web to search: A web, a list of webs separated by whitespace, or all webs. current web
    topic="%TOPIC%" The topic the search relates to, for topicmoved and parent searches current topic
    name form field to search, for field type searches. May be a regular expression (see SEARCH).  
    value form field value, for field type searches. May be a regular expression (see SEARCH).  
    title="Title" Text that is prefixed to any search results empty
    default="none" Default text shown if no search hit empty
  • Example: %METASEARCH{type="topicmoved" web="%WEB%" topic="%TOPIC%" title="This topic used to exist and was moved to: "}%
  • Example: You may want to use this in WebTopicViewTemplate and WebTopicNonWikiTemplate:
    %METASEARCH{type="parent" web="%WEB%" topic="%TOPIC%" title="Children: "}%
  • Example: %METASEARCH{type="field" name="Country" value="China"}%
  • Related: SEARCH, META

NOP -- template text not to be expanded in instantiated topics

  • Syntax: %NOP%
  • Syntax: %NOP{...}%
  • Available in template topics only. See TWikiTemplates for details. In normal topic text, simply expands to whatever is in the curly braces (if anything).

NOTIFYTOPIC -- name of the notify topic

PLUGINDESCRIPTIONS -- list of plugin descriptions

  • Syntax: %PLUGINDESCRIPTIONS%
  • Expands to:
    • CommentPlugin (Dakar, 6827): Allows users to quickly post comments to a page without an edit/preview/save cycle.
    • EditTablePlugin (Dakar, 6827): Edit TWiki tables using edit fields, date pickers and drop down boxes
    • InterwikiPlugin (Dakar, $Rev: 7338$): Link ExternalSite:Page text to external sites based on aliases defined in the %RULESTOPIC% topic
    • PreferencesPlugin (Dakar, 6827): Allows editing of preferences using fields predefined in a form
    • SlideShowPlugin (Dakar, $Rev: 7338$): Create web based presentations based on topics with headings.
    • SmiliesPlugin (Dakar, 6827): Render smilies as icons, like  :-) for smile or  :cool: for :cool:
    • SpreadSheetPlugin (Dakar, 6827): Add spreadsheet calculation like "$SUM( $ABOVE() )" to tables located in TWiki topics.
    • TablePlugin (Dakar, 6850): Control attributes of tables and sorting of table columns
  • Related: ACTIVATEDPLUGINS, FAILEDPLUGINS, PLUGINVERSION

PLUGINVERSION -- the version of the TWiki Plugin API

  • This is the $TWiki::Plugins::VERSION number, also indicating the version of the Func module
  • Syntax: %PLUGINVERSION%
  • Expands to: 1.1
  • Related: PLUGINVERSION{"name"}, WIKIVERSION

PLUGINVERSION{"name"} -- the version of an installed Plugin

PUBURL -- the base URL of attachments

  • Syntax: %PUBURL%
  • Expands to: http://www.dementia.org/twiki/pub
  • Example: You can refer to a file attached to another topic with %PUBURL%/%WEB%/OtherTopic/image.gif
  • Related: ATTACHURL, PUBURLPATH, SCRIPTURL, FileAttachments

PUBURLPATH -- the base URL path of attachments

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

  • Syntax: %QUERYSTRING%
  • Expands to:
  • 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.
  • warning 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 %URLPARAM{}%.
  • Related: URLPARAM

REMOTE_ADDR -- environment variable

REMOTE_PORT -- environment variable

REMOTE_USER -- environment variable

REVINFO -- revision information of current topic

REVINFO{"format"} -- formatted revision information of topic

  • Syntax: %REVINFO{"format"}%
  • Supported parameters:
    Parameter: Description: Default:
    "format" Format of revision information, see supported variables below "r1.$rev - $date - $wikiusername"
    web="..." Name of web Current web
    topic="..." Topic name Current topic
    rev="1.5" Specific revison number Latest revision
  • Supported variables in format:
    Variable: Unit: Example
    $web Name of web Current web
    $topic Topic name Current topic
    $rev Revison number. Prefix r1. to get the usual r1.5 format 5
    $date Revision date 11 Jul 2004
    $username Login username of revision jsmith
    $wikiname WikiName of revision JohnSmith
    $wikiusername WikiName with Main web prefix Main.JohnSmith
  • Example: %REVINFO{"$date - $wikiusername" rev="1.1"}% returns revision info of first revision
  • Related: REVINFO

SCRIPTNAME -- name of current script

  • The name of the current script is shown, including script suffix, if any (for example viewauth.cgi)
  • Syntax: %SCRIPTNAME%
  • Expands to: view
  • Related: SCRIPTSUFFIX, SCRIPTURL, SCRIPTURLPATH

SCRIPTSUFFIX -- script suffix

  • Some TWiki installations require a file extension for CGI scripts, such as .pl or .cgi
  • Syntax: %SCRIPTSUFFIX%
  • Expands to:
  • Related: SCRIPTNAME, SCRIPTURL, SCRIPTURLPATH

SCRIPTURL -- script URL of TWiki

  • Syntax: %SCRIPTURL%
  • Expands to: http://www.dementia.org/twiki/bin
  • Example: To get the authenticated version of current topic write %SCRIPTURL%/viewauth%SCRIPTSUFFIX%/%WEB%/%TOPIC% which expands to http://www.dementia.org/twiki/bin/viewauth/TWiki/TWikiVariablesNtoZ
  • Related: PUBURL, SCRIPTNAME, SCRIPTSUFFIX, SCRIPTURLPATH

SCRIPTURLPATH -- script URL path of TWiki

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 or regular expression search, 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. The special word all means all webs that doe not have the NOSEARCHALL variable set to on in their WebPreferences. You can specifically exclude webs from an all search using a minus sign - for example, web="all,-Secretweb". 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. 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. None
    type="keyword"
    type="literal"
    type="regex"
    Do a keyword search like soap "web service" -shampoo; a literal search like web service; or RegularExpression search like soap;web service;!shampoo %SEARCHVAR- DEFAULTTYPE% preferences setting (literal)
    scope="topic"
    scope="text"
    scope="all"
    Search topic name (title); the text (body) of topic; or all (both) "text"
    order="topic"
    order="created"
    order="modified"
    order="editby"
    order
     "formfield(name)"=
    Sort the results of search by the topic names, topic creation time, last modified time, last editor, or named field of TWikiForms. The sorting is done web by web; in case you want to sort across webs, create a formatted table and sort it with TablePlugin's initsort Sort by topic name
    limit="all"
    limit="16"
    Limit the number of results returned. This is done after sorting if order is specified All results
    date="..." limits the results to those pages with latest edit time in the given TimeInterval. All results
    reverse="on" Reverse the direction of the search Ascending search
    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 search header
    Topics: Changed: By:
    Show search header, unless seach 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
    header="..."
    format="..."
    Custom format results: see FormattedSearch for usage, variables & examples Results in table
    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 tag on the same line will be rendered as part of the table generated by the search, if appropriate. off
    separator=", " Line separator between hits Newline "$n"
  • Example: %SEARCH{"wiki" web="Main" scope="topic"}%
  • 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%" }%
  • Related: METASEARCH, TOPICLIST, WEBLIST, FormattedSearch

SECTION{"name"} -- Marks the start of a named section

SERVERTIME -- server time

SERVERTIME{"format"} -- formatted server time

  • Same format qualifiers as %GMTIME%
  • Syntax: %SERVERTIME{"format"}%
  • Example: %SERVERTIME{"$hou:$min"}% expands to 19:56
  • warning Note: 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.
  • Related: DISPLAYTIME, GMTIME, SERVERTIME

SESSION_VARIABLE -- get, set or clear a session variable

SESSIONID -- unique ID for this session

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

SPACEDTOPIC -- topic name, spaced and URL-encoded

  • The current topic name with added spaces, for regular expression search of backlinks
  • Syntax: %SPACEDTOPIC%
  • Expands to: T%20*Wiki%20*Variables%20*Nto%20*Z
  • tip Hint: This variable is provided almost exclusively for generating URLs for searching for backlinks to topics
  • Related: TOPIC

STARTINCLUDE -- start position of topic text if included

  • If present in included topic, start to include text from this location up to the end, or up to the location of the %STOPINCLUDE% variable. A normal view of the topic shows everything exept the %STARTINCLUDE% variable itself. An optional parameter can be used to control whether the content is expanded.
  • Syntax: %STARTINCLUDE%
  • Syntax: %STARTINCLUDE{param}%
    • If param does not expand to a non-zero integer, then nothing will be included.
  • Related: INCLUDE, STOPINCLUDE

STATISTICSTOPIC -- name of statistics topic

STOPINCLUDE -- end position of topic text if included

  • If present in included topic, stop to include text at this location and ignore the remaining text. A normal view of the topic shows everyting exept the %STOPINCLUDE% variable itself.
  • Syntax: %STOPINCLUDE%
  • Related: INCLUDE, STARTINCLUDE

TOC -- table of contents of current topic

TOC{"Topic"} -- table of contents

  • Syntax: %TOC{"SomeTopic" ...}%
  • Table of Contents. Shows a TOC that is generated automatically based on headings of a topic. Headings in WikiSyntax ("---++ text") and HTML ("<h2>text</h2>") are taken into account. Any heading text after "!!" is excluded from the TOC; for example, write "---+!! text" if you do not want to list a header in the TOC
  • Supported parameters:
    Parameter: Description: Default:
    "TopicName" topic name Current topic
    web="Name" Name of web Current web
    depth="2" Limit depth of headings shown in TOC 6
    title="Some text" Title to appear at top of TOC none
  • Example: %TOC{depth="2"}%
  • Example: %TOC{"TWikiDocumentation" web="TWiki" title="Contents:"}%
  • Example: see TWiki:Sandbox.TestTopicInclude
  • tip Hint: TOC will generate links to the headings, so when a reader clicks on a heading it will jump straight where that heading is anchored in the text. If you have two headings with exactly the same text, then their anchors will also be identical and they won't be able to jump to them. To make the anchors unique, you can add an invisible HTML comment to the text of the heading. This will be hidden in normal view, but will force the anchors to be different. For example, ---+ Heading <!--5-->.
  • Related: TOC

TOPIC -- name of current topic

TOPICLIST{"format"} -- topic index of a web

  • The "format" defines the format of one topic item. It may include variables: The $name variable gets expanded to the topic name; the $web variable gets expanded to the name of the web.
  • Syntax: %TOPICLIST{"format" ...}%
  • Supported parameters:
    Parameter: Description: Default:
    "format" Format of one line, may include $name and $web variables "$name"
    format="format" (Alternative to above) "$name"
    separator=", " line separator "\n" (new line)
    web="Name" Name of web Current web
  • Example: %TOPICLIST{"   * $web.$name"}% creates a bullet list of all topics
  • Example: %TOPICLIST{separator=", "}% creates a comma separated list of all topics
  • Example: %TOPICLIST{" <option>$name</option>"}% creates an option list (for drop down menus)
  • Related: SEARCH, WEBLIST

TWIKIWEB -- name of TWiki documentation web

  • The web containing all documentation and site-wide preference settings for TWiki
  • Syntax: %TWIKIWEB%
  • Expands to: TWiki
  • Related: MAINWEB

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
    default="..." Default value in case parameter is empty or missing empty string
    newline="<br />" Convert newlines in textarea to other delimiters no conversion
    encode="entity" Encode special characters into HTML entities, like a double quote into &#034;. This is needed if text is put into an HTML form field no encoding
    encode="url" Encode special characters for URL parameter use, like a double quote into %22 no encoding
    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" (new line)
  • Example: %URLPARAM{"skin"}% returns print for a .../view/TWiki/TWikiVariablesNtoZ?skin=print URL.
  • warning Note: 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.
  • warning Note: There is a risk that this variable could be misused for cross-site scripting.
  • Related: SEARCH, FormattedSearch, QUERYSTRING

USERNAME -- your login username

  • TWiki makes names available in three formats: USERNAME like jsmith, WIKINAME like JohnSmith and WIKIUSERNAME like Main.JohnSmith. Un-authenticated users are all TWikiGuest.
  • Syntax: %USERNAME%
  • Expands to: guest
  • warning Note: 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.
  • Related: REMOTE_USER, WIKINAME, WIKIUSERNAME, TWikiUserAuthentication

USERLANGUAGE -- current user's language

  • Returns the language code for the language used as the current user. This is the language actually used by TWiki Internationalization (e.g. in user interface).
  • The language is detected from the user's browser, unless some site/web/user/session-defined setting overrides it:
    • Is the LANGUAGE preference is set, it's used as user's language instead of any language detected from the browser.
    • Avoid to define it LANGUAGE at a non per-user way, so each user can choose his/her preferred language.
  • Related: LANGUAGES

VAR{"NAME" web="Web"} -- get a preference value from another web

  • Syntax: %VAR{"NAME" web="Web"}%
  • Example: To get %WEB