Переменные и функции

Помимо стандартных twig функций, в движке присутствуют дополнительные.

Подключение медиа-файлов

Неотъемлемой частью любого шаблона являются медиа-файлы: css, js, изображения и т.д. Вы можете выгружать любые необходимые файлы в нужные каталоги.

Для более удобного подключения файлов существует функция asset_url.

<link href="{{ asset_url('css/style.css') }}" rel="stylesheet">

Данная функция автоматически построит путь, по которому доступен файл css/style.css

То же самое верно и для прочих файлов темы оформления (изображения, шрифты, js и так далее)

Авторизация

Для проверки того, авторизован или нет текущий пользователь, используйте функция is_user_logged_in()

Пример использования:

{% if is_user_logged_in() %}
Вы авторизованы как {{ app.user.username }}
{% else %}
Пожалуйста, авторизуйтесь
{% endif %}

Генерация ссылок

Общий принцип

Для генерации ссылок используется две функции: path и url. Функции идентичны, за исключением того, что вторая функция всегда генерирует полную ссылку (вместе со схемой, хостом и т.д.)

Пример использования:

<a href="{{ path('homepage') }}">Главная</a> // ссылка на "/"
<a href="{{ url('homepage') }}">Главная</a> // ссылка на "http://domain.tld/"

Первым аргументом идет всегда тип генерируемой ссылки.

Ссылки также поддерживают параметры. Бывают два типа параметров: параметры пути и query параметры. Синтаксис для всех этих видов параметров одинаков:

{{ path('homepage', { 'param1': 'foo', 'param2': 'bar' }) }}

В том случае, если переменные не являются переменными пути, они будут добавлены в ссылку как query параметры. В нашем конкретном случае, у типа ссылки homepage нет никаких параметров пути, поэтому вышеприведенный код сгенерирует нам ссылку:

/?param1=foo&param2=bar

Стандартные макросы

Также в комплекте поставляются макросы, которые упрощают работу со ссылками. Для того, чтобы их использовать, надо подключить их в шаблоне

{% import '@resources/Templates/macroses.html.twig' as outofbox %}

Данный блок кода можно вставить в общий файл, от которого наследуются все шаблоны, чтобы макросы были доступны во всех дочерних без явного импорта.

product_url(product, absolute = false, query_params = {}) – Ссылка на товар

Описание

Строит абсолютную или относительную ссылку на товар

Аргументы
Наименование Обязательное Значение по-умолчанию Описание
product Да Объект товара
absolute Нет false Строить относительную или абсолютную ссылку
query_params Нет {} Query параметры
Примеры использования
{{ outofbox.product_url(product) }} # /products/product-title/123.html
{{ outofbox.product_url(product, true) }} # http://domain.tld/products/product-title/123.html
{{ outofbox.product_url(product, false, { 'somevar': 'somevalue' }) }} # /products/product-title/123.html?somevar=somevalue


Корзина пользователя

Для доступа к данным корзины можно воспользоваться следующими функциями:

Название Описание
cart_total_quantity() Общее количество товаров в корзине
cart_total_price() Общая сумма

Пример использования:

Товаров в корзине {{ cart_total_quantity() }} на сумму {{ cart_total_price() }} руб.