Переменные и функции
Помимо стандартных 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¶m2=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() }} руб.