Template:When on basepage/doc: Difference between revisions
meta>Davidgothberg Adding sections "Demospace" and "Technical details". |
meta>Davidgothberg Adding more "Technical details". |
||
Line 4: | Line 4: | ||
This is the {{tl|basepage subpage}} meta-template. | This is the {{tl|basepage subpage}} meta-template. | ||
This template helps other templates detect if they are on a '''basepage''', | This template helps other templates detect if they are on a '''basepage''', '''subpage''' or '''subsubpage'''. | ||
=== Usage === | === Usage === | ||
Line 110: | Line 110: | ||
This template detects subpages even when used in namespaces that doesn't have the Mediawiki "subpage feature" enabled. Thus this template works the same in all namespaces. | This template detects subpages even when used in namespaces that doesn't have the Mediawiki "subpage feature" enabled. Thus this template works the same in all namespaces. | ||
Templates have a problem to handle parameter data that contains equal signs "<code>=</code>". But that is easily solved by using numbered parameters. Like this: | |||
<pre> | |||
{{basepage subpage | |||
| 1 = Basepage text | |||
| 2 = Subpage text | |||
| 3 = Subsubpage text | |||
| demospace = {{{demospace|}}} | |||
}} | |||
</pre> | |||
=== See also === | === See also === |
Revision as of 00:53, 4 November 2009
This is a documentation subpage for Template:When on basepage. It may contain usage information, categories and other content that is not part of the original template page. |
This is the {{basepage subpage}} meta-template.
This template helps other templates detect if they are on a basepage, subpage or subsubpage.
Usage
This template takes one or more parameters, like this:
{{basepage subpage | Basepage text | Subpage text }}
If the template is on the page "User:Example", it will return this:
- Subpage text
If the template is on "User:Example/test" or "User:Example/test/test" or any page lower than that, it will return this:
- Subpage text
This template can also detect "subsubpages", like this:
{{basepage subpage | Basepage text | Subpage text | Subsubpage text }}
If the template is on "User:Example/test/test" or any page lower than that, it will return this:
- Subpage text
By using an empty parameter you can make it so the template doesn't render anything for some specific page type. Like this:
{{basepage subpage | Basepage text | Subpage text | }}
The code above will render nothing when on "User:Example/test/test" or lower, but will return this when on "User:Example/test":
- Subpage text
Demospace
For testing and demonstration purposes this template can take a parameter named demospace.
- If it has the value basepage it returns the basepage text.
- It if has the value subpage it returns the subpage text.
- It if has the value subsubpage it returns the subsubpage text if there is one, otherwise it returns the subpage text.
- If the parameter is empty or undefined, the actual page type determines the result.
Like this:
{{basepage subpage | Basepage text | Subpage text | demospace = subpage }}
No matter on what kind of page the code above is used it will return this:
- Subpage text
You can make it so your template also understands the demospace parameter. That means you can demonstrate the different appearances of your template in the documentation for your template. Then do like this:
{{basepage subpage | Basepage text | Subpage text | demospace = {{{demospace|}}} }}
Technical details
This template detects subpages even when used in namespaces that doesn't have the Mediawiki "subpage feature" enabled. Thus this template works the same in all namespaces.
Templates have a problem to handle parameter data that contains equal signs "=
". But that is easily solved by using numbered parameters. Like this:
{{basepage subpage | 1 = Basepage text | 2 = Subpage text | 3 = Subsubpage text | demospace = {{{demospace|}}} }}