К содержимому
Параметры, хуки и интеграции

Глобальные и дополнительные параметры

Обновлено

Глобальные параметры Slate управляют текущей страницей, а настройки темы — оформлением всего сайта. Для отдельной категории или товара предусмотрена подмена настроек дополнительными параметрами Shop-Script. Эти механизмы можно использовать в готовых конфигурациях Slate; магазин нужен только для подмены через товар и категорию.

Параметры текущей страницы

Параметры передаются через $wa->globals() до вывода общего каркаса. Они действуют в текущем запросе и не сохраняют изменения в настройках темы.

Параметр Действие
hideHeader Скрывает шапку и баннер акции под ней
hideFooter Скрывает подвал и баннер акции перед ним
globalHeaderHideTitle Скрывает главный заголовок страницы (h1)
hideBreadcrumbs Скрывает хлебные крошки
hideGlobalHeader Скрывает заголовок и хлебные крошки вместе
hideSidebar Скрывает боковую колонку: у страницы, каталога, блога, фотогалереи и сообщества
sidebarWidgets Задаёт свой состав боковой колонки — строкой JSON в том же формате, что у настройки колонки этого раздела. Разделы с составом колонки: страницы, каталог и поиск магазина, блог, сообщество; у «Фото» колонку составляют плагины, состава нет.
hideContainer Убирает общую обёртку .s-container вокруг содержимого страницы
slate.main_class Добавляет классы к основному элементу <main>; допустимы строчные латинские буквы, цифры, пробелы, _ и -
slate.breadcrumbs Задаёт свою цепочку вместо цепочки приложения; массив элементов с name и url
slate.breadcrumbs_last Заменяет текст последней крошки; пустая строка убирает её, если её показ включён в настройках
slate.hd_forms Сообщает, что на странице будет форма «Поддержки», которая печатается позже основного содержимого (например, в окне). В режиме jQuery «Магазин, вход, кабинет и страницы с плагинами» тема тогда подключает jQuery, jquery-migrate и ленивую капчу, как для формы в тексте страницы

slate.hd_forms нужно задать до того, как тема решит, что подключать в <head>, поэтому из шаблона страницы или блока он опаздывает. Для этого в корне темы «Сайта» есть ранняя точка конфигурации u-early-layer.html: в поставке Slate она пустая, index.html подключает её до решений <head>. Её использует готовая конфигурация; собственные изменения в этот поставляемый файл требуют защиты при обновлении:

{$_ = $wa->globals("slate.hd_forms", true)}

Например, страница с блоками на всю ширину может убрать общий контейнер. Файл собственной страницы начинается с подключения макросов; содержимое составляется из блоков:

{include utils.html}
{$_ = $wa->globals("hideContainer", true)}
{$_ = $wa->globals("slate.main_class", "s-layout__main--blocks")}
{$layout = [
    ["block" => "page-hero", "props" => ["title" => "Наша команда"]]
]}
{call render_layout layout=$layout}

Чтобы на своей странице не было заголовка и боковой колонки, достаточно двух строк в её шаблоне:

{$_ = $wa->globals("globalHeaderHideTitle", true)}
{$_ = $wa->globals("hideSidebar", true)}

Размещайте собственные страницы и подмены в custom/ темы «Сайта». Изменение поставляемого index.html для этих задач не требуется. Убирая контейнер, задавайте нужную ширину внутри блоков.

Скрыть заголовок, крошки или колонку у одной страницы

Тема ничего не прячет сама — ни по первому блоку, ни по содержимому страницы. Если заголовок, крошки или колонка не нужны, это указывается явно, в «Дополнительных параметрах» того, что показывается. Строки пишутся в виде ключ=значение:

Параметр Что делает
hide_title=1 Не выводить главный заголовок (h1)
hide_breadcrumbs=1 Не выводить хлебные крошки
hide_sidebar=1 Не выводить боковую колонку
sidebar_widgets=[…] Свой состав боковой колонки — в том же формате, что у настройки колонки этого раздела. Разделы с составом колонки: страницы, каталог и поиск магазина, блог, сообщество; у «Фото» колонку составляют плагины, состава нет.
hide_header=1 Не выводить шапку
hide_footer=1 Не выводить подвал

Где эти параметры работают:

Что настраиваете Где «Дополнительные параметры»
Страница «Сайта» «Сайт» → страница → «Дополнительные параметры»
Страница магазина, «Блога», «Фото», «Поддержки», «Рассылок», «Сообщества» Настройки страницы в своём приложении
Категория магазина «Магазин» → категория → «Дополнительные параметры»
Товар «Магазин» → товар → «Дополнительные параметры»
Запись «Блога» Запись → «Дополнительные параметры»
Альбом «Фото» Настройки альбома → «Дополнительные параметры»

Параметр только включает скрытие: настройка темы его не отменяет. Если спрятать заголовок страницы, выберите блок с главным названием страницы и задайте ему h1 — для этого есть «Тег заголовка» ("title_tag" => "h1" в описании блока). Тема сама заголовок блока в h1 не превращает.

То же самое для своего шаблона делают глобальные параметры из таблицы выше: hide_title=1 соответствует globalHeaderHideTitle, hide_breadcrumbs=1 — hideBreadcrumbs, hide_sidebar=1 — hideSidebar, sidebar_widgets — sidebarWidgets.

Настройки одной категории или товара

В дополнительных параметрах категории или товара укажите строки ключ=значение:

variant__catalog_subcategories=02-tiles
variant__product_layout=02-landing

Первая строка меняет вид подкатегорий (01-chips, 02-tiles, 03-cards, 04-banners, 05-list, 06-compact), вторая — вариант страницы товара (01-three-columns или посадочная 02-landing). Отдельных видов страницы категории «Разделы» и «Витрина» больше нет: меняется вид подкатегорий, а сама категория выводится обычной страницей. Для своего узла имя параметра строится как variant__<имя_узла>, с заменой / на _. Значение — идентификатор существующего варианта без .html, например 02-tiles.

Можно также передать объявленные настройки с префиксами catalog__ и product__. Для флажков используйте 1 для включения и пустое значение после = для выключения. Для переключателей и списков — точное значение одного из вариантов установленной темы. Значения 0, true или on не заменяют значение флажка. Точное имя берите из установленной темы: необъявленный ключ игнорируется. Значение variant__… принимается, только если состоит из строчных латинских букв, цифр и дефиса. Настройки шапки, подвала или авторизации этот механизм не подменяет. Пустое или несуществующее имя варианта не создаёт новый шаблон: узел использует предусмотренный выбор резервного варианта.

Порядок приоритета у товара: его параметры → параметры его основной категории ($product.category_id) → настройки темы. Категория использует только собственные параметры, затем настройки темы. Подкатегории не наследуют параметры родителя; у товара параметры родителей основной категории тоже не учитываются. Чтобы одинаково настроить несколько категорий, укажите параметры в каждой из них. На странице поиска без категории и товара такая подмена не выполняется.

Проверить, что подмена сработала, можно по HTML страницы: метка <!-- slate:node <узел> via … --> показывает, какой файл варианта выбран.

Параметры содержимого

У товара отдельно от подмены настроек поддерживаются:

Параметр Значение и действие
h1 Непустой текст заголовка товара; имеет приоритет над именем товара и SEO-именем плагина
related_posts ID записей через запятую, например 12,34; выбирает связанные записи установленного «Блога» для секции сведений о товаре
landing_page Адрес подстраницы товара для раскладки 02-landing; по умолчанию landing
landing_reviews Значение 0 убирает отзывы в раскладке 02-landing
related_album Номер альбома приложения «Фото» для вкладки «Фотографии» сведений о товаре; без него берётся номер из настройки «Номер альбома, если в товаре не указан»

Для связанных записей и альбома нужен включённый вывод соответствующего раздела сведений о товаре: вкладка «Фотографии» в составе по умолчанию выключена. Если related_posts пуст, используется выбранный в настройках источник записей. Показом видео управляйте через состав сведений о товаре и настройки соответствующего раздела.

Категория поддерживает enable_sorting для разрешения сортировки и view_type для исходного вида товаров (grid, list, table). Вид из адреса ?view= имеет приоритет над view_type, а view_type — над сохранённым выбором посетителя.

Страницы «Сайта» и магазина

В параметрах страницы приложения «Сайт» или страницы магазина поддерживаются:

Параметр Значение и действие
hide_title=1 Не выводить заголовок страницы; если страница собрана из блоков, h1 задайте блоку с главным названием страницы («Тег заголовка»)
hide_sidebar=1 Не выводить боковую колонку страницы
requisites=1 Вывести перед текстом страницы таблицу реквизитов из «Организации»
pages__sidebar_widgets Свой состав боковой колонки этой страницы в том же JSON-формате, что и одноимённая настройка темы
layout=<имя> Отрисовать страницу файлом custom/site/pages/<имя>.html из общей site-темы; используется только имя файла, без пути

Если файла custom/site/pages/<имя>.html нет, страница выводится обычным образом.

Баннеры и иконки категорий

Параметр категории Действие
category_banner_link, category_banner_title, category_banner_advertiser_name, category_banner_erid Ссылка, подпись и данные рекламодателя (отметка «Реклама», нужны оба поля) индивидуального баннера над товарами; картинки — группы category_banner и category_banner_mobile плагина «Изображения категорий»
category_sidebar_banner_link, category_sidebar_banner_title, category_sidebar_banner_advertiser_name, category_sidebar_banner_erid Ссылка, подпись и данные рекламной отметки баннера в боковой колонке; картинка — группа плагина, выбранная в настройках каталога (по умолчанию sidebar_banner)
catalog_banner_link, catalog_banner_title, catalog_banner_text Ссылка, подпись и текст картинки категории в большом меню шапки; картинка — группа catalog_banner плагина «Изображения категорий»
icon, icon_class_list Иконка пункта меню из набора темы (truck или lucide/truck) и дополнительные классы иконки; работают также у страниц и пунктов меню

Без картинки плагина индивидуальный баннер не выводится, и тема показывает общий баннер из своих настроек, если он задан.

Совместимость и предпросмотр

Для совместимости поддержан параметр категории subcategories_type=1|2|3: значения соответствуют 01-chips, 02-tiles, 06-compact. Явный variant__catalog_subcategories в той же категории имеет приоритет. Произвольные имена параметров другой темы автоматически в настройки Slate не преобразуются.

Для программной подмены настроек без изменения файлов разработчик может создать блок «Сайт → Блоки» с кодом theme.themesettings_return. Тема вызывает его один раз за запрос перед предпросмотром. Входные настройки находятся в $wa->globals("theme.event_args").theme_settings, результат нужно вернуть массивом через $wa->globals("theme.event_return"):

{$args = $wa->globals("theme.event_args")}
{$args.theme_settings.color__scheme = "dark"}
{$_ = $wa->globals("theme.event_return", $args)}

Это служебная точка: она меняет настройки текущего запроса, а не выводит текст на странице. Пустой результат оставляет исходные значения. Не используйте её вместо обычных полей панели, когда достаточно сохранить настройку сайта.

Предпросмотр панели меняет значения только для просмотра. Slate учитывает приложение «Настройки шаблонов», если оно установлено, и административный предпросмотр своей панели. Подмена параметрами товара или категории применяется после предпросмотра и сохраняет свой приоритет.

Для данных организации используйте готовый $wa->globals("slate.company"): его собирает тема после подмены настроек. Служебные кеши и вычисленные переменные из u-vars.html не заменяют настройки и не предназначены для произвольного переопределения.