Полезная информация

Дополнительные скрытые настройки и обработчики в теме дизайна

Поддержка Bodysite
24 апреля 2020 11:22
+1

В теме дизайна предусмотрена возможность обрабатывать/использовать дополнительные настройки, которыми можно управлять через блоки приложения "Сайт".

Внимание! Все указанные ниже способы переорганизации и обработки настроек предназначены для опытных пользователей.

Блок дополнительных настроек megashop.extend_settings

Доступные настройки:

  • container_width — ширина контейнера сайта;
  • product_overview_features_ids — ID характеристик для вывода в верхнем блоке карточки товара, сгруппированный по типам товаров, например:
  • [
        1 => [ 'brand', 'cvet', 'ves' ],
        2 => [ 'manufacturer', 'diagonal', 'tip_displeya' ]
    ]

    Таким образом можно указать индивидуальный набор характеристик, заданный для каждого типа товара (где 1, 2 – ID типов товаров).

  • catalog_products_extend_features_ids — ID характеристик для вывода в виде отображения каталога "Список", сгруппированный по типам товаров (см. выше);
  • catalog_products_thumbs_features_ids — ID характеристик для вывода в виде отображения каталога "Список", сгруппированный по типам товаров (см. выше);

Блок должен возвращать массив с настройками через конструкцию $wa->globals('megashop.return', $extend_settings). Пример блока с настройками:

{$extend_settings = [
    'product_overview_features_ids' => [
        1 => [ 'brand', 'cvet', 'ves' ],
        2 => [ 'manufacturer', 'diagonal', 'tip_displeya' ]
    ],
    'container_width' => '1600px'
]}

{$wa->globals('megashop.return', $extend_settings)} 

Обработчики в теме дизайна megashop.event.*

Обработчики позволяют по-своему настроить некоторые тонкие конфигурации темы дизайна.

Аргументы для обработки доступны через конструкцию $wa->globals('megashop.event_args'). Результатом обработки должен быть такой же массив с аргументами, вернуть его можно с помощью конструкции {$wa->globals('megashop.event_return', $args)}.

Доступные обработчики:

  • megashop.event.config — служит для обработки JS-конфигурации темы дизайна (window.megashop.config).

    Аргументы:
    config — массив настроек JS-конфигурации.
    Пример блока с обработчиком:
  • {$args = $wa->globals('megashop.event_args')}
    {$config = $args['config']}
        
    {$config.commons.cart_onenter_timeout = 0}
    {$config.commons.catalog_onenter_timeout = 0}
        
    {$args['config'] = $config}
    {$wa->globals('megashop.event_return', $args)}

    В этом примере изменены тонкие настройки JS-конфигурации, такие как cart_onenter_timeout — таймаут до открытия всплывающей корзины установлен на 0 миллисекунд и catalog_onenter_timeout — таймаут до открытия списка категорий в горизонтальном каталоге категорий аналогично установлен на 0 миллисекунд.

    Весь список элементов конфигурации доступен в шаблоне head.html приложения "Сайт" (блок с конфигурацией находится между комментариев {* Script Config Start *} и {* Script Config End *})

  • megashop.event.theme_settings — обработчик настроек темы дизайна.

    Аргументы:
  • theme_settings — массив с настройками темы дизайна.

    Пример блока с обработчиком:

    {$args = $wa->globals('megashop.event_args')}
    {$theme_settings = $args['theme_settings']}
        
    {if $wa->user()->isAdmin()}
        {$theme_settings.header_variant = 4}
    {else}
        {$theme_settings.header_variant = 2}
    {/if}
        
    {$args['theme_settings'] = $theme_settings}
    {$wa->globals('megashop.event_return', $args)}

    В этом примере переопределена настройка "Вариант отображения шапки" — для администратора будет использоваться "Вариант №4. Суперкомпактный", для всех остальных — "Вариант №2. Подробный (Поисковая форма в средней части шапки)".

    С помощью этого обработчика можно гибко установить индивидуальные настройки в зависимости от текущей страницы, от того, открыта ли сейчас карточка товара определенной категории и т. д.