logo

Extra Block Types (EBT) - Nueva experiencia con Layout Builder❗

Extra Block Types (EBT): tipos de bloques con estilo y personalizables: Presentaciones de diapositivas, Pestañas, Tarjetas, Acordeones y muchos más. Configuraciones integradas para fondo, DOM Box y plugins de JavaScript. Experimenta hoy el futuro de la construcción de diseños.

Módulos de demostración EBT Descargar módulos EBT

❗Extra Paragraph Types (EPT) - Nueva experiencia con Paragraphs

Extra Paragraph Types (EPT): conjunto de módulos basado en párrafos de forma análoga.

Módulos de demostración EPT Descargar módulos EPT

Scroll

Filtros - Modificación de variables en plantillas Twig

19/06/2025, by Ivan

Menu

Los filtros en Twig pueden usarse para modificar variables. Los filtros se separan de la variable mediante el símbolo de barra vertical (pipe). Pueden tener argumentos opcionales entre paréntesis. Varios filtros pueden encadenarse. La salida de un filtro se aplica al siguiente.

Ejemplo:

{{ content|safe_join(", ")|lower }}

Puede que necesites renderizar un elemento antes de filtrarlo:

{{ item|render|filter }}

Twig viene con muchos filtros incorporados que puedes consultar en su documentación oficial. Drupal tiene muchos filtros propios.

Filtros especiales de Drupal

Están declarados en TwigExtension::getFilters().

Filtros de traducción

trans
Este filtro (alternativamente, t) pasa la variable por la función Drupal t(), que devuelve la cadena traducida. Este filtro debe usarse para cualquier cadena de interfaz colocada manualmente en la plantilla que se mostrará a los usuarios.

Ejemplo:

<a href="{{ url('<front>') }}" title="{{ 'Inicio'|t }}" rel="home" class="site-logo"></a>

placeholder
Este filtro escapa el contenido en HTML y lo formatea usando drupal_placeholder(), lo que permite mostrar texto resaltado.

Ejemplo:

{% trans %}Enviado el {{ date|placeholder }}{% endtrans %}

Traducción insegura
Algunas plantillas son inseguras y no deberían usarse porque pasan la variable directamente a la traducción. Esto no solo inflará la lista de cadenas para traducir, sino que también es una posible vulnerabilidad, especialmente si la salida puede ser introducida por el usuario. Algunos ejemplos incorrectos de traducción:

{# NO HAGAS ESTO #}
{{ var1|t }}
{{ var1|placeholder }}
{% trans %}{{ var1 }}{% endtrans %}

Filtros adicionales

clean_class
Este filtro prepara una cadena para usarse como un nombre válido de clase HTML. Ver Html::getClass()

clean_id
Este filtro prepara una cadena para usarse como un identificador válido de HTML. Ver Html::getID()

format_date
Este filtro prepara una marca temporal para usarse como una cadena de fecha formateada. Ver DateFormatter::format()

raw
Se debe evitar este filtro cuando sea posible, especialmente si se muestran datos que podrían ser introducidos por el usuario. Consulta esta página para más información sobre autoescape en Drupal 8.

render
Este filtro es un contenedor para la función render(). Recibe un array de renderizado y devuelve la salida HTML renderizada. Puede ser útil si quieres aplicar un filtro adicional (por ejemplo, análisis de etiquetas), o si quieres hacer una condición basada en la salida renderizada (por ejemplo, si tienes un array de renderizado no vacío que devuelve una cadena vacía). También puede usarse para cadenas y ciertos objetos, principalmente aquellos que implementan el método toString().

safe_join
El filtro safe_join une varias cadenas usando un separador proporcionado. Ver TwigExtension::safeJoin().

Ejemplo:

{{ items|safe_join(', ') }}

Esto imprimirá cada cadena en la variable items unida con comas separando cada elemento.

without
El filtro without crea una copia del array de renderizado y elimina los elementos hijos por clave que se pasan como argumentos al filtro. La copia puede imprimirse sin esos elementos. El array original de renderizado sigue disponible y puede usarse para imprimir todos los hijos en la plantilla de rama. Ver twig_without.

Ejemplos:

{{ content|without('links') }}

Esto imprime todo en la variable content excepto content.links.

{{ content|without('links', 'field_some_data') }}

Ejemplo para excluir dos elementos de la salida. Esto excluirá «links» y «field_some_data».

 

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.