Plantilla:If pagename

De Wikipedia, la enciclopedia libre


Icono de documentación de plantilla Documentación de la plantilla[ver] [editar] [historial] [purgar]


Esta es la metaplantilla {{If pagename}}. Esta metaplantilla está diseñada para ayudar a otras plantillas a detectar en que clase de página se encuentran, utilizando para ello las coincidencias con la ruta URL donde se encuentra la página.

Uso

Esta plantilla toma uno o más parámetros. La mayor parte de estos parámetros no tienen un nombre fijo, en su lugar forman parte de una coincidencia de ruta, como la siguiente:

{{If pagename
| /doc = Texto de una página de documentación
| other = Texto de otro tipo de páginas
}}

Si la plantilla se encuentra en "Plantilla:Ejemplo/doc" el código sobre estas líneas devuelve:

Texto de otro tipo de páginas

Si la plantilla se encuentra en otro tipo de páginas diferentes a una página /doc devuelve lo siguiente:

Texto de otro tipo de páginas

Aquí hay una descripción de las coincidencias de ruta:

{{If pagename
<!-- Coincidencia total con la ruta -->
 | Uuario:Ejemplo/test = Texto para "Usuario:Ejemplo/test".
 | Usuario:Ejemplo = Texto para "Usuario:Ejemplo".
 | Usuario discusión:Ejemplo = Texto para "Usuario discusión:Ejemplo".

<!-- Coincidencia total con el nombre de una página de base, cuando está en una página o alguna de sus subpáginas -->
 | Usuario:Ejemplo/+ = Empareja con "Usuario:Ejemplo" y con "Usuario:Ejemplo/test".

<!-- Coincidencia con una página en el espacio de nombres, cuando se está en la página base -->
 | Ejemplo = Empareja con "Usuario:Ejemplo", "Usuario discusión:Ejemplo", "Plantilla:Ejemplo" 
             y asi, pero no con "Usuario:Ejemplo/alguna_cosa".

<!-- Coincidencia con el nombre completo de la página de base, cuando está en una subpágina -->
 | Usuario:Ejemplo/* = Empareja con "Usuario:Ejemplo/alguna cosa", pero no con "Usuario:Ejemplo".
 | Usuario discusión:Ejemplo/* = Empareja con "Usuario discusión:Ejemplo/alguna cosa".

<!-- Coincidencia con el nombre de la página base, cuando se está en una subpágina -->
 | Ejemplo/* = Coincide con "Usuario:Ejemplo/alguna cosa" y con "Usuario discusión:Ejemplo/alguna cosa".

<!-- Coincidencia con el nombre de alguna subpágina -->
 | /alguna cosa = Cualquier página que termine en "/alguna cosa".
 | /doc = Any pagename that ends in "/doc".

<!-- Coincidencia con el nombre parcial de alguan subpágina (insensible a mayúsculas) -->
 | /algo* = Cualquier subpágina que comience con "/algo" o "/Algo".
 | /arch* = Coincide con  "Usuario discusión:Ejemplo/Archivo 1".

<!-- Por defecto -->
 | basepage = Texto si se encuentra en cualquier página de base.
 | subpage = Texto si se encuentra en cualquier subpágina.
 | other = Texto para cualquier página.
}}

La búsqueda de coincidencias se realiza de arriba hacia abajo, y devuelve el primer parámetro que coincida. "de arriba a abajo" significa en el orden mostrado anteriormente, no en el orden en que se introducen los parámetros.

No hay límite para el número de parámetros que se pueden utilizar, a no ser aquellos que los servidores de MediaWiki puedan manejar.

La mayor parte de la búsqueda de coincidencias es sensible a mayúsculas. Por ejemplo "/prueba" empareja con "Usuario:Ejemplo/prueba" pero no con "Usuario:Ejemplo/Prueba".

La coincidencia parcial con el nombre de una subpágina, tal como por ejemplo "/algo*" tiene algunas limitaciones, véase su correspondiente sección más abajo.

Si se produce una coincidencia con un parámetro vacío, la búsqueda de coincidencias termina y la plantilla devuelve una cadena vacía. Esto es así a propósito, y puede utilizarse por ejemplo del siguiente modo:

{{If pagename
 | /doc =
 | /taller = Texto para la página Taller
 | other = Texto para otro tipo de páginas
}}

El código anterior devuelve un espacio vacío cuando la plantilla se encuentra en una página /doc. Pero cuando se encuentra en una página /taller devuelve lo siguiente:

Texto para la página Taller

Y cuando se encuentra en cualquier otro tipo de páginas devuelve lo siguiente:

Texto para otro tipo de páginas

Nombres parciales de subpáginas

Esta plantilla puede también buscar coincidencias parciales con los nombres de subpáginas. Como este:

{{If pagename
 | /archiv* = Texto de una página de archivo
 | other = Texto de otro tipo de páginas
}}

Si se encuentra en "Usuario:Ejemplo/Archivo 1" el anterior código devuelve:

Texto de una página de archivo

The parameter name "/some*" must be lower case. But it matches subpage names in both upper and lower case such as "User:Example/SomeThing" and "User:Example/something".

The partial matching only supports matching on 4, 6 and 8 characters. Thus using "/some*", "/someth*" and "/somethin*" works, but using "/som*" or "/somet*" doesn't work.

Longer patterns match first, thus if both "/somethin*" and "/some*" are defined, and the current page is "User:Example/Something", then the data from "/somethin*" will be used.

"page" parameter

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:

Test pages text

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|}}}
}}

Technical details

This template detects subpages even when used in namespaces that don't have the MediaWiki subpage feature enabled. Thus this template works the same in all namespaces.

For more technical details, see the talk page.
Esta documentación está transcluida desde Plantilla:If pagename/doc.
Los editores pueden experimentar en la zona de pruebas (crear) y en los casos de prueba (crear) de la plantilla.
Por favor, añade las categorías en la subpágina de documentación. Subpáginas de esta plantilla.