Las funciones de análisis permiten la visualización condicional de filas, columnas o celdas de una tabla (y, en realidad, de casi cualquier otra cosa). Sin embargo, las funciones de análisis tienen algunas limitaciones.
El siguiente ejemplo muestra un uso básico #if
disponible en la extensión ParserFunctions:
{{ #if :{{{ variable_foo |}}} | foo se establece en ''' {{{ variable_foo }}} ''' | foo está ''en blanco'' }}
Aquí {{{variable_foo}}}
se comprueba si está definido con un valor que no esté en blanco. La siguiente tabla muestra el resultado de una llamada de plantilla (llamaremos plantilla ) con diferentes valores para :{{Conditional tables/example 1}}
{{{variable_foo}}}
Los parámetros posicionales, {{{1}}}
etc., funcionan como parámetros con nombre:
{{ #if :{{{ 1 |}}} | El primer parámetro es ''' {{{ 1 }}} ''' | El primer parámetro está ''en blanco'' }}
Tenga en cuenta cómo funciona el símbolo de tubería (barra vertical) en el enlace tal como está, no es tan fácil dentro de las tablas Wiki, vea a continuación.
También es posible ocultar filas de datos dentro de una tabla, sin embargo, hay cuestiones que debes tener en cuenta.
Lamentablemente #if
, la sintaxis de tabla de MediaWiki no funciona bien en conjunto. Por ejemplo, lo siguiente, {{ Tablas condicionales/ejemplo 2 }} no es válido y no funcionará:
{| clase = "wikitable" {{ #if :{{{ variable_foo |}}} | | - ! tonto| {{{ variable_foo }}} } } |- ! Barra | {{{ variable_bar }}} |}
La siguiente tabla demuestra el efecto cuando se utiliza {{ Tablas condicionales/ejemplo 2 }} :
El problema está en el uso del carácter de barra vertical ( |
). Este carácter, en las llamadas de plantilla, se utiliza para separar parámetros y, por lo tanto, no es válido.
Un método para ocultar filas en tablas (u otras estructuras dentro de tablas) utiliza HTML directamente. [1] HTML es más complicado que la sintaxis de tabla de MediaWiki, pero no mucho más. En general, solo hay un puñado de etiquetas HTML que debes conocer
<tr>
- esta etiqueta crea una nueva fila (similar a |-
la sintaxis de tabla de MediaWiki)<th>
- esta etiqueta crea una nueva celda de encabezado dentro de una fila (similar a !
la sintaxis de tabla de MediaWiki)<td>
- esta etiqueta crea una nueva celda dentro de una fila (similar a |
la sintaxis de tabla de MediaWiki)<caption>
- esta etiqueta crea un título (similar a |+
la sintaxis de la tabla de MediaWiki)Partiendo del ejemplo de plantilla no válida anterior, al cambiar a HTML obtenemos el siguiente código:
{| clase = "wikitable" {{ #if :{{{ variable_foo |}}} |< tr >< th > Foo </ th >< td >{{{ variable_foo }}}</ td ></ tr >}} |- ! Bar | {{{ variable_bar }}} |}
El código anterior se encuentra en {{ Tablas condicionales/ejemplo 2a }} . Como antes, la tabla siguiente demuestra el efecto cuando se utiliza:
Como se indicó anteriormente, el único problema es la barra vertical o el símbolo de barra vertical dentro de una plantilla. A menudo, es suficiente reemplazar caracteres problemáticos por referencias numéricas, por ejemplo, "{" por {, "|" por |y "}" por }. Pero para las tablas Wiki se requiere un delimitador "|" real; el uso |no funciona como delimitador.
Un truco sencillo permite proteger el "|" en los valores de los parámetros de plantilla y, al mismo tiempo, llegar como delimitador "|" real 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 utiliza en las tablas Wiki. Aquí está el código para el plan B:
{| clase = "wikitable" {{ #if :{{{ foo |}}}| {{ ! }} - ! tonto{{ ! }} {{{ foo }}} }} |- ! Barra | {{{ barra }}} |}
El código anterior se encuentra en {{ Tablas condicionales/ejemplo 2b }} . Como antes, la tabla a continuación demuestra el efecto cuando se utiliza:
Quizás la opción más sencilla es utilizar el condicional con la propiedad CSS "display: none" de la siguiente manera:
{| clase = "wikitable" |- {{ #if : {{{ variable_foo |}}} | | estilo = "mostrar: ninguno;" }} ! Foo | {{{ variable_foo }}} |- ! Bar | {{{ variable_bar }}} |}
De esta manera, no es necesario que el carácter de barra vertical de wikitables aparezca en la condición #if. Sin embargo, las fuentes y notas a las que se hace referencia en las celdas silenciadas no se suprimirán junto con el resto del contenido, de modo 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 que admitan CSS.
El código anterior se encuentra en {{ Tablas condicionales/ejemplo 2c }} . Como antes, la tabla a continuación demuestra el efecto cuando se utiliza:
Si no puede lograr que una plantilla se comporte como desea, puede intentar preguntar en Village Pump , realizar una solicitud en Plantillas solicitadas o comunicarse con un editor a través de IRC .
Para evitar filas en blanco en el caso de filas opcionales sucesivas, consulte m:Help:Table#Fila de tabla condicional.
Para obtener más información sobre #if
(y otras # funciones), consulte:
Los siguientes temas de ayuda tratan sobre plantillas:
Este tema de ayuda trata sobre el diseño de tablas (dado que la mayoría de las plantillas utilizan tablas, esto puede resultar útil):
Y por último: