Thank you for visiting SotAwiki, a Shroud of the Avatar Wiki Encyclopedia. If you see any information that is outdated, please take the time to update it, or if you prefer, leave a message for other editors. This community wiki is for the benefit of all Avatars!
Template:If pagename
This template helps other templates detect what page they are on. It uses pattern matching on the pagename. Usage[edit]This template takes one or more parameters. Most of the parameters don't have fixed names, instead they are part of the pattern matching. Like this: {{if pagename | /doc = Doc page text | other = Other pages text }} If the template is on "Template:Example/doc" the code above will return this:
If the template is on any other page than a /doc page it will return this:
Here is a description of the full pattern matching: {{if pagename <!-- Match on full pagename --> | User:Example/test = Text for "User:Example/test". | User:Example = Text for "User:Example". | User talk:Example = Text for "User talk:Example". <!-- Match on full basepage name, when on a basepage or its subpages --> | User:Example/+ = Matches "User:Example" and "User:Example/test". <!-- Match on pagename, when on a basepage --> | Example = Matches "User:Example", "User talk:Example", "Template:Example" and so on, but not "User:Example/something". <!-- Match on full basepage name, when on a subpage --> | User:Example/* = Matches "User:Example/something", but not "User:Example". | User talk:Example/* = Matches "User talk:Example/something". <!-- Match on basepage name, when on a subpage --> | Example/* = Matches "User:Example/something" and "User talk:Example/something". <!-- Match on subpage name --> | /something = Any pagename that ends in "/something". | /doc = Any pagename that ends in "/doc". <!-- Match on partial subpage name (case-insensitive) --> | /some* = Any subpage name beginning with "/some" or "/Some". | /arch* = Matches "User talk:Example/Archive 1". <!-- Default fallbacks --> | basepage = Text for any basepage. | subpage = Text for any subpage. | other = Text for any page. }} The matching goes from top to bottom, and returns the first parameter that matches. "Top to bottom" means the order shown above, not the order you happen to feed the parameters. There's no limit to the number of parameters that you can use, other than what the servers and MediaWiki system can handle. Most of the matching is case-sensitive. For instance " Matching on partial subpage names such as " If an empty (but defined) parameter matches, the matching stops and the template returns an empty string. That's on purpose and can be used like this: {{if pagename | /doc = | /sandbox = Sandbox text | other = Other pages text }} The code above will render nothing when on a /doc page. But when on a /sandbox page it will return this:
And when on any other page it will return this:
Partial subpage names[edit]This template can also match on partial subpage names. Like this: {{if pagename | /archiv* = Archive page text | other = Other pages text }} If on "User:Example/Archive 1" the code above will return this:
The parameter name " The partial matching only supports matching on 4, 6 and 8 characters. Thus using " Longer patterns match first, thus if both " The "page" parameter[edit]For testing and demonstration purposes this template can take a parameter named page. Like this: {{if pagename | /test = Test pages text | other = Other pages text | page = Template:Example/test }} No matter on what kind of page the code above is used it will return this:
The page parameter makes this template behave exactly as if on that page. The pagename doesn't have to be an existing page. If the page parameter is empty or undefined, the name of the current page determines the result. You can make it so your template also understands the page parameter. That means you can demonstrate the different appearances of your template in the documentation for your template. Then do like this: {{if pagename | /test = Test pages text | other = Other pages text | page = {{{page|}}} }} Namespace matching[edit]This template doesn't have namespace matching. If you need that then combine this template with one of the namespace-detection templates. Like this: {{template other | {{if pagename | /doc = Template doc page text. }} | <!-- Other space, do nothing --> }} If on "User:Example/doc" the code above will return nothing. Technical details[edit]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. Source: [1]
|
Visit Template:If pagename/doc to edit this text! (How does this work?) |
---|