Глобальные параметры
Глобальные параметры темы Seller 2.0 позволяют управлять отображением элементов страниц: шапкой, подвалом, заголовком H1, хлебными крошками, сайдбаром и другими компонентами. Параметры задаются в Smarty-шаблонах с помощью $wa->globals() — тема читает их при сборке страницы в index.html и связанных шаблонах.
Объект window.waTheme
Тема Seller 2.0 предоставляет глобальный JavaScript-объект window.waTheme, содержащий основную информацию о сайте и теме.
Основные свойства
| Свойство | Описание |
|---|---|
site_url | URL сайта |
app_id | ID текущего приложения |
app_url | URL текущего приложения |
locale | Объект с переводами и локализацией |
theme.id | Идентификатор темы |
theme.url | URL темы |
theme.version | Версия темы |
theme.license | Признак Premium-лицензии («1» или пустая строка) |
theme.theme_mode | Режим темы (auto / light / dark) |
license.is_premium / license.is_standart | Флаги редакции темы (отдельный объект window.waTheme.license) |
Пример обращения к свойствам
// URL сайта
window.waTheme.site_url
// Версия темы
window.waTheme.theme.version
// Режим темы
window.waTheme.theme.theme_mode
Настройки темы через window.waTheme.themesettings
Все настройки темы доступны в виде JSON-объекта:
window.waTheme.themesettings.settings
Каждая настройка содержит свойство value с текущим значением. Паттерн доступа:
window.waTheme?.themesettings?.settings?.{key}?.value
Примеры
// Получить значение настройки скругления элементов
window.waTheme?.themesettings?.settings?.common__design_elements_rounded_type_buttons?.value
// Получить значение настройки шрифта
window.waTheme?.themesettings?.settings?.common__design_font_family?.value
// Проверить настройку уведомлений корзины
window.waTheme?.themesettings?.settings?.['apps__shop_common_notification_cart_type_buttons']?.value
Глобальные Smarty-параметры
Шапка и подвал
{* Скрыть шапку сайта *}
{$wa->globals("hideHeader", true)}
{* Скрыть подвал темы *}
{$wa->globals("hideFooter", true)}
Заголовок страницы (H1)
Блок заголовка выводится шаблоном html/header/global/header.layout.html, если задан хотя бы один из параметров globalHeader, globalHeaderCustom или globalHeaderHTML. Приоритет: globalHeaderCustom → globalHeaderHTML → globalHeader.
{* Скрыть весь блок заголовка (H1 + хлебные крошки) *}
{$wa->globals("hideGlobalHeader", true)}
{* Задать текст заголовка *}
{$wa->globals("globalHeaderCustom", "Мой заголовок страницы")}
{* Произвольная HTML-разметка вместо стандартного H1 *}
{$wa->globals("globalHeaderHTML", '<h1 class="text-2xl md:text-4xl text-theme">Мой заголовок</h1>')}
{* Выравнивание: "center" — по центру (только на десктопе; на мобильных заголовок всегда слева), иначе — слева (по умолчанию) *}
{$wa->globals("globalHeaderAlign", "center")}
{* Текст описания под заголовком *}
{$wa->globals("globalHeaderDescription", "Описание под заголовком")}
{* Описание под заголовком с произвольной HTML-разметкой *}
{$wa->globals("globalHeaderDescriptionHTML", '<p>Описание с <strong>выделением</strong></p>')}
Описания (globalHeaderDescription и globalHeaderDescriptionHTML) выводятся только на первой странице пагинации. Для globalHeaderDescription дополнительно работает обрезание по строкам из настройки catalog__categories_category_description_cut_lines с кнопкой «Показать полностью».
Страница товара сама скрывает блок заголовка только на мобильных — в product.html (и в product.cart.html) вызов {$wa->globals("hideGlobalHeader", true)} обёрнут в {if !empty($is_mobile)}. На десктопе блок выводится, а в globalHeader подставляется заголовок товара: параметр товара h1, если он задан, иначе название. Чтобы убрать блок и на десктопе, установите hideGlobalHeader в своём шаблоне.
Хлебные крошки
{* Скрыть хлебные крошки *}
{$wa->globals("hideBreadcrumbs", true)}
{* Задать последний пункт хлебных крошек *}
{$wa->globals("lastBreadcrumb", ["url" => $wa->currentUrl(), "name" => "Название хлебной крошки"])}
Последний пункт выводится при включённой настройке темы «Показывать последний пункт» (common__breadcrumbs_last).
Сайдбар
{* Скрыть сайдбар *}
{$wa->globals("hideSidebar", true)}
{* Не подключать шаблон sidebar приложения (вывод плагинов) *}
{$wa->globals("sidebarHidePlugins", true)}
{* Показать сайдбар справа от контента *}
{$wa->globals("sidebarEnd", true)}
{* Вывести блоки сайдбара горизонтальной полосой над контентом *}
{$wa->globals("sidebarBeforeContent", true)}
Параметр sidebarWidgets подменяет набор блоков сайдбара. Значение — строка JSON (массив нужно предварительно прогнать через |json_encode) с элементами формата, который использует html/sidebar/sidebar.layout.html: active, name, template, app, custom, classes:
{$wa->globals("sidebarWidgets", '{"0":{"active":true,"name":"Страницы","template":"html/sidebar/blocks/pages","app":"site","custom":false,"classes":""}}')}
Шаблоны штатных блоков сайдбара лежат в html/sidebar/blocks/: html/sidebar/blocks/pages, html/sidebar/blocks/shop-tags, html/sidebar/blocks/shop-banner, html/sidebar/blocks/my-nav.
Так, например, блог темы подставляет в сайдбар собственный набор блоков:
{$wa->globals("sidebarWidgets", $theme_settings["apps__blog_sidebar_sorting_type_json"])}
Существует также параметр sidebarWidgetsBefore — он читается темой в u-vars.html при определении, пуст ли сайдбар (пустой сайдбар автоматически скрывается).
Контент
Вывести только шаблон main приложения — без контейнера, сетки и сайдбара (так работает главная страница магазина и страницы авторизации):
{$wa->globals("mainOnly", true)}
Категория
Показать или скрыть блок подкатегорий:
{$wa->globals("showSubcategories", true)}
{$wa->globals("hideSubcategories", true)}
Подменить список выводимых категорий — например, показать не дочерние категории текущей, а произвольный набор:
{$wa->globals("customSubcategories", $my_categories)}
Внешний вид блока — тип отображения, число элементов, изображения, поведение на мобильных — задаётся не из шаблона, а настройками темы группы catalog__subcategories_display_*: ..._show, ..._type, ..._limit, ..._products_count, ..._image_group, ..._mobile_scroll, ..._type_mobile. Шаблон html/category/subcategories.html собирает из них свойства блока сам; отдельной глобальной для переопределения свойств в теме нет.
Списки товаров
{$wa->globals("productsView", "table")}
Значение соответствует имени шаблона в html/products/ темы магазина: grid, list, table, short, swiper, swiper_compare, swiper_short, swiper_slider. На мобильных устройствах допустимы только grid, swiper, swiper_compare и swiper_short; остальные значения — в том числе list, table, short и swiper_slider — заменяются на grid.
Шапка поверх контента и баннеры
{* Позиционировать десктопную шапку поверх контента (absolute) *}
{$wa->globals("headerAbsolute", true)}
{* Тёмное оформление шапки (добавляет класс dark) *}
{$wa->globals("headerDark", true)}
Эти параметры использует, например, блок слайдера: при типе slider_04 он сам устанавливает headerAbsolute, чтобы шапка легла поверх слайдера.
Служебные параметры баннера над шапкой (media__header_above_*) выставляет сама тема — их можно читать в своих шаблонах:
| Параметр | Когда установлен |
|---|---|
headerBannerBeforeShow | Баннер над шапкой показан; при headerAbsolute шапка смещается вниз на его высоту |
headerBannerBeforeHide | Баннер скрыт (закрыт посетителем, спрятан по cookie) |
headerAbsoluteWithBanner | Устанавливается слайдером slider_04 вместе с headerAbsolute, если баннер показан |