PHP-фреймворк Webasyst, ориентированный на создание веб-приложений с бекендом и бизнес-приложений, теперь стал полноценной CMS-кой. С помощью системного приложения «Сайт» на фреймворке можно создавать сайты. Приложение бесплатное (LGPL).



Обычно в «классических» CMS всегда используются два понятия: 1) общий макет и 2) встраиваемые в него отдельные модули (ленты новостей, облака тегов, блоги, магазины и т.д.). Мы пошли несколько нестандартным путем и приняли другую архитектуру: адресное пространство, отведенное сайту, разделяется между независимыми приложениями без «навязывания» им общего макета. То есть не модули встраиваются в общий макет, а каждый модуль (в нашем случае приложение) использует свой собственный макет (тему оформления).



Например, адресное пространство может быть поделено между приложениями так: все внутри /blog/* отводится приложению «Блог», /forum/* — приложению «Форум», /shop/* — «Магазину», а остальные адреса (/*) обрабатываются приложением «Сайт». Каждое из этих приложений может быть при этом создано независимыми разработчиками и использовать свои собственные макеты дизайна.

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

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

Нестандартная CMS


Системное приложение «Сайт» выполняет интегрирующую роль в создании сайтов на основе Вебасиста и предоставляет следующий функционал:
  1. Управление маршрутизацией (роутингом): веб-интерфейс для редактирования правил маршрутизации и поселения приложений внутри сайта (под поселением понимается прикрепление фронтенда приложения к подмножеству адресного пространства сайта).

  2. Многосайтовость: можно запарковать на установку Вебасиста несколько доменных имен и создать на каждом из них свои сайты, настраивая маршрутизацию индивидуально для каждого сайта.

  3. Редактор шаблонов дизайна, с которым может интегрироваться любое Вебасист-приложение (документация).



    Редактор с подсветкой синтаксиса работает на основе CodeMirror. Шаблонизатор — Smarty.

    Безусловно, приложение может работать с собственным шаблонизатором и использовать или не использовать какой бы то ни было редактор шаблонов дизайна, однако, проще и быстрее использовать готовую инфраструктуру, которую предоставляет приложение «Сайт».

  4. Информационные страницы с WYSIWYG-редактором и возможностью использовать Smarty. Этот функционал позволяет создавать сайты только лишь на основе приложения «Сайт» без подключения других приложений. WYSIWYG работает на основе elRTE.

  5. Файловый менеджер.

  6. Общие HTML-блоки, позволяющие вынести отдельные элементы оформления сайта («шапку», «подвал», js-счетчики и пр) и внедрять их в шаблоны дизайна разных приложений.

  7. Шпаргалка: набор конструкций, переменных и методов Smarty, которые можно использовать в контексте данного шаблона или страницы. В том числе и для получения данных из других приложений. Так, например, на страницу приложения «Сайт» можно добавить контент другого приложения с помощью соответствующего метода {$wa->APP_ID->METHOD_NAME()}



Интегрированные приложения


С этим пока негусто. Само по себе (без использования других приложений) приложение «Сайт» предоставляет довольно скудные инструменты для создания сайтов: только страницы со статическим контентом, пусть даже и с возможностью использовать Smarty. Вся гибкость и мощь «Сайта» раскроются, когда будут выпущены интегрированные с ним приложения. Сейчас мы работаем над приложениями «Блог» и «Фото». На их примере Вебасист должен показать себя интересной CMS-кой.

Приложение «Сайт» станет основой дизайн-редактора нового Shop-Script, который мы планируем выпустить в 2012 году.

Фреймворк Webasyst можно скачать бесплатно. Приложение «Сайт» теперь входит в его базовый состав. Ну и напоследок — ссылка на пример с пошаговым описанием создания сайта: http://www.webasyst.com/ru/framework/docs/site/tutorial/