К содержанию

Wiki · Веб-разработка

MODX

MODX – это бесплатная система управления сайтом с открытым кодом на PHP, в которой разработчик полностью контролирует HTML-разметку, а редактор работает с деревом страниц в админке. Код проекта открыт с 2004 года и распространяется по лицензии GPL v2.

Сразу оговоримся: если вы искали синтезатор Yamaha MODX, это совпадение названий. Здесь речь про CMS. Её часто выбирают для корпоративных сайтов с нестандартным дизайном, потому что система не навязывает свою вёрстку: дизайнер рисует что угодно, а верстальщик переносит макет в шаблон почти без изменений.

Ресурсы, шаблоны, чанки и сниппеты

Всё, что видит посетитель, собирается из нескольких типов элементов:

  • ресурсы: страницы сайта, которые лежат в дереве слева в админке;
  • шаблоны: HTML-каркас страницы;
  • чанки: повторяющиеся куски разметки, например шапка или форма;
  • сниппеты: небольшие программы на PHP, которые выводят списки, меню, обрабатывают формы;
  • дополнительные поля (TV): цена, галерея, дата мероприятия у нужных типов страниц;
  • плагины и дополнения из официального каталога для того, чего нет в ядре.

В шаблоне это выглядит так:

<title>[[*pagetitle]] | [[++site_name]]</title>
[[$header]]
[[!getResources? &parents=`5`]]

Первая строка выводит заголовок страницы и название сайта, вторая подключает чанк с шапкой. Третья запускает дополнение getResources, которое показывает список вложенных страниц раздела с номером 5. Восклицательный знак значит, что результат не берётся из кэша.

Схема сайта на MODX: дерево ресурсов, шаблоны, чанки и сниппеты, дополнительные поля TV и дополнения из каталога
Из чего состоит сайт на MODX

Как MODX собирает страницу и зачем ему кэш

Когда посетитель открывает адрес, MODX находит ресурс, берёт его шаблон, подставляет чанки, запускает сниппеты и сохраняет готовый результат в кэш. Следующий посетитель получит страницу из кэша, без повторной сборки. Поэтому некэшируемые теги с восклицательным знаком ставят только там, где результат меняется от запроса к запросу: формы, корзина, личные данные.

Пять шагов сборки страницы в MODX: ресурс, шаблон, чанки и сниппеты, сохранение в кэш и отдача готового HTML
Как MODX собирает страницу

Данные сайта MODX обычно хранит в базе MySQL, а работает на PHP, поэтому подходит обычный хостинг для PHP-сайтов.

MODX 3 и ветка 2.x: версии на октябрь 2026 года

Актуальная ветка MODX 3, последняя версия 3.2.4 вышла 26 августа 2026 года. Предыдущая ветка 2.x ещё получает исправления: версия 2.8.9 вышла в июле 2026 года. Название Revolution, или сокращённо Revo, относится к обеим веткам: так называется линейка MODX, и официальный репозиторий проекта называется так же. Для перехода со второй ветки на третью есть официальное руководство. Перед обновлением проверяют, есть ли у всех установленных дополнений версии под MODX 3, иначе после перехода часть функций сайта может перестать работать.

MODX, 1С-Битрикс и WordPress: что под какую задачу

ЗадачаMODX1С-БитриксWordPress
Сайт компании с авторским дизайномВёрстка переносится в шаблоны как естьШаблон сайта и компоненты, есть готовые решенияСвоя тема или конструктор страниц
Магазин с обменом с 1СЧерез дополнения, обмен обычно дописываютМодуль магазина и штатный обмен с 1СЧерез плагины магазина и обмена
Блог, медиа, много авторовВозможно, настраивается вручнуюВозможно, через инфоблокиИсходная задача системы
ЛицензияБесплатно, GPL v2Платная, несколько редакцийБесплатно, GPL

Все три системы на PHP, поэтому дело не в языке, а в задаче и в том, кто будет сайт поддерживать. Общие критерии выбора движка собраны в статье CMS.

Когда MODX подходит, а когда стоит взять другую CMS

  • Сайт компании или промо с авторским дизайном, где нужна чистая разметка без лишних обёрток.
  • Каталог услуг или продукции без корзины: характеристики выносят в дополнительные поля страниц.
  • Несколько сайтов или языковых версий в одной установке: для этого в MODX есть контексты.
  • Магазин, где каталог, цены и остатки живут в 1С и меняются каждый день. Обмен здесь придётся дописывать, и объём этой работы часто недооценивают на старте.
  • Проект, где владелец хочет сам собирать сайт из готовых тем и плагинов без разработчика.

Что проверить владельцу сайта на MODX

  • До старта проверьте, найдёте ли вы другую команду, которая возьмёт сайт на MODX, если с текущей не сложится.
  • Обновляйте ядро и дополнения, даже если сайт «и так работает». Документация MODX называет обновления одной из четырёх главных мер защиты вместе с закрытием папки /core/, защитой админки и межсетевым экраном для сайта. Админка на стандартном адресе без ограничения доступа как раз нарушает третью меру.
  • Проверьте, что включены ЧПУ: в MODX они настраиваются отдельно, иначе адреса будут вида index.php?id=12.
  • Попросите вывести поля ресурса в title и description, чтобы мета-теги можно было править без программиста.

Если сайт достался от прежнего подрядчика и вы не уверены, на чём он сделан, посмотрите на признаки. Админка по умолчанию открывается по адресу /manager/, хотя на защищённых сайтах её переносят. В коде страниц часто встречаются пути /assets/components/, куда дополнения кладут свои файлы. Надёжный способ один: спросить подрядчика. А состояние такого сайта покажет технический аудит.

Сайты под задачу мы делаем в услуге Разработка сайтов. Если проект уже работает на MODX, берём его на доработку и поддержку: доработка существующего сайта и техническая поддержка.

Evo и Revo, правка страниц, ЧПУ и переход на MODX 3

Чем MODX Evolution отличается от Revolution?

Evolution – первая линейка MODX, Revolution – переписанная следующая, и официальный проект развивает именно её: к ней относятся ветки 2.x и 3. Evolution живёт отдельно, силами сообщества, под названием Evolution CMS. Шаблоны и дополнения у линеек несовместимы, так что переезд с Evo на Revo по сути означает перенос сайта.

Как редактору поменять текст на сайте MODX?

Войти в админку, найти страницу в дереве ресурсов, открыть её, поправить содержимое и сохранить. Цену, галерею или дату мероприятия меняют в дополнительных полях на той же странице, если разработчик их завёл.

Каким сниппетом вывести список вложенных страниц раздела?

Обычно getResources или более быстрым pdoResources из пакета pdoTools. В параметре parents указывают номер родительского ресурса, а вид каждого пункта задают отдельным чанком. Если список одинаков для всех посетителей, вызывайте сниппет кэшируемым, без восклицательного знака, тогда страница не будет собираться заново на каждый запрос.

Где в MODX лежат шаблоны и чанки?

По умолчанию в базе данных, их правят прямо в админке. Если команда хочет держать код в файлах и системе контроля версий, элементы делают статическими и привязывают к файлам. Ядро находится в папке /core/, её закрывают от доступа из браузера, а дополнения кладут свои скрипты и стили в /assets/components/.

Почему адреса страниц выглядят как index.php?id=12 и как включить ЧПУ?

Потому что дружественные адреса сразу после установки выключены. Их включают в системных настройках и переименовывают поставляемый файл ht.access в .htaccess, чтобы сервер понимал новые адреса. Потом проверьте, что старые ссылки с id ведут 301-редиректом на новые и поисковик не видит одну страницу по двум адресам.

Что проверить перед переходом с MODX 2 на MODX 3?

Прежде всего, есть ли у каждого установленного дополнения версия под третью ветку: без неё часть функций сайта отвалится. Дальше версия PHP на хостинге, полная резервная копия и пробный переход на копии сайта по официальному руководству. Спешить некуда, ветка 2.x пока получает исправления.

Как сделать всплывающую форму заявки на MODX?

Само окно делают вёрсткой и скриптом в шаблоне, а отправку обрабатывает сниппет, чаще всего дополнение FormIt. Вызывают его некэшируемым тегом с восклицательным знаком, иначе форма будет отдаваться из кэша и заявка не дойдёт.

Документация и репозиторий MODX

  • MODX: официальный сайт и страница загрузки
  • MODX: документация, синтаксис тегов и рекомендации по защите сайта
  • MODX Revolution: репозиторий проекта и лицензия GPL v2

Остались вопросы по теме «MODX»?

Напишите нам в Telegram или MAX. Ответит специалист, который отвечает за эту тему, или руководитель проектов в рабочее время.

Дмитрий КолесниковОтвечает по темеДмитрий КолесниковWeb-разработчик

Посчитайте стоимость проекта за 2 минуты

Калькулятор соберёт смету по нашим тарифам: сайт, дизайн, интеграции и поддержка.