Почему я выбираю MODx
В 2006 году я подумал "А почему бы не делать сайты левачком, на заказ". В то время я работал в НН РУ но иногда поступали предложения сваять какой-нить "сайт с админкой" на стороне, попытки были и до этого, Были SmallNuke и Joomla! но это было немного не то, и я реально поставил большое количество движков на тестовых денверах на компьютере, чтобы отобрать более приближенный к запросам:
- Шаблоны должны храниться в БД, чтобы не нужно было чего-то скачивать-менять-загружать "наверх", проще поменять шаблон из админского интерфейса. Система должна позволять разбивать шаблоны на статические и динамические блоки для удобной компоновки (как раньше было header.php, footer.php и прочие файлы, которые собирались в один в директории с шаблонами)
- Система должна иметь удобоваримые URLs и возможность их изменения.
- Самое главное - дополнительные поля каждого документа. Помимо заголовка страницы, названия раздела, краткого текста, полного текста с редактором очень нужна возможность добавлять в документ произвольные сущности - дополнительные текстовые поля, прикреплять файлы, устанавливать переключатели, дописывать некоторые части страницы и многое-многое еще.
Именно третий пункт - основной камень преткновения, наткнувшись на работе на возможность создавать абсолютно любую коллекцию элементов как составляющей одного элемента я понял как это удобно и хотел найти систему с подобным функционалом, только бесплатную.
Первым шагом была система Etomite. Она просто убила языком шаблонов, например, простой шаблон страницы мог выглядеть так:
<html>
...
<body>
{ {header} }
[ [Menu] ]
<h1>[ *pagetitle* ]</h1>
[ *content* ]
{ {footer} }
</body>
</html>
В фигурные скобки заключаются статично подключаемые блоки (чанки), которые тоже редактируются в определенном разделе админки, в квадратные со звездочками - сущности текущего документа, а в двойные квадратные скобки - исполняемый код, редактируемый тоже в отдельном разделе (сниппеты). Система была беспредельно интересна с точки зрения быстровозводимости сайта - притянуть готовый шаблон к движку занимало исключительно мало времени, но ни одного сайта я на этой системе так и не создал, не успел :)
Один из знакомых в аське порекомендовал ответвление от Etomite - MODx. Системы были абсолютно близнецы-братья ,но в MODx появилась самая главная фишка - Параметры TV (Template Variables). Попробую объяснить, как это работает.
К определенному шаблону документов помимо стандартных уже перечисленных в начала статьи полей можно прибавить неограниченного количество таких элементов, как:
- Текстовое поле
- Большое текстовое поле
- Загрузка файла(картинки, и т.п.)
- Радиокнопки
- Чекбоксы
- Селектбоксы
- и еще несколько типов дополнительных полей
Дополнительное поле абсолютно равноправно всем встроенным полям в системе и его можно вынуть в любом месте документа с помощью
[ *имя_параметра* ]
Например, легко можно сделать меню ресторана - добавить в документ текстовое поле вес, выпадающий список с количеством печенюшек в коробке, текстовое поле цена, скидка, и так далее, а затем фильтровать по любому из этих параметров или выводить, например, общий список в виде таблицы. Автомагазин, магазин автокосметики, масел, да все, что угодно - можно собрать документ из абсолютно любого набора полей. http://rfweb.su/portfolio и http://proekt52.ru/design/private - с точки зрения системы это - списки документов(причем, отличающиеся весьма немного). Невероятно, но именно так просто. Именно это-самый главный козырь системы.
to be continued..






