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 - авторизация, регистрация веб пользователей, напоминание пароля, управление контентом в зависимости от прав доступа.
Breadcrumbs, FirstChildRedirect, UltimateParent - навигация.
Плагины не входящие в дистрибутив, но здорово упрощающие работу.
Плагин EditArea - редактор кода с подсветкой синтаксиса , поиском, заменой , переносом строк и пр .. Демо можно посмотреть здесь .
Плагин commentTags - позволяет комментировать участок кода ( всё что между [ comment ].....[/ comment ]
Плагин PHx - ещё больше динамики Вашему сайту. Позволяет модифицировать переменные или менять контент в зависимости от их значения.
Продолжение следует....
(Вышла в свет новая версия MODx Evolution 1.0.0 - потестирую и продолжу )