Help:Variable
From Wikipedia, the free encyclopedia
This is a copy of the master help page at Meta. Do not edit this copy.
Edits will be lost in the next update from the master page. See below for more information.
A variable can be considered a predefined template without parameters. See also Help:Parser function.
This is a list of variables that can be used in the wikitext. The way they are rendered vary with time (directly depending on time, or e.g. for number of articles, depending on the creation of other articles), on the project (it changes when the wikitext is copied), or on the page in which it occurs (it changes when the wikitext is copied, when the page is renamed, and when the page is included in another page).
On the left is the variable, on the right how it is rendered at this time, in this project, on this page.
The names of the variables form part of the set of so-called "magic words" the system uses.
With Special:ExpandTemplates one can view the value of a variable, or more generally, the expanded wikitext a variable or a wikitext with variables and/or template calls produces, as intermediate step toward rendering.
Contents |
Constants
{{SITENAME}} |
Wikipedia | |
{{SERVER}} |
http://en.wikipedia.org | |
{{SERVERNAME}} |
srv42 | |
{{CONTENTLANGUAGE}} |
en | code of the site's default interface language ($wgLanguageCode) |
Depending on page
Word | Example | Explanation |
---|---|---|
{{PAGENAME}} | Variable |
Returns the name of the current page, including all levels (Title/Subtitle). |
{{PAGENAMEE}} | Variable |
More URL-friendly percent encoded special characters (To use an articlename in an external link). |
{{SUBPAGENAME}} {{SUBPAGENAMEE}} |
Variable |
[MW1.6+] Name of the current page, excluding parent pages ("Subtitle" on "Title/Other/Subtitle") in namespaces supporting subpages, see Help:Link. |
{{BASEPAGENAME}} {{BASEPAGENAMEE}} |
Variable |
[MW1.7+] The basename of a subpage ("Title/Other" on "Title/Other/Subtitle"), see Help:Link. |
{{NAMESPACE}} {{NAMESPACEE}} |
Help |
Returns the name of the namespace the current page resides in. |
{{FULLPAGENAME}} {{FULLPAGENAMEE}} |
Help:Variable |
[MW1.6+] Shorthands for NAMESPACE+PAGENAME |
{{TALKSPACE}} {{TALKSPACEE}} |
Help talk |
[MW1.7+] Name of next odd namespace (e.g. 4 => 5) |
{{SUBJECTSPACE}} {{SUBJECTSPACEE}} |
Help |
[MW1.7+] Name of last even namespace (e.g. 5 => 4) |
{{ARTICLESPACE}} {{ARTICLESPACEE}} |
Help |
[MW1.7+] An alias for SUBJECTSPACE(E) |
{{TALKPAGENAME}} {{TALKPAGENAMEE}} |
Help talk:Variable |
[MW1.7+] FULLPAGENAME in its TALKSPACE |
{{SUBJECTPAGENAME}} {{SUBJECTPAGENAMEE}} |
Help:Variable |
[MW1.7+] FULLPAGENAME in its SUBJECTSPACE |
{{ARTICLEPAGENAME}} {{ARTICLEPAGENAMEE}} |
Help:Variable |
[MW1.7+] An alias for SUBJECTPAGENAME(E) |
{{REVISIONID}} | 110794729 |
[MW1.5+] The unique identifying number of a page, see Help:Diff. Note that when editing a page, this value is null. |
{{REVISIONDAY}} | 25 |
[MW1.8+] The day on which the page was last modified. |
{{REVISIONDAY2}} | 25 |
[MW1.8+] The day on which the page was last modified, but with a leading zero (01 .. 31). |
{{REVISIONMONTH}} | 2 |
[MW1.8+] The month in which the page was last modified. |
{{REVISIONYEAR}} | 2007 |
[MW1.8+] The year in which the page was last modified. |
{{REVISIONTIMESTAMP}} | 20070225091124 |
[MW1.8+] ISO 8601 time stamp, indicating when the page was last modified. |
{{SITENAME}} | Wikipedia |
Value of $wgSitename. |
{{SERVER}} | http://en.wikipedia.org | Value of $wgServer |
{{SCRIPTPATH}} | /w |
[MW1.5+] $wgScriptPath |
{{SERVERNAME}} | srv42 |
[MW1.5+] $wgServerName |
For the rendering on page A, these variables depend on page A, even if page A contains the variable due to inclusion of page B. Variables in the sort key of a category tag refer to the page with the tag, not the category page where it takes effect.
{{NAMESPACE}} and {{NAMESPACEE}} return an empty string in the article namespace {{ns:0}}, see above and NS:0.
PAGENAMEE displays the page title in the form that is used in URLs, i.e. with underscores for spaces, and percent-encoding for special characters, and is therefore used for constructing URLs incl. query strings.
For example, on Template talk:!, SUBJECTPAGENAMEE would produce Template:%21. Don't encode PAGENAMEE etc. again, i.e. don't use it in the first parameter of fullurl: and similar parser functions, {{urlencode:%21}} = %2521 probably won't work as expected. Query strings in PURL redirections are an exception.
The "EE" encoding examples shown above for this page are not very interesting, only TALKPAGENAMEE and TALKSPACEE differ from TALKPAGENAME and TALKSPACE. See Help:Link and Help:Magic words for other examples.
In a subpage, [[../]] renders as a link to the parent page. For example, on m:Link/a/b it gives an internal link to m:Link/a, see Help:Link#Subpage feature.
{{ REVISIONID
}} = 110794729 showing the current unique revision number of a saved page as used for diffs in the page history is in essence useless, it can't be substituted and also doesn't work in preview.
Varying with time
Time
The time in UTC. Note that if the page was displayed by the same user and has not changed (page has not been edited) since the last time it was displayed, it is possible that the page may be cached (by the user's browser) and the displayed time or date may not change. Also, if a heavily used page, rather than freshly rendered by the software each time it is generated, is instead being retrieved from a caching system (such as the main page on Wikipedia) the date or time may not change from the last time the page was originally retrieved by the caching hardware or software. Template:H:Current time variables
Local time
The time depending on the local timezone of the wiki (not depending on the timezone in the user's preference settings). (All words [MW1.8+] ) Template:H:Local time variables
- See also the ParserFunction #time:
Time variables which change more often than once a day are generally useful only as curiosities. Because of the way article HTML is cached, these variables may be wrong by up to 24 hours, and so are not a reliable way to tell the user the current time.
Please note that a template using more than one CURRENT variable directly or indirectly is suspicious. There can be critical races near hh:mm:59. The following code to determine the minute can produce spurious results if the timestamp changes during the evaluation: {{#expr:(( {{CURRENTTIMESTAMP}}-{{CURRENTTIMESTAMP}} mod 100)/100) mod 100}} = 13
This is actually an intermittent bug with MOD depending on the size (not the value) of CURRENTTIMESTAMP, see m:Template:CURRENTMINUTE (talk, backlinks, edit).
- CURRENTDOW
- 0=Sunday, 1=Monday, .. 6=Saturday.
- CURRENTWEEK
- is the number of the current week (1-53) according to ISO 8601 with no leading zero.
- CURRENTDAY2
- adds a leading zero to days 1...9, this allows to construct the ISO date formats like 2007-04-09T14:29Z.
- CURRENTMONTHNAMEGEN
- is the genitive grammatical form of the month name (used in Finnish [unclear] and in Slovenian).
- NUMBEROFARTICLES
- see Help:Article count and Special:Statistics..
Statistics
See Statistics.
Substitution
- Main article: Help:Substitution
When {{<includeonly>subst:</includeonly>CURRENTTIMESTAMP}}
is included and thereby substituted, the timestamp of doing that is put in the wikitext, and similarly for other variables. Examples:
{{CURRENTTIMESTAMP}}
- 20070409141354 - stays a variable on pages including the template
{{subst:CURRENTTIMESTAMP}}
- 20060526024210 - became a substituted constant in the template
{{<includeonly>subst:</includeonly>CURRENTTIMESTAMP}}
- 20070409141354 - becomes a constant at the time of its inclusion
Templates with the "includeonly subst magic" must also be subst-ed.
Examples of combinations with parser functions
{{fullurl:{{FULLPAGENAME}}|action=edit}}
- http://en.wikipedia.org../../../v/a/r/Help%7EVariable_6261.html
{{fullurl:w:en:Special:Whatlinkshere|target={{NAMESPACE}}:Contents}}
- http://en.wikipedia.org/wiki/en:Special:Whatlinkshere?target=Help:Contents
{{fullurl:m:Special:Whatlinkshere|target={{FULLPAGENAME}}}}
- http://meta.wikimedia.org/wiki/Special:Whatlinkshere?target=Help:Variable
{{fullurl:{{FULLPAGENAME}}|action=edit}}
- http://en.wikipedia.org../../../v/a/r/Help%7EVariable_6261.html
[[{{NAMESPACE}} talk:{{PAGENAME}}]]
- Help talk:Variable
{{fullurl:{{NAMESPACE}} talk:{{PAGENAME}}}}
- http://en.wikipedia.org../../../v/a/r/Help_talk%7EVariable_93b5.html
The old form {{SERVER}}{{localurl:
page }}
is in essence the same as {{fullurl:
page }}
in recent (1.5+) versions of the software.
In a template, for a link to a page which depends on a template parameter, the external link style is used even for internal links, to avoid that the system links to the edit page even if the page exists. To construct the external link, variables can also be useful.
Variable in the form of a template call
If the syntax of a template call with parameters is applied with the name of a variable, depending on the variable the parameters are either ignored or cause the variable to be interpreted as a (non-existing) template:
- Variables like {{NUMBEROFPAGES:R}} = 8336479 with a "raw" format are always handled as variable, {{NUMBEROFPAGES:R|Para|meter}} = 8336479.
- Other variables like {{CURRENTDAYNAME}} = Monday are handled as template for given parameter(s), {{CURRENTDAYNAME|x}} = Template:CURRENTDAYNAME.
- Parser functions like {{lc: Lower Case}} = lower case ignore extraneous parameters, {{lc: Lower|Case}} = lower.
- Parser function ns (e.g. {{ns: 1}} = Talk) gives an empty string for a non-applicable numerical parameter value, and evaluates in the case of a non-numerical parameter value as template (the template name being the whole text until "|" or "}}"):
- {{ns: 1234}} =
- {{ns: t|abc}} = Template:Ns: t
- Parser functions like fullurl don't support the ../ notation, and in namespaces supporting subpages this has odd effects: like above, they evaluate such an invalid parameter value as template, see Link/a and Link/a/b. Here it just renders the wikitext:
- {{fullurl:../a}} = Template:Fullurl:../a.
- The cases #2, #4, and #5 resulting in template calls are probably related.
Adding new variables
A simple means of adding new MediaWiki variables is to add the following code to the LocalSettings.php file. This code also adds two example variables, CURRENTUSER and LOGO. It uses the ParserGetVariableValueSwitch hook which was added into MediaWiki 1.60, so for earlier versions you will have to add the hook manually into the /includes/Parser.php script in the getVariableValue function (see this example for details on that process).
# Add new variables CURRENTUSER and LOGO to MediaWiki environment foreach(array('CURRENTUSER','LOGO') as $name) { $wgVariableIDs[] = $index = count($magicWords); define($magicWords[] = "MAG_$name",$index); $wgMagicWordsEn[$index] = array(1,$name); } # Define functionality of new vars $wgHooks['ParserGetVariableValueSwitch'][] = 'GetVariable'; function GetVariable(&$this,&$cache,&$index,&$ret) { if ($index == MAG_CURRENTUSER) $ret = $GLOBALS['wgUser']->mName; # CURRENT USER else if ($index == MAG_LOGO) $ret = $GLOBALS['wgLogo']; # LOGO return true; }
See also
- Help:Parser function - a way of integrating with the parser more tightly since version 1.7.0
- Help:Substitution - on applying "subst" to a variable or to a template using a variable
- MagicWord.php
edit |
Wikipedia-specific help
As shown above Wikipedia has only two customized namespaces:
{{ns:100}} Portal {{ns:101}} Portal_talk
They can be also used by their name:
{{ns:{{ns:100}}}} Portal {{ns:{{ns:101}}}} Portal_talk
This page is a copy of the master help page at Meta (for general help information all Wikimedia projects can use), with two Wikipedia-specific templates inserted. To update the main text, edit the master help page for all projects at m:Help:Variable. For Wikipedia-specific issues, use Template:Ph:Variable (the extra text at the bottom of this page) or Template:Phh:Variable for a Wikipedia-specific lead (text appears at the top of this page). You are welcome to copy the exact wikitext from the master page at Meta and paste it into this page at any time. To view this page in other languages see the master page at Meta.