Компоненты

Внимание! Мы рекомендуем вам прочитать разделы Архитектура, Класс 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) %}