Продвинутые функции

Пользовательский JS

Тема Seller 2.0 поддерживает добавление пользовательского JavaScript-кода через систему блоков.

Как добавить

  1. Перейдите в приложение Сайт — Блоки.

  2. Создайте блок с именем site.{имя_темы}_js, где {имя_темы} — идентификатор вашей темы дизайна.

Для стандартной (не клонированной) темы Seller 2.0 имя блока будет:

site.seller2_js

Скрипты из этого блока добавляются перед закрывающим тегом </body>.

Пример содержимого блока

{literal}
<script>
    // Ваш JavaScript-код
    document.addEventListener('DOMContentLoaded', function() {
        console.log('Страница загружена');
    });
</script>
{/literal}

Весь код внутри блока необходимо оборачивать в теги {literal}...{/literal}, чтобы шаблонизатор Smarty не обрабатывал фигурные скобки как свои директивы.

Отложенная загрузка скриптов

Если вам нужно загрузить скрипт с задержкой (например, счетчик аналитики), вы можете использовать отложенную загрузку по событию прокрутки страницы:

{literal}
<script>
    (function() {
        var fired = false;

        window.addEventListener('scroll', function() {
            if (fired === false) {
                fired = true;
                setTimeout(function() {

                    // Сюда добавьте код, который должен загрузиться с задержкой
                    // Например, код Яндекс.Метрики

                }, 1000);
            }
        });
    })();
</script>
{/literal}

Код внутри setTimeout выполнится через 1 секунду после первой прокрутки страницы. Проконсультируйтесь с вашим маркетологом перед тем, как откладывать загрузку счетчиков аналитики — это может повлиять на точность сбора данных.

Клонирование темы

При создании клона темы дизайна имя блока должно соответствовать идентификатору клона. Например, если вы создали клон с именем seller2_28.03.2023, то блок должен называться:

site.seller2_28.03.2023_js

Старый блок site.seller2_js в клонированной теме работать не будет — необходимо создать новый блок или переименовать существующий.