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

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

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

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

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

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

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

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

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

Для генерации ссылок используется две функции: 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

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

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

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

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

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

 

Также можно работать напрямую с объектом  {{ app.shoppingCart }}. Если текущий пользователь не клал ничего в свою корзину покупок, то данный объект будет равен NULL. В шаблоне необходима проверка на присутствие этого объекта.

У объекта shoppingCart существуют следующие методы:

Название Описание
totalItemsCount Общее количество товаров в корзине
totalItemsPrice Общая стоимость товаров в корзине

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

<a href="{{ path('shopping_cart_view') }}">Товаров в корзине: {% if app.shoppingCart %}{{ app.shoppingCart.totalItemsCount }}{% else %}0{% endif %}</a>