Дополнительные типы блоков (EBT) — новый опыт конструктора страниц❗

Дополнительные типы блоков (EBT) — стилизованные, настраиваемые типы блоков: слайдшоу, вкладки, карточки, аккордеоны и многие другие. Встроенные настройки для фона, DOM Box, плагины Javascript.

Демо EBT модули Скачать EBT модули

❗Дополнительные типы параграфов (EPT) — новый опыт работы с параграфами

Дополнительные типы параграфов (EPT) — набор модулей, основанный на аналогичных параграфах.

Демо EPT модули Скачать EPT модули

Scroll

Фильтры - Изменение переменных в шаблонах Twig

04/05/2020, by maria

Menu

Фильтры в Twig могут быть использованы для изменения переменных. Фильтры отделяются от переменной символом трубы. Они могут иметь необязательные аргументы в скобках. Несколько фильтров могут быть связаны. Выход одного фильтра применяется к следующему.

Пример:

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

Возможно, вам придется визуализировать элемент перед его фильтрацией:

{{ item|render|filter }}

Twig поставляется с множеством встроенных фильтров, которые вы можете просмотреть в их официальной документации. Drupal имеет множество собственных фильтров.

Drupal Специальные фильтры

Они объявлены в TwigExtension::getFilters().

Translation filters

trans
Этот фильтр (альтернативно, t) будет запускать переменную через функцию Drupal t(), которая будет возвращать переведенную строку. Этот фильтр следует использовать для любых строк интерфейса, помещенных вручную в шаблон, который будет отображаться для пользователей.

Пример:

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

placeholder
Этот фильтр экранирует контент в HTML и форматирует его с помощью drupal_placeholder(), что позволяет отображать выделенный текст.

Пример:

{% trans %}Submitted on {{ date|placeholder }}{% endtrans %}

Unsafe translation
Некоторые шаблоны небезопасны и не должны использоваться, потому что они передают переменную непосредственно в перевод. Это не только раздувает список строк для перевода, но также является потенциальной уязвимостью, особенно если вывод может быть введен пользователем. Некоторые примеры неправильного перевода:

{# DO NOT DO THIS #}
{{ var1|t }}
{{ var1|placeholder }}
{% trans %}{{ var1 }}{% endtrans %}

Дополнительные фильтры

clean_class
Этот фильтр подготавливает строку для использования в качестве допустимого имени класса HTML. Смотрите Html::getClass()

clean_id
Этот фильтр подготавливает строку для использования в качестве действительного идентификатора HTML. Смотрите Html::getID()

format_date
Этот фильтр подготавливает временную метку для использования в качестве форматированной строки даты. Смотрите DateFormatter::format()

raw
По возможности следует избегать этого фильтра, особенно если вы выводите данные, которые могут быть введены пользователем. Смотрите эту страницу для получения дополнительной информации об автопробеге в Drupal 8.

render
Этот фильтр является оболочкой для функции render(). Он принимает массив визуализации и выводит визуализированную HTML-разметку. Это может быть полезно, если вы хотите применить дополнительный фильтр (например, разбор тегов), или если вы хотите сделать условие на основе визуализированного вывода (например, если у вас есть непустой массив визуализации, который возвращает пустую строку). Он также может использоваться для строк и определенных объектов, в основном тех, которые реализуют метод toString().

safe_join
Фильтр safe_join объединяет несколько строк вместе с поставляемым разделителем. Смотрите TwigExtension::safeJoin().

Пример:

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

Это выведет каждую строку в переменную items, соединенную вместе с запятой, разделяющей каждый элемент.

without
Фильтр without создает копию визуализируемого массива и удаляет дочерние элементы по ключу, указанному в аргументах, передаваемых фильтру. Копия может быть напечатана без этих элементов. Исходный массив для визуализации все еще доступен и может использоваться для полной печати дочерних элементов в шаблоне ветки. Смотрите twig_without.

Примеры:

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

Это печатает все в переменной content, кроме content.links.

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

Пример исключения двух элементов из отображения. Это исключит «links» и «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.