Где изменить надпись «Ваша корзина пуста» в 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 для переопределения лексиконов - это гарантирует сохранность настроек при обновлении компонента.