8 часов назад
В какое славное время я взялся за изучение кода)) Только выучил элементарную базу PHP, как выясняется, что это скоро и не нужно никому будет). Расходи...
Вопрос по будущему MODX и стратегии развития. 3
Сегодня в 01:40
Далее код оставил без изменений
<script type="text/javascript">
// <![CDATA[
{literal}
Ext.onReady(f...
Помогите добить VideoGallery 2
Вчера в 20:13
Не нужно меня поддерживать в данном конкретном случае. Прошу убрать лишнее
Опыт по переносу MODX2 на MODX3 и Minishop3 2
Вчера в 19:28
В общем убил целый день, но… так у меня ничего и не вышло.
не могу зарегистрировать класс.
содержание самого файла my_msorderhandler.class.php:
...
Кастомизация minishop'a 9
Вчера в 16:01
Компонент очень нужный и мне кажется будет востребован.
У меня тут задача стоит сделать что-то подобное на сайте на движке на MODX 2.8 — там есть ста...
ms3Variants - Реализация вариантов одного товара в MiniShop3 4
Вчера в 14:42
тут пришла мысль что никто не захочет просто так делиться своим опытом за бесплатно. Можно было бы сделать статьи и кейсы платными? Типа хочешь прочит...
Предложение по развитию сообщества: Создание каталога портфолио/реализованных кейсов на MODX с демо ... 1
Вчера в 10:08
Добрый день! Я этот компонент давно делал, и еще лет 5 не возвращался к нему… он работоспособен, все в этом плане нормально (ну по крайней мере с php ...
msProductKits - удобное управление товарами-комплектами (наборами товаров) 29
19 февраля 2026, 10:22
Вижу, спасибо.
Ошибочно решил, что если есть в документации minishop2, то в старых версиях есть и сам код не посмотрел.
Предыдущий идентификатор статуса при событии 'msOnChangeOrderStatus' 4
19 февраля 2026, 09:27
Привет, Алексей.
1. Как определяем ботов
Проверка идёт по User-Agent в ms3rv_is_bot() (helpers.php). Используется regex по типичным маркерам краул...
ms3RecentlyViewed - Недавно просмотренные товары для MiniShop3 2
Я обычно пляшу от удобства дальнейшей работы заказчика в админке.
Если требуются какие-либо особые доп. поля, или хитрое оформление редактора и т. д., то выношу в отдельный шаблон.
Таким образом для стандартного магазина получается «Главная страница», «Стандартная страница», «Категория», «Товар», «Новость, публикация» ну еще пара служебных.
Корзину, поиск и все страницы, которые не требуют своих TV или какой-то особой верстки, делаю на «Стандартной странице» с условиями (обычно по ID) на Fenom.
Затем, что разграничить доступ к админке для разных городов проще и лучше с контекстами, чем ресурсами.
Если же ресурсами-контейнерами, то выше )).
И в сниппетах просто указывать, откуда забирать ресурсы:
Если же у каждого контекста своя структура с различными разделами (например, новости только для этого города, контакты и т. д.):
то можно использовать настройки контекста. В случае, допустим, с новостями добавляете у каждого параметр page_news, где указываете ID страницы «Новости» этого контекста-города. В примере выше для первого это 5, для второго — 13 и т. д.
Тогда в общем (единственном) шаблоне в вызовах просто пишете:
Для меню же вообще не указываете контекст — по умолчанию выводится все из текущего.
Про чанки и шаблоны не совсем понял. Без описания структуры меню (есть ли общие для каждых городов страницы, например) сложно сказать что-то конкретное.
Сделайте 14 контейнеров-городов с объектами внутри. Хотите, в общем контексте, хотите вынесите в отдельный для удобства.
Фильтровать в общем каталоге можно по родителю.
Если нужно, ресурс со сниппетом для Ajax-запроса можете сделать в любом контексте.
Параметр и значение зависят от реализации. Это может быть как название города, так и ID ресурса или еще какой уникальный идертификатор.
Если нужна фильтрация предложений на странице каталога, то да — можно использовать mSearch (вернее, mFilter, идущий с ним в комплекте).
Если достаточно просто списка предложений на страницах городов/регионов, то хватит TV и какого-нибудь сниппета, выводящего ресурсы (getResources, pdoResources, getProducts и т. д.).
Можете написать сниппет, который будет вытаскивать из таблицы modx_ms2_products значение поля image для ID текущего ресурса, а можете поставить Rowboat и сделать так:
Ну а в чанке img используйте плейсхолдер [[+image]], который выведет путь к картинке. Дальше по обстоятельствам ).
Смотрите, что там до этих строк, как формируется эта $response и, соответственно, проверяйте.
Вызов:
А вообще тут много полезного )).
Тогда добавьте соответствующий хук и параметр с указанием куда редиректить:
А чтобы заработало сообщение без редиректа, плейсхолдер должен быть некешируемым: