Funciones en plantillas Twig
Twig proporciona una serie de funciones útiles que se pueden usar directamente en las plantillas.
El núcleo de Drupal añade varias funciones personalizadas específicas de Drupal. Estas están definidas en la clase TwigExtension.
También puedes definir tus propias funciones Twig en un módulo personalizado (pero no en un tema). Para ver un ejemplo de cómo hacerlo, consulta este ejemplo en el archivo core/modules/system/tests/modules/twig_extension_test/src/TwigExtension/TestExtension.php.
attach_library($library)
Adjunta una biblioteca de assets a la plantilla.
{{ attach_library('classy/node') }}
create_attribute($attributes)
Crea nuevos objetos Attribute usando la función create_attribute() dentro de la plantilla Twig. Estos objetos se pueden manipular igual que otros objetos Attribute disponibles en la plantilla Twig.
Consulta la entrada de cambio: https://www.drupal.org/node/2818293
{% set my_attribute = create_attribute() %} {% set my_classes = [ 'kittens', 'llamas', 'puppies', ] %} <div{{ my_attribute.addClass(my_classes).addAttribute('id', 'myUniqueId') }}> {{ content }} </div> <div{{ create_attribute({'class': ['region', 'region--header']}) }}> {{ content }} </div>
file_url($uri)
Esta función auxiliar recibe un URI de archivo y genera una ruta URL relativa al archivo.
{{ file_url(node.field_example_image.entity.uri.value) }}
link($text, $uri, $attributes)
Esta función auxiliar recibe como primer parámetro el texto y como segundo el uri
Ejemplos:
{{ link(item.title, item.uri, { 'class':['foo', 'bar', 'baz']} ) }}
path($name, $parameters, $options)
Crea una ruta URL [relativa] a partir del nombre y parámetros de la ruta.
{# Enlace a la vista frontpage. #} <a href="{{ path('view.frontpage.page_1') }}">{{ 'Ver todo el contenido'|t }}</a> {# Enlace a la entidad usuario/perfil. #} <a href="{{ path('entity.user.canonical', {'user': user.id}) }}">{{ 'Ver perfil de usuario'|t }}</a> {# Enlace a la página del nodo. #} <a href="{{ path('entity.node.canonical', {'node': node.id}) }}">{{ 'Ver página del nodo'|t }}</a>
Las funciones url y path están definidas muy cerca de las que se encuentran en \Symfony\Bridge\Twig\Extension\RoutingExtension.
url($name, $parameters, $options)
Crea una URL absoluta basada en el nombre de la ruta y los parámetros:
<a href="{{ url('view.frontpage.page_1') }}">{{ 'Ver todo el contenido'|t }}</a>
Crea una URL absoluta para la URL actual:
<a href="{{ url('<current>') }}">{{ 'Recargar'|t }}</a>
Crea una URL absoluta para la página principal:
<a href="{{ url('<front>') }}">{{ 'Inicio'|t }}</a>
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.