- Описание
- Установка
- Настройка веб сервера
- Данные и шаблоны
- Оптимизация JS и CSS файлов
- Вывод контента
- Корзина товаров
- Настройка онлайн оплаты
- Настройка оплаты через Robokassa
- Меню
- Формы
- Поиск
- Учет количества товара на складе
- Мульти-валютность
- Мульти-язычность
- Изменение размеров изображений
- Разработчикам
- Импорт-Экспорт
- Установка на локальный сервер XAMPP в Windows
- Настройка VDS и установка Nginx, PHP, MongoDB, Shopker
- JavaScript API
- Визуальный редактор шаблонов
- Бронирование
- Экспорт каталога в Яндекс.Маркет
- Bash скрипт для настройки VDS
- Bash скрипт для установки
- API
- Установка локально в ОС Windows
Вывод контента
Для того, чтобы узнать какие данные передаются в шаблон категории или товара, можно в шаблон вставить следующий код:
<ol>
{% for key, value in _context %}
<li>{{ key }}</li>
{% endfor %}
</ol>
Значения полей текущей категории находятся в массиве "currentCategory". Массив товаров на странице категории находится в переменной "items". Массив полей для текущего типа контента - "fields". Все поля, независимо от типа контента - "fieldsAll" (только в шаблоне категории). Значения полей текущего товара находятся в массиве "currentPage".
Для вывода товаров с фильтрацией можно использовать Twig-функцию {{ contentList(...) }}
. Например, эту функцию можно использовать для блока "Новинки" на сайте или для сопутствующих товаров.
Пример использования (вывод новинок):
{{ contentList(
'content_list_slider',
'products',
{"isActive": true, "tags": {"$elemMatch": {"$in": ["Новинка"]}}},
{"_id": "desc"},
20, 4, 'homepage_novelty', 'hn_page', 'hn_limit', {currency: currency, sliderName: 'Novelty'}
) }}
Аргументы по порядку:
- Название шаблона, который находится в папке
catalog/
(без расширения ".html.twig"). - Название коллекции БД.
- Запрос для поиска товаров в формате MongoDB.
- Сортировка в формате MongoDB. По умолчанию
{"_id": "asc"}
. - Максимальное число элементов. По умолчанию 20.
- Число элементов в группе. Используется только в шаблоне. По умолчанию 1 (без групп).
- Ключ для кэширования HTML кода в файл. По умолчанию выключено (пустое значение).
- Переменная номера страницы. По умолчанию - page.
- Переменная максимального числа элементов на странице. По умолчанию - limit.
- Массив параметров, которые нужно передать в шаблон.
Постраничная навигация
Для перехода по страницам нужно импортировать шаблон templates/nav/pagination.html.twig
.
Пример:
{% include 'nav/pagination.html.twig' %}
В этот шаблон должны передаваться переменные queryOptions
и pagesOptions
. Twig-функция contentList()
поддерживает постраничную разбивку.
Вывод данных отдельной страницы
При необходимости вывода данных отдельной страницы на любой другой странице, можно использовать Twig-функцию {{ includeContent() }}
.
Пример использования:
{{ includeContent('homepage_content_template', 'text_content', 4, 'homepage') }}
Аргументы по порядку:
- Название шаблона (без расширения ".html.twig").
- Название коллекции БД.
- ID документа.
- Ключ для кэширования HTML кода в файл. По умолчанию выключено (пустое значение).
- Массив параметров, которые нужно передать в шаблон.