CMS MODx - описание системы ( краткий обзор возможностей )

В сети встречается множество обзоров modx cms, но сравнене с cms, на мой взгляд,  субъективны.
Дело в том, что разработчики позиционируют эту систему как CMF, то есть это не жёсткая система управления, а скорее интерфейс связывающий множество технологий или даже библиотека с интерфейсом, который может быть модифицирован под конкретную задачу - фактически сделана cms с необходимой функциональностью. Наиболее удачно применима в специализированных системах, там где стандартные движки с ограниченным набором функций просто не в состоянии решить поставленную задачу или же её решение требует значительных временных затрат. Но безусловно, в силу своей универсальности, modx позволяет делать и обычные сайты.

Итак, приступим. CMS MODX 0.9.6.3

После инсталляции мы получаем доступ к хранилищу документов в виде древовидной структуры.
Дерево с неограниченной вложенностью - ключевой момент идеологии всей системы. Папки, подпапки, дочерние документы, ссылки позволяют не только организовать упорядоченную структуру хранения документов, упростить работу с готовыми структурами, но и использовать для автоматизации наполнения контента и расширения функционала .
Каждый элемент дерева (документ) имеет уникальный id и содержит набор фиксированных полей (переменных) . Одно из полей - шаблон отображения (template). Шаблон можно назначить для группы документов. Для каждого шаблона можно назначить набор собственных переменных с уникальным значением для конкретного документа - template variable (TV).
 
Встроенная функциональность системы позволяет дублировать элемент дерева (создаётся полная копия элемента с сохранением структуры вложенных документов и переменных), удалять, публиковать или отменять публикацию, менять родительскую папку, модифицировать переменные документов, сортировать, менять права доступа и пр.
   
Для переменных доступен достаточно широкий диапазон типов данных - число, строка, дата, текст ,ссылка, файл, запрос к базе, фрагмент HTML, выполняемый кусок php кода  и пр. Кроме этого для переменной можно назначить способ её отображения ( виджеты). То есть, например, можно создать переменную в которой будет указан путь к файлу CSV, который автоматически будет отображён на страничке в виде таблицы с заданными характеристиками.   

Часто используемые, повторяющие части сайта могут быть вынесены в чанки - куски  html кода. Чанки могут быть вставлены в шаблон , в TV переменную или в контент. Чанки  могут содержать вызовы сниппетов, переменные, html, javascript или просто текст необходимой структуры (json, xml).

Сниппеты - куски исполняемого php кода.
В рамках сниппета через api доступны все элементы системы - документы, переменные, чанки, прочие сниппеты .
То есть можно менять значение элементов и/или создавать, удалять, редактировать их.  API CMS MODx поддерживает вывод результатов работы в "плейсхолдеры" - переменные подобные TV , но не привязанные к конкретному шаблону. Это позволяет полностью разделить работу дизайнера и программиста.
Сниппеты позволяют реализовать практически любую функциональность необходимую для динамического отображения контента.

Кроме элементов непосредственно формирующих публикуемую информацию, cms modx включает в себя модули и плагины.

Плагины - части php кода, выполняемые по событиям системы, как на этапе формирования запрашиваемого документа, так и для модификации или расширения функционала интерфейса администратора.

Модули дополняют функционал системы администрирования. Например, можно добавить интерфейс системы рассылки сообщений подписчикам или анализ статистики, управление внешним форумом или табличную обработку TV.

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

Ядро modx поддерживает развитую систему прав доступа, как для администраторов сайта (менеджеров), так и для обычных веб пользователей.
Элементы дерева документов могут быть объединены в произвольное количество групп. Документ может принадлежать одновременно нескольким группам.
Пользователю также может быть назначена принадлежность к той или иной пользовательской группе.
Права доступа определяются путём связи групп документов и групп пользователей.

CMS MODx включает в себя уникальную функциональность - @BINDINGS . С помощью этого инструмента можно виртуально связать произвольный источник данных со заначением по умолчанию переменной TV.

Ещё одним большим плюсом системы является её гибкость для SEO. В систему встроен механизм работы с мета тегами и ЧПУ.

В качестве вкусностей, в базовом дистрибутиве, предустановленны два модуля:
Doc Manager и QuickEdit.

Doc Manager - позволяет менять переменные документа или группы документов , даже те которые не доступны для редактирования обычными средствами.
Например можно поменять дату создания для ветви в дереве документов.

QuickEdit - фронтэнд редактор. Можно редактировать контент, TV переменные и свойства документа находясь непосредственно на странице сайта.

После инсталляции cms modx включат в себя несколько готовых сниппетов - ditto, wayfinder, jot, eform и пр .

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

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

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

eform - произвольные формы. Поддержка шаблонов, проверка полей, защита от подмены скрытых полей, загрузка файлов и пересылка на почту, ajax.

ListIndexer - поиск, отображение новых документов сайта.

NewsPublisher - Публикация новых статей ( документов ) веб пользователями.

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

MemberCheck, Personalize, WebChangePwd, WebLogin, WebSignup  - авторизация, регистрация веб пользователей, напоминание пароля, управление контентом в зависимости от прав доступа.

BreadcrumbsFirstChildRedirect, UltimateParent  - навигация.

 

Плагины не входящие в дистрибутив, но здорово упрощающие работу.

Плагин EditArea - редактор кода с подсветкой синтаксиса , поиском, заменой , переносом строк и пр .. Демо можно посмотреть здесь .

Плагин commentTags - позволяет комментировать участок кода ( всё что между [ comment ].....[/ comment ] - не выводится и не обрабатывается )

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

Продолжение следует....
(Вышла в свет новая версия MODx Evolution 1.0.0 - потестирую и продолжу )


 

Последнее изменение документа: 29 Ноябрь 2009