Шаблоны товаров
Products/list.html.twig – Список товаров
Данный шаблон отвечает за вывод списка товаров
Доступные переменные:
Название | Назначение |
---|---|
products_ids | Список отсортированных идентификаторов товаров |
products | Список товаров в виде массива идентификатор => товар |
searchForm | Форма фильтрации |
Ввиду технических особенностей, список товаров надо выводить итерацией по products_ids:
<ul> {% for product_id in products_ids %} {% if products[product_id] is defined %}{% set product = products[product_id] %} <li> <div class="thumbnail-container"> <div class="thumbnail-centered"> <a href="{{ path('product_view_slug', { 'slug': product.slug, 'id': product.id }) }}"> {% if product.mainPhoto %} <img alt="" src="{{ product.mainPhoto|filecpd('custom', 220, 220) }}"> {% else %} <img alt="" src="http://placehold.it/220x220&text=No%20image"> {% endif %} </a> </div> </div> <div class="body"> <div class="title"> <a href="{{ path('product_view_slug', { 'slug': product.slug, 'id': product.id }) }}" title="{{ product.title }}">{{ product.title|truncate(60) }}</a> </div> </div> <div class="prices"> {% if product.priceDicount %}<div class="price-prev">{{ product.priceOld|number_format_currency('RUB') }}</div>{% endif %} <div class="price-current">{{ product.price|number_format_currency('RUB') }}</div> </div> </li> {% else %} {# Здесь можно обработать ситуацию, когда товар не найден в базе данных #} {% endif %} </ul>
Работа с фильтрами
Объект searchForm содержит в себе все поля для фильтрации. Для быстрого отображения всей формы со всеми доступными полями можно воспользоваться кодом:
{{ form_widget(searchForm) }}
Также форму можно проитерировать, чтобы иметь возможность отрендерить каждое поле отдельно. Например:
{% for searchFormField in searchForm %} <div class="list-group"> {{ form_row(searchFormField) }} </div> {% endfor %}
Products/view.html.twig – Просмотр товара
Данный шаблон отвечает за вывод страницы с описанием товара