Zum Inhalt springen

Condiciones en TypoScript

Las condiciones y la sentencia if pueden utilizarse para controlar TypoScript en función de variables. Hay tantas variables que puede utilizarlas para resolver casi cualquier tarea.

Hemos recopilado ejemplos de varias condiciones en esta página.

Cada una de las condiciones está encerrada entre corchetes [...]; cuando se construye con if, el objeto respectivo sólo pasa a ser válido si se cumple la condición.

Para que las condiciones funcionen, debe observarse lo siguiente:

  • Cada condición debe terminar con la línea [global]. Si se olvida esto, el siguiente código TypoScript se interpretará de forma distinta a la prevista
  • Las condiciones deben ir fuera de los paréntesis {...} corchetes. Ejemplo:
## ¡Ejemplo incorrecto!
página.15 = TEXTO
page.15 {
value = Hola Usuario
[backend.user.isAdmin]
value = Hola Admin
[global]
}

 

Esta condición no funciona porque está dentro de {...}.
En su lugar, tienes que escribirla así:

page.15 = TEXTO
page.15.value = Hola Usuario
[backend.user.isAdmin]
page.15.value = Hola Admin
[global]

Días laborables

Los jueves se debe utilizar una plantilla diferente a la de los demás días de la semana:





config.cache_clearAtMidnight = 1 page.10.template.file = fileadmin/normal_template.html [dayofweek = 4] # 0 = domingo, 1 = lunes, ... page.10.template.file = fileadmin/thursday_template.html [global]

Con config.cache_clearAtMidnight te aseguras de que la página se regenera la primera vez que se llama después de medianoche (normalmente las páginas se regeneran cada 24 horas y se almacenan en la caché).

Cambios para una sola página

Si realiza cambios con TypoScript en la plantilla (o plantilla de extensión), éstos se aplican a la página actual y a todas las subpáginas.

Sin embargo, si sólo desea hacer cambios para una sola página (sin las subpáginas), esto es posible con una condición. En este caso, se utiliza la variable global TSFE:id (es el ID de la página):



[globalVar = TSFE:id=1234] // aquí está el código que sólo es válido para la página 1234 [global]

Alternativamente, se puede utilizar la variable TSFE:page|pid en lugar de TSFE:id. Si la condición debe aplicarse a varias páginas (O enlace), se separan varias condiciones por comas:

[globalVar = TSFE:id=10, TSFE:id=20, TSFE:page|pid=30]

colPos: Configuración diferente según la columna

Si quieres un formato diferente dependiendo de la columna, la forma más fácil de conseguirlo es mediante CSS colocando una etiqueta div alrededor de cada columna.

Es un poco más difícil si quieres hacer cambios en el TypoScript dependiendo de la columna (colPos).

Un ejemplo: cada enlace del texto debe ir precedido o seguido de un pequeño gráfico. Sin embargo, el gráfico debe ser diferente en cada columna de contenido.

La inserción de un gráfico antes de un enlace de texto se consigue con este código TypoScript:


tt_content.text.20.parseFunc.tags.link.prepend = IMAGE tt_content.text.20.parseFunc.tags.link.prepend.file = fileadmin/images/image.gif

Para utilizar un gráfico diferente para cada columna, se utiliza un pequeño truco: se crea un COA (Content Object Array) temporal, es decir, un objeto de contenido que a su vez contiene otros objetos. A continuación, se utiliza la función if para eliminar los objetos que no deben aparecer en la columna actual:




temp.linkimage = COA temp.linkimage.10 = IMAGE temp.linkimage.10.file = fileadmin/images/image1.gif temp.linkimage.10





.if { value = 0 equals.field = colPos } temp.linkimage.20 = IMAGEN temp.linkimage.20.file = fileadmin/images/image2.gif temp.linkimage.20





.if { value = 1 equals.field = colPos } temp.linkimage.30 = IMAGEN temp.linkimage.30.file = fileadmin/images/image3.gif temp.linkimage.30



.if { value = 2 equals.field = colPos } tt_content.text.20.parseFunc.tags.link.prepend < temp.linkimage

En la última línea, el COA temporal se copia en el objeto de enlace de texto. Aunque se han definido tres elementos de imagen, al final el COA sólo contiene un gráfico, ya que sólo se cumple una de las tres condiciones if.

Si desea el gráfico adicional después en lugar de antes de un enlace, sustituya "prepend" por "append" en el código.

El contenido de esta página se ha traducido automáticamente.

Aktualisiert: 10.04.2025