Компоненты
Внимание! Мы рекомендуем вам прочитать разделы Архитектура, Класс ElementItem, Класс ElementCollection для полного понимания архитектуры проекта.
BrandList
Компонент позволяет отображать блоки с брендами. Например: все бренды, список брендов с разбивкой на страницы, случайные бренды, панель фильтров с брендами и т. Д.
make([$arElementIDList = null])
Метод возвращает новый объект класса BrandCollection.
Например: создать простой блок со случайным списком 5 брендов на индексной странице.
Файл: partials/brand/random-brand-list/random-brand-list.htm
{# Get brand collection #}
{% set obBrandList = BrandList.make().active() %}
{# Get array with random brands #}
{% set arBrandList = obBrandList.random(5) %}
{% if arBrandList is not empty %}
{# Render brand list #}
<ul>
{% for obBrand in arBrandList %}
<li>{% partial 'brand/brand-card/brand-card' obBrand=obBrand %}</li>
{% endfor %}
</ul>
{% endif %}
Файл: partials/brand/brand-card/brand-card.htm
{# @var obBrand \Lovata\Shopaholic\Classes\Item\BrandItem #}
<a href="{{ obBrand.getPageUrl('brand-page') }}">
<div itemscope itemtype="http://schema.org/Brand">
{% if obBrand.preview_image is not empty %}
<img
src="{{ obBrand.preview_image.path }}"
itemprop="image"
alt="{{ obBrand.preview_image.description }}"
title="{{ obBrand.preview_image.title }}"
>
{% endif %}
<h3 itemprop="name">{{ obBrand.nam }}</h3>
{% if obBrand.preview_text is not empty %}
<div itemprop ="description">
{{ obBrand.preview_text }}
</div>
{% endif %}
</div>
</a>
BrandPage
Компонент позволяет отображать страницу бренда.
Доступные свойства:
| Свойство | Доступные значения | Описание |
|---|---|---|
| slug | {{ :slug }} | Параметр URL из настроек страницы |
| slug_required | 0 or 1 | Если значение равно 1, компонент будет генерировать страницу 404, если параметр «slug» пуст. |
| smart_url_check | 0 or 1 | Если значение равно 1, то компонент дополнительно проверит полный URL страницы. |
| skip_error | 0 or 1 | Если значение равно 1, то компонент не будет возвращать ошибку «Не найден». |
get()
Метод возвращает объект BrandItem для текущей страницы.
Например: создать простую страницу бренда и отобразить название бренда, изображение для предварительного просмотра, описание.
Файл: pages/brand-page.htm
title = "Brand page"
url = "/brands/:slug"
layout = "main"
is_hidden = 0
[BrandPage]
slug = "{{ :slug }}"
slug_required = 1
smart_url_check = 1
skip_error = 0
==
{# @var obBrand \Lovata\Shopaholic\Classes\Item\BrandItem #}
{# Get brand item #}
{% set obBrand = BrandPage.ge() %}
<div data-id="{{ obBrand.id }}">
<h1>{{ obBrand.name }}</h1>
{% if obBrand.preview_image is not empty %}
<img
src="{{ obBrand.preview_image.path }}"
title="{{ obBrand.preview_image.title }}"
alt="{{ obBrand.preview_image.description }}"
>
{% endif %}
<div>{{ obBrand.description|raw }}</div>
</div>
BrandData
Компонент позволяет рендерить блоки с брендом. Получить брендовый объект можно по ID.
get($iElementID)
Метод возвращает объект BrandItem с ID = $iElementID.
[BrandData]
==
{% set obBrand? = BrandData.get?(1) %}