Почему я выбираю MODx

В 2006 году я подумал "А почему бы не делать сайты левачком, на заказ". В то время я работал в НН РУ но иногда поступали предложения сваять какой-нить "сайт с админкой" на стороне, попытки были и до этого, Были SmallNuke и Joomla! но это было немного не то, и я реально поставил большое количество движков на тестовых денверах на компьютере, чтобы отобрать более приближенный к запросам:

  1. Шаблоны должны храниться в БД, чтобы не нужно было чего-то скачивать-менять-загружать "наверх", проще поменять шаблон из админского интерфейса. Система должна позволять разбивать шаблоны на статические и динамические блоки для удобной компоновки (как раньше было header.php, footer.php и прочие файлы, которые собирались в один в директории с шаблонами)
  2. Система должна иметь удобоваримые URLs и возможность их изменения.
  3. Самое главное - дополнительные поля каждого документа. Помимо заголовка страницы, названия раздела, краткого текста, полного текста с редактором очень нужна возможность добавлять в документ произвольные сущности - дополнительные текстовые поля, прикреплять файлы, устанавливать переключатели, дописывать некоторые части страницы и многое-многое еще.

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

Первым шагом была система 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..

rss email