Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Функции - в шаблонах Twig

04/05/2020, by maria

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.