Недавно мне посчастливилось познакомиться с невиданной мной доселе CMS - MODX ("модекс"). Все случилось просто - позвонил старый знакомый и попросил "посмотреть" его сайт и взять его на поддержку. Когда-то его сайт был сделан на всеми любимым Wordpress, но постоянные атаки видимо сподвигли его отказаться от этого движка и перейти на что-то "более другое". Этим "более другим" оказалась система MODX Revolution.

Когда я зашел в админку, у меня сначало закралось ощущение - "а не отказаться ли мне от этого". На первый взгляд вроде все просто и понятно - админка разбита на две колонки, в левой - древовидная структура разделов и материалов, можно сказать, рай для контент-менеджера. В правой - редактор содержимого страницы и/или настройка свойств того или иного объекта. Но если дело коснется администрирования сайта, его модификации и доработки функционала, тут все совсем не так, как в Joomla или Wordpress...

Если в Joomla и Wordpress "программирование" осуществлялось преимущественно мышкой, то в MODX нужно писать код с вручную, причем, иногда достаточно в большом количестве. Синтаксис кода весьма своеобразный. Скорее всего это отпугнет большинство веб-мастеров, не знакомых с программированием на PHP. Я тоже сперва пытался ужаснуться, но потом вспомнил, что когда-то освоил основы работы с php-фреймворком Laravel и меня тогда не напугало, что там вручную нужно писать ВСЕ, а часть команд вообще выполнять через командную строку :) После пары недель привыкания я уже достаточно свободно владел Laravel на таком уровне, чтобы создать на нем простенький проект вроде блога. Посему решил не сдаваться и стал читать документацию по MODX.

На удивление, освоение продвигалось довольно легко. По сложности я бы позиционировал MODX как промежуточное звено между Joomla, там где все делается мышкой и php-фреймворком, тем же Laravel, там где все делается вручную. У MODX уже есть готовая админка, но функционал "из коробки" просто ничтожен - максимум, на что способен MODX в базовой комплектации - создание сайта-визитки из нескольких страниц. Все остальные возможности расширяются дополнениями - плагинами, чанками, сниппетами. Какое-то время понадобилось, чтобы разобраться что это такое. Оказалось, все несложно:

  • плагин - как и в любой другой cms это программный модуль, расширяющий возможности движка, готовый компонент "под ключ". К примеру, вместо обычного текстового редактора устанавливается wysiwyg-редактор tinyMCE. Установили плагин - в админке появился визуальный редактор.
  • чанк - кусок html-кода, например, "подвал" сайта или виджет в боковой колонке. Чанк не может содержать php-код, но может содержать код отображения сниппета (см.). Чанки создаются вручную в окне редактора кода.
  • сниппет - это php-код, который выполняет ту или иную функцию. Например, показать список статей текущей категории. Или сформировать меню из разделов и подразделов. Сниппеты сожно создавать самостоятельно, либо загрузить их из репозитория MODX - их там огромное количество.

По мере расширения функциональности сайта неизбежно возникает необходимость установки дополнительных плагинов и сниппетов, поскольку стандартными средствами нельзя даже вывести список статей категории. Установка расширений не вызывает каких-либо затруднений - все до безобразия автоматизировано, точно так же как в Wordpress и Joomla.

Чем мне понравился и чем не понравился MODX?

Во-первых понравился быстродействием. Сложно оценить этот фактор на локальном хосте, тем не менее, админка работает заметно быстрее, чем в той же Joomla.

Во-вторых - ничего лишнего. В комплектации "из коробки" MODX "гол как сокол". С одной стороны это недостаток, но с другой - мы можем устанавливать те компоненты, которые нам действительно нужны, не нагружая сервер никакими лишними плагинами (типа "hello dolly" в Wordpress).

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

Если сравнивать с Joomla и Wordpress, сам подход к созданию сайта в MODX несколько иной, но мне он почему-то нравится больше.

Для MODX есть много документации на русском языке.

Ярко выраженных отрицательных черт я в MODX пока не нашел. Система для меня пока новая, многие кажущиеся недостатки - скороее особенности, к которым нужно привыкнуть и изучить. Вполне возможно, они со временем окажутся достоинствами.