Быстрые ссылки

MODX Revolution 3, miniShop2 и mFilter2: поддержка и доработка сайта на MODX

MODX Revolution — система, которую любят разработчики за гибкость: вёрстка не навязывается, вывод полностью контролируется, лишнего кода нет. Владельцы сайтов на MODX чаще сталкиваются с другой стороной — найти специалиста сложнее, чем по WordPress, а сайт, сделанный несколько лет назад, нередко застрял на старой версии. Разберу, как устроен MODX, что нужно знать про miniShop2 и mFilter2 и как обновляться.

Как устроен сайт на MODX

Понимание базовых сущностей помогает и ставить задачи разработчику, и самому править контент.

  • Ресурсы — страницы сайта в дереве слева. Каждый ресурс имеет заголовок, псевдоним (адрес), содержимое и шаблон.
  • Шаблоны — HTML-каркас страницы с тегами MODX.
  • Чанки — повторяющиеся куски HTML: шапка, подвал, карточка товара.
  • Сниппеты — PHP-код, который выводит данные: меню, списки ресурсов, формы.
  • TV (дополнительные поля) — поля ресурса сверх стандартных: картинка, цена, галерея.
  • Компоненты (дополнения) — пакеты, установленные через «Установщик»: pdoTools, FormIt, miniShop2, mFilter2 и другие.
  • Системные настройки — параметры сайта, ЧПУ, кэширование.

Если владельцу нужно поменять телефон в шапке, чаще всего он лежит в чанке или системной настройке, а не в каждой странице.

MODX 2 и MODX 3

MODX Revolution 3 вышел в 2022 году. Главные отличия для владельца:

  • требует более свежий PHP и поддерживает актуальные версии PHP 8;
  • переработанный код ядра с пространствами имён — часть старых дополнений не работает без обновления;
  • обновлённый интерфейс админки.

Ветка 2.x поддерживается всё меньше, а хостинги постепенно отключают старые версии PHP. Если сайт на MODX 2.x, обновление — вопрос времени.

Как обновиться до MODX 3

  1. Обновите MODX 2 до последней версии ветки 2.8.x. Прыгать с очень старой версии сразу на 3 нельзя.
  2. Составьте список дополнений и проверьте, есть ли у каждого версия для MODX 3. В «Установщике» видно версии и наличие обновлений.
  3. Сделайте копию сайта на поддомене или локально.
  4. Обновите дополнения до последних версий, совместимых с MODX 2.8.
  5. Обновите ядро до MODX 3 на копии через пакет обновления.
  6. Обновите дополнения до версий под MODX 3.
  7. Проверьте сниппеты и плагины, написанные вручную: старые обращения к классам ядра нужно переписать с новыми именами.
  8. Пройдите все ключевые сценарии: страницы, формы, корзина, фильтр, поиск, админка.
  9. Повторите на рабочем сайте в спокойное время.

Самое трудоёмкое — самописные сниппеты и дополнения, которые не обновлялись авторами. Их приходится заменять или дорабатывать.

miniShop2: магазин на MODX

miniShop2 — бесплатный компонент интернет-магазина для MODX. Он добавляет:

  • категории и товары как особые типы ресурсов;
  • поля товара: цена, старая цена, артикул, вес, производитель, опции;
  • корзину и оформление заказа;
  • способы доставки и оплаты;
  • заказы и статусы в админке.

Что важно знать

  • Шаблоны вывода — чанки с префиксом tpl.msProducts, tpl.msCart, tpl.msOrder. Правьте копии, а не исходные чанки компонента, иначе обновление их перезапишет.
  • Опции товара (размер, цвет) настраиваются в настройках miniShop2 и привязываются к категориям.
  • Оплата через белорусские сервисы подключается отдельными компонентами или доработкой под API провайдера.
  • Импорт товаров — из CSV встроенными средствами или через дополнительные компоненты, обмен с 1С — отдельными пакетами.

mFilter2: фильтры каталога

mFilter2 — популярный компонент фильтрации для miniShop2 и обычных ресурсов. Он умеет строить фильтры по полям товара, опциям, TV, производителям и цене, а также формировать SEO-страницы для комбинаций фильтров (например, «ламинат 33 класса Kronospan»).

Типичные проблемы с фильтром

  • Медленная работа на большом каталоге. Нужен корректный кэш и индексы в базе. Проверьте, не выключен ли кэш в параметрах вызова.
  • Пустые результаты после изменения опций — значения у товаров записаны в разном формате.
  • Дубли страниц — фильтр формирует адреса с параметрами, которые индексируются. Закройте их от индексации или используйте SEO-страницы компонента.
  • Ошибки после обновления miniShop2 — версии компонентов должны быть совместимы между собой.

Кэш в MODX

MODX кэширует ресурсы и результаты сниппетов. Если изменения не видны:

  • «Сайт — Очистить кэш» в верхнем меню админки;
  • проверьте, кэшируемый ли вызов сниппета: [[!snippet]] с восклицательным знаком — некэшируемый, без него — кэшируемый.

Частая ошибка — все вызовы сделать некэшируемыми «чтобы точно обновлялось». Сайт после этого заметно замедляется.

Безопасность MODX

  • Переименуйте папки manager, connectors и core при установке или ограничьте доступ к админке по IP.
  • Вынесите папку core за пределы корня сайта.
  • Обновляйте ядро и дополнения: уязвимости в старых версиях известны и эксплуатируются.
  • Проверяйте пользователей с доступом к админке.
  • Делайте резервные копии файлов и базы вне сервера.

Поддерживать MODX или переезжать

Оставаться на MODX разумно, если:

  • сайт работает, есть специалист для поддержки;
  • функциональность нестандартная, и на MODX она реализована хорошо;
  • дополнения имеют версии для MODX 3.

Задуматься о переезде на WordPress или OpenCart стоит, если:

  • сайт на очень старой версии с самописными сниппетами;
  • нет специалиста и сложно найти;
  • функциональность типовая — сайт услуг или небольшой магазин.

Переезд — это перенос контента, новая тема и редиректы. Сравнение систем — в статье какую CMS выбрать бизнесу.

Как ставить задачу по сайту на MODX

Чтобы разработчик быстро разобрался в чужом сайте на MODX, подготовьте:

  • доступ к админке с правами администратора и доступ к хостингу;
  • версию MODX и список установленных дополнений — их видно в разделе «Пакеты»;
  • адреса страниц, где нужно изменение, и скриншоты;
  • информацию о том, кто делал сайт и есть ли документация.

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

Резервные копии MODX

Для копий используют компонент backup-пакетов или средства хостинга. Важно копировать и файлы, и базу, включая папку core, которая может быть вынесена за пределы корня сайта, — её часто забывают. Перед обновлением ядра или дополнений копия обязательна.

Производительность MODX

Сайт на MODX может быть очень быстрым, если:

  • вызовы сниппетов кэшируются там, где данные не меняются для каждого посетителя;
  • используется pdoTools вместо устаревших сниппетов вывода — он заметно быстрее;
  • изображения уменьшаются при выводе через phpThumbOn или аналогичные компоненты, а не грузятся в исходном размере;
  • в шаблонах нет десятков вложенных вызовов чанков на каждый элемент списка.

При медленной работе включите режим отладки запросов и посмотрите, какие вызовы занимают больше всего времени.

Итог простой: MODX хорош, пока он обновлён и сделан аккуратно.

Чек-лист поддержки сайта на MODX

  1. Версия MODX и PHP актуальны или есть план обновления.
  2. Список дополнений с версиями и совместимостью с MODX 3.
  3. Правки шаблонов miniShop2 — в копиях чанков.
  4. Кэш включён, некэшируемые вызовы только там, где нужно.
  5. Админка защищена, core вне корня.
  6. Резервные копии вне сервера.
  7. Фильтр не плодит дубли в индексе.

Частые вопросы

Можно ли обновить MODX 2.x сразу до 3?

Сначала нужно обновиться до последней версии ветки 2.8, затем до MODX 3. Перед этим проверьте, есть ли у всех дополнений версии под MODX 3.

Бесплатен ли mFilter2?

mFilter2 — платный компонент из магазина дополнений для MODX. miniShop2 распространяется бесплатно.

Почему сайт на MODX медленный?

Часто из-за некэшируемых вызовов сниппетов, отсутствия кэша фильтра и тяжёлых запросов в самописных сниппетах. Это исправляется без смены CMS.

Сложно ли найти специалиста по MODX?

Сложнее, чем по WordPress или OpenCart. Поэтому важно, чтобы код сайта был понятным и без правок ядра.

Нужна помощь?

Если не хочется разбираться самому или не получилось — напишите мне. Посмотрю задачу и скажу, что нужно сделать, сколько это займёт и сколько будет стоить.

Доработка сайта на MODXНаписать в TelegramНаписать в Viber

Leave a comment