Ayuda:Tablas condicionales

De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a buscar

ParserFunctions permite la visualización condicional de filas, columnas o celdas de la tabla (y en realidad, casi cualquier otra cosa). Pero las funciones de Parser tienen algunos límites.

Uso básico

El siguiente ejemplo muestra un uso básico #ifque está disponible en la extensión ParserFunctions :

{{#si: {{{ variable_foo| }}} 
 |foo se establece en ''' {{{ variable_foo }}} ''' 
 |foo está '' en blanco '' }}

Aquí, {{{variable_foo}}}se verifica para ver si está definido con un valor que no esté en blanco. La siguiente tabla muestra el resultado de una llamada de plantilla (llamaremos a la plantilla ) con diferentes valores para : {{Conditional tables/example 1}}{{{variable_foo}}}

Llamada de plantilla Resultado
{{Conditional tables/example 1}} Foo está en blanco
{{Conditional tables/example 1|variable_foo=}} Foo está en blanco
{{Conditional tables/example 1|variable_foo=value}} foo se establece en valor

Los parámetros posicionales, {{{1}}}etc. funcionan como parámetros con nombre:

{{#si: {{{ 1| }}} 
 |El primer parámetro es ''' {{{ 1 }}} ''' 
 |El primer parámetro está '' en blanco '' }}
Llamada de plantilla Resultado
{{Conditional tables/example 1b||bar}} El primer parámetro está en blanco
{{Conditional tables/example 1b|foo|bar}} El primer parámetro es foo
{{Conditional tables/example 1b|[[m:|not empty]]}} El primer parámetro no está vacío
{{Conditional tables/example 1b|bad=idea}} El primer parámetro está en blanco
{{Conditional tables/example 1b|1=ok=yes}} 1er parámetro está bien = sí

Tenga en cuenta cómo funciona el símbolo de tubería (barra vertical) en el enlace tal cual, no es tan fácil dentro de las tablas Wiki, consulte a continuación.

Ocultar filas por completo

También es posible ocultar filas de datos dentro de una tabla; sin embargo, hay problemas que debe tener en cuenta.

uso incorrecto

Desafortunadamente #if, la sintaxis de la tabla de MediaWiki no funciona bien en conjunto. Por ejemplo, lo siguiente, {{ Conditional tables/example 2 }} no es válido y no funcionará:

{| clase="cuadro de información"
{{#if:{{{variable_foo|}}}
|
|-
! Foo
| {{{variable_foo}}}
}}
|-
! Bar
| {{{variable_bar}}}
|}

La siguiente tabla demuestra el efecto cuando se usa {{ Conditional tables/example 2 }}:

Llamada de plantilla Resultado
{{ Tablas condicionales/ejemplo 2 }}
Foo
Bar {{{variable_bar}}}
{{ Tablas condicionales/ejemplo 2 |variable_foo=}}
Foo
Bar {{{variable_bar}}}
{{ Tablas condicionales/ejemplo 2 |variable_foo=|variable_bar=bar}}
Foo
Bar bar
{{ Tablas condicionales/ejemplo 2 |variable_foo=valor}}
Bar {{{variable_bar}}}
{{ Tablas condicionales/ejemplo 2 |variable_foo=valor|variable_bar=barra}}
Bar bar

El problema está en el uso del carácter vertical ( |). Este carácter, en llamadas de plantilla, se usa para separar parámetros y, por lo tanto, no es válido.

Uso Correcto

Plan A

Un método para ocultar filas en tablas (u otras estructuras dentro de tablas) usa HTML directamente. [1] HTML es más complicado que la sintaxis de tablas de MediaWiki, pero no mucho más. En general, solo hay un puñado de etiquetas HTML que debe tener en cuenta

  • <tr>- esta etiqueta crea una nueva fila (similar a |-la sintaxis de la tabla de MediaWiki)
  • <th>- esta etiqueta crea una nueva celda de encabezado dentro de una fila (similar a !la sintaxis de la tabla de MediaWiki)
  • <td>- esta etiqueta crea una nueva celda dentro de una fila (similar a |la sintaxis de la tabla de MediaWiki)
  • <caption>- esta etiqueta crea un título (similar a |+la sintaxis de la tabla de MediaWiki)

Trabajando desde el ejemplo anterior de plantilla no válida, al cambiar a HTML terminamos con el siguiente código:

{| clase="cuadro de información"
{{#if:{{{variable_foo|}}}
| < tr >< th > Foo </ th >< td > {{{variable_foo}}} </ td ></ tr > }}
|-
! Bar
| {{{variable_bar}}}
|}

El código anterior está en {{ Conditional tables/example 2a }}. Como antes, la siguiente tabla demuestra el efecto cuando se usa:

Llamada de plantilla Resultado
{{ Tablas condicionales/ejemplo 2a }}
Bar {{{variable_bar}}}
{{ Tablas condicionales/ejemplo 2a |variable_foo=}}
Bar {{{variable_bar}}}
{{ Tablas condicionales/ejemplo 2a |variable_foo=|variable_bar=bar}}
Bar bar
{{ Tablas condicionales/ejemplo 2a |variable_foo=valor}}
Foovalor
Bar {{{variable_bar}}}
{{ Tablas condicionales/ejemplo 2a |variable_foo=valor|variable_bar=barra}}
Foovalor
Bar bar

Plan B

Como se indicó anteriormente, el único problema es la barra vertical o el símbolo de tubería dentro de una plantilla. A menudo, es suficiente reemplazar los caracteres problemáticos por referencias numéricas, por ejemplo, "{" por &#123;, "|" por &#124;y "}" por &#125;. Pero para las tablas Wiki, un verdadero "|" se requiere delimitador — el uso &#124;no funciona como delimitador.

Un simple truco permite proteger el "|" en los valores de los parámetros de la plantilla mientras siguen llegando como "|" reales delimitador en la tabla Wiki, vea la palabra mágica {{!}} . Tenga en cuenta que "!" (signo de exclamación) no tiene problemas con las plantillas, es el otro delimitador que se usa en las tablas Wiki. Aquí está el código para el plan B:

{| clase="cuadro de información"
{{#si:{{{foo|}}}|
{{!}}-
! Foo
{{!}} {{{foo}}}
}}
|-
! Bar
| {{{bar}}}
|}

El código anterior está en {{ Conditional tables/example 2b }}. Como antes, la siguiente tabla demuestra el efecto cuando se usa:

Llamada de plantilla Resultado
{{Conditional tables/example 2b|bar=nobar}}
Bar sin bar
{{Conditional tables/example 2b|foo=|bar=vbar}}
Bar vbar
{{Conditional tables/example 2b|foo=value}}
Foo valor
Bar {{{bar}}}
{{Conditional tables/example 2b|foo=value|bar=vbar}}
Foo valor
Bar vbar

Plan C

Quizás la opción más simple es usar el condicional con la propiedad CSS "display: none" de la siguiente manera:

{| clase="cuadro de información"
|- {{#si: {{{variable_foo|}}} | | estilo="mostrar: ninguno;" }}
! Foo
| {{{variable_foo}}}
|-
! Bar
| {{{variable_bar}}}
|}

De esta forma, no es necesario que el carácter vertical de wikitables aparezca en el condicional #if. Sin embargo, las fuentes y las notas a las que se hace referencia en las celdas silenciadas no se suprimirán con el resto del contenido, en el sentido de que seguirán apareciendo al final de un artículo sin que aparezca ninguna referencia a ellas en el texto del artículo. Además, este método solo funciona con navegadores compatibles con CSS.

El código anterior está en {{ Tablas condicionales/ejemplo 2c }}. Como antes, la siguiente tabla demuestra el efecto cuando se usa:

Llamada de plantilla Resultado
{{Conditional tables/example 2c|variable_bar=bar}}
Foo {{{variable_foo}}}
Bar bar
{{Conditional tables/example 2c|variable_foo=|variable_bar=bar}}
Foo
Bar bar
{{Conditional tables/example 2c|variable_foo=foo}}
Foo Foo
Bar {{{variable_bar}}}
{{Conditional tables/example 2c|variable_foo=foo|variable_bar=bar}}
Foo Foo
Bar bar

Obteniendo ayuda

Si no puede conseguir que una plantilla se comporte como le gusta, puede intentar preguntar en Village pump , realizar una solicitud en Plantillas solicitadas o ponerse en contacto con un editor a través de IRC .

Ver también

Para evitar filas en blanco en el caso de filas opcionales sucesivas, consulte m:Help:Table#Conditional table row .

Para obtener más información sobre #if(y otras # funciones), consulte:

Los siguientes temas de ayuda se ocupan de las plantillas:

Este tema de ayuda trata sobre el diseño de tablas (dado que la mayoría de las plantillas usan tablas, esto puede ser útil):

Y finalmente:

notas y referencias

  1. ^ El uso de código de tabla HTML en plantillas puede hacer que no se puedan transferir a otros wikis de MediaWiki . Esto se debe a que Wikipedia y otros wikis de la Fundación Wikimedia procesan el wikitexto a través de HTML Tidy ; la mayoría de los otros wikis no tienen la misma configuración y las etiquetas de la tabla HTML no se muestran. Ver Wikipedia:WikiProject Transwiki#Plantillas especiales .