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 – Просмотр товара

Данный шаблон отвечает за вывод страницы с описанием товара

Работает на системе OUTOFBOX.RU