Где изменить надпись «Ваша корзина пуста» в miniShop2

    При работе с интернет-магазином на MODX Revolution и компонентом miniShop2 часто возникает необходимость кастомизировать стандартные сообщения. Одна из самых частых задач - замена фразы «Ваша корзина пуста» на собственный текст или её стилизация. Разберём, где именно хранится эта строка и как её безопасно изменить.

    Где находится текст «Ваша корзина пуста»

    Данная надпись содержится в языковом файле компонента minishop2. Путь к файлу: core/components/minishop2/lexicon/ru/default.inc.php. Найдите в нём строку:

    $_lang['ms2_cart_is_empty'] = 'Ваша корзина пуста';

    Именно это значение выводится в чанке tpl.msCart.empty или напрямую в шаблоне корзины, когда в ней нет товаров.

    Как изменить текст без риска при обновлении

    Прямое редактирование файла default.inc.php приведёт к потере изменений при обновлении компонента. Правильный способ - создать свой языковой файл в папке core/components/minishop2/lexicon/ru/custom.inc.php и переопределить нужные строки:

    <?php
    $_lang['ms2_cart_is_empty'] = 'Пока в корзине ничего нет';
    ?>

    После этого очистите системный кэш MODX, и новое сообщение будет отображаться на сайте.

    Стилизация шаблона пустой корзины

    Для оформления внешнего вида сообщения используется чанк tpl.msCart.empty. По умолчанию он содержит простой HTML-код с текстом. Чтобы изменить стили, создайте копию этого чанка (например, myCartEmpty) и отредактируйте его в менеджере MODX. Затем в системных настройках miniShop2 (раздел ms2_cart_tpl_empty) укажите имя вашего нового чанка.

    Пример кастомного чанка для пустой корзины:

    <div class="cart-empty">
        <h3>Ваша корзина ожидает покупок</h3>
        <p>Добавьте товары из каталога, и они появятся здесь.</p>
        <a href="[[~[[++site_start]]]]" class="btn btn-primary">Перейти к покупкам</a>
    </div>

    Не забудьте добавить CSS-стили для классов .cart-empty и вложенных элементов в ваш файл стилей.

    Дополнительные настройки для продвинутых пользователей

    Если вы хотите полностью управлять логикой отображения корзины, используйте сниппет msCart с параметрами:

    • tpl - имя чанка для непустой корзины (по умолчанию tpl.msCart);
    • tplEmpty - имя чанка для пустой корзины (по умолчанию tpl.msCart.empty);
    • includeTVs - список TV-параметров для подгрузки.

    Пример вызова с кастомными шаблонами:

    [[!msCart?
        &tpl=`myCart`
        &tplEmpty=`myCartEmpty`
    ]]

    Такой подход даёт полный контроль над вёрсткой и позволяет интегрировать любые HTML-структуры.

    Часто задаваемые вопросы

    Почему после изменения языкового файла текст не обновился?

    Очистите системный кэш MODX через меню «Система» → «Очистить кэш». Если используется кэширование на стороне браузера, обновите страницу с помощью Ctrl+F5.

    Можно ли выводить разные сообщения для разных контекстов?

    Да, для этого создайте отдельные языковые файлы для каждого контекста (например, web.inc.php) и подключите их через системные настройки cultureKey или через плагин.

    Как изменить текст только для определённой группы пользователей?

    Используйте условие в чанке tpl.msCart.empty с проверкой групп пользователей MODX:

    [[+modx.user.id:isloggedin:then=`<p>Текст для авторизованных</p>`:else=`<p>Текст для гостей</p>`]]

    Этот метод не затрагивает языковые файлы и работает на уровне шаблона.

    Как перевести надпись на другой язык?

    Создайте языковой файл для нужной локали (например, en/default.inc.php) и переопределите строку ms2_cart_is_empty. Убедитесь, что в настройках сайта установлен соответствующий язык.

    Что делать, если после обновления miniShop2 мои изменения сбросились?

    Всегда используйте отдельный файл custom.inc.php для переопределения лексиконов - это гарантирует сохранность настроек при обновлении компонента.

    Часто задаваемые вопросы