Функции - в шаблонах Twig
Twig предоставляет ряд удобных функций, которые можно использовать непосредственно в шаблонах.
Ядро Drupal добавляет несколько пользовательских функций, специфичных для Drupal. Они определены в TwigExtension class.
Вы также можете определить свои собственные функции Twig в пользовательском модуле (но не в теме). Чтобы найти пример того, как это сделать, см. этот пример в файле core/modules/system/tests/modules/twig_extension_test/src/TwigExtension/TestExtension.php.
attach_library($library)
Присоединяет библиотеку активов к шаблону.
{{ attach_library('classy/node') }}
create_attribute($attributes)
Создайте новые объекты Attribute с помощью функции create_attribute() внутри шаблона Twig. Этими объектами можно манипулировать так же, как и другими объектами Attribute, входящими в шаблон Twig.
См. Запись об изменении: 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)
Эта вспомогательная функция принимает URI к файлу и создает относительный URL-путь к файлу.
{{ file_url(node.field_example_image.entity.uri.value) }}
link($text, $uri, $attributes)
Эта вспомогательная функция принимает в качестве первого параметра text и в качестве второго uri
Примеры:
{{ link(item.title, item.uri, { 'class':['foo', 'bar', 'baz']} ) }}
path($name, $parameters, $options)
Создает [относительный] URL-путь с указанием имени и параметров маршрута.
{# Link to frontpage view. #} <a href="{{ path('view.frontpage.page_1') }}">{{ 'View all content'|t }}</a> {# Link to user entity/profile page. #} <a href="{{ path('entity.user.canonical', {'user': user.id}) }}">{{ 'View user profile'|t }}</a> {# Link to node page. #} <a href="{{ path('entity.node.canonical', {'node': node.id}) }}">{{ 'View node page'|t }}</a>
Функция url и path определены в непосредственной близости от тех, которые находятся в \Symfony\Bridge\Twig\Extension\RoutingExtension.
url($name, $parameters, $options)
Создайте абсолютный URL с учетом имени маршрута и параметров:
<a href="{{ url('view.frontpage.page_1') }}">{{ 'View all content'|t }}</a>
Создайте абсолютный URL для текущего URL:
<a href="{{ url('<current>') }}">{{ 'Reload'|t }}</a>
Создайте абсолютный URL для главной страницы:
<a href="{{ url('<front>') }}">{{ 'Home'|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.