Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Basic usage  





2 Usage example  



2.1  Additional code  





2.2  Technical details  



2.2.1  Numbered parameters and HTML tables  





2.2.2  Comparison  





2.2.3  Copying to other projects?  







2.3  CSS namespace detection  
















Template:Main talk other






العربية
تۆرکجه
Basa Bali
فارسی
Føroyskt
Frysk
Bahasa Hulontalo
Igbo
Bahasa Indonesia

Latina
Limburgs
Монгол

ି
Simple English
 
Zazaki

 

Edit links
 









Template
Talk
 

















Read
View source
View history
 








Tools
   


Actions  



Read
View source
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 





Permanently protected template

From Wikipedia, the free encyclopedia
 



This template is used inside other templates that need to behave differently (usually look differently) depending on what type of page they are on. It detects and groups all the different namespaces used on Wikipedia into three types:

main = Main/article space, as in normal Wikipedia articles.
talk = Any talk space, such as page names that start with "Talk:", "User talk:", "File talk:" and so on.
other = All other spaces, such as page names that start with "User:", "File:", "Wikipedia:" and so on.

This page is also the documentation for some other templates:

Basic usage

This template usually takes three parameters, and returns one of them depending on which type a page belongs to. Like this:

{{main talk other|Article text|Talk page text|Other pages text}}

If the template is on a main space (article) page, it will return this:

Article text

If the template is on any talk page, it will return this:

Talk page text

If the template is on any other page (such as this template page and its doc page), it will return this:

Other pages text

If you only feed a parameter for one or two of the types then this template returns an empty string for the rest of the types. That is, if it for instance is used in one of these ways:

{{main talk other|Talk text}}
{{main talk other|Talk text}}

Then it doesn't render anything in mainspace and other space.

If this template is used without any parameters or only fed empty parameters (empty strings), then it returns an empty string. That is, then it renders nothing.

For testing and demonstration purposes these templates can take a parameter named demospace: if it has any of the values main, talkorother it makes the template behave as if it is on a page of that type; if the parameter is empty or undefined, the actual page type determines the result.

Usage example

This example creates a message box, but these templates can of course be used for many other things than message boxes. This example uses numbered parameters and HTML tables, for the reasons why see the technical details section below.

{{main talk other
| 1 = ''This messagebox should not be used in articles.''
| 2 = {{tmbox|text=Talk page notice}}
| 3 = {{ombox|text=Other pages notice}}
}}

Which renders like this:

Let's see how it looks on talk pages. So we change the first line in the code to this:

{{main talk other|demospace=talk

This is how it will render on any talk page:

And now let's test it for article pages:

{{main talk other|demospace=main

This is how it will render in an article:

This messagebox should not be used in articles.

Additional code

To make this example complete, here is the rest of the code that is needed to make it a fully equipped template:

{{main talk other
| demospace = {{{demospace|}}}
| 1 = 
| 2 = 
| 3 = 
}}<noinclude>

{{documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>

The line "| demospace = {{{demospace|}}}" means that your template also will understand the demospace parameter. That means you can demonstrate the different appearances of your template in the documentation for your template.

The "{{documentation}}" template creates a green documentation box, like the one you are reading in right now.

Technical details

Numbered parameters and HTML tables

All template invocations break when receiving unnamed parameters containing equal signs "=". The easy solution is using numbered parameters, such as "1=First parameter" and "2=Second parameter".

They also break with parameter values containing pipes "|", unless the pipe is inside another template {{name|param1}} or inside a piped link [[Help:Template|help]]. Thus templates cannot receive wikitables unless you escape them by using the {{!}} template. This makes it hard to use wikitables as parameters to templates. Instead the usual solution is to use "HTML wikimarkup" for the table code, which is more robust.

The simplest way to include tables that use wikimarkup is to transclude them as a subtemplate.

Comparison

{{main talk other}} and {{main talk other flex}} behaves exactly the same but internally uses different code:

{{#ifeq:{{NAMESPACE}}|{{TALKSPACE}}| talk | not talk }}
{{#ifeq:{{NAMESPACE}}|{{ns:0}}| main | not main }}

So if you just need to detect main, talk and other then use {{main talk other}}. But if you want to detect other combinations then copy the code from {{main talk other flex}}.

Copying to other projects?

If you copy these templates to another language Wikipedia or other Wikimedia project, then {{main talk other}} should work as is, but you probably want to update the template's name and its parameter names to your local namespace naming. But you must update the code of {{main talk category other}} and {{main talk other flex}} to your local naming and add any extra namespaces that are local to your wiki, otherwise they will malfunction.

CSS namespace detection

CSS code can be used instead of these templates to detect namespaces. This can be used for those things that can be coded as CSS, such as colours and borders. See example on the talk page.


Retrieved from "https://en.wikipedia.org/w/index.php?title=Template:Main_talk_other&oldid=1058913601"

Categories: 
Talk message boxes
Namespace manipulation templates
Hidden categories: 
Wikipedia template-protected templates
Navboxes using background colours
 



This page was last edited on 6 December 2021, at 09:54 (UTC).

Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



Privacy policy

About Wikipedia

Disclaimers

Contact Wikipedia

Code of Conduct

Developers

Statistics

Cookie statement

Mobile view



Wikimedia Foundation
Powered by MediaWiki