Описание системы WebExpert
Content Management System (система управления содержанием) WebExpert – это комплекс программного обеспечения, позволяющий разрабатывать и поддерживать динамические сайты. Система  позволяет
отделить управление контентом сайта от необходимости редактирования шаблонов страниц и избежать ошибок операторов с низкой квалификацией, связанных с вёрсткой страниц сайта и организацией документов и файлов на стороне сервера. Основой для любой CMS является веб-сервер и реляционная (в большинстве случаев) база данных.

В реализованной CMS системе используются свободно распространяемые технологии Apache, PHP, Mysql и Mnogosearch. В ядре системы заложены функции управления пользователями и правами пользователей, структурой сайта, разделения дизайна и информационного наполнения, управления различными типами материалов. Для ускорения работы используется предгенерация структуры сайта (директории) и “блочное” кэширование, т.е. при каждом обращении страница сайта собирается динамически, но из статических (закэшированных) фрагментов. Это позволяет снизить нагрузку на сервер и уменьшить время отклика.
В системе реализован интерфейс для создания модулей, выполняющих определенные функции. Это позволяет создать библиотеку модулей для использования на большинстве корпоративных сайтов. В настоящий момент реализованы стандартные модули “Форум”, “Баннерная система”, “Тесты”, “Поисковая системы” (используется программа Mnogosearch) и др. Наличие готовых решений позволяет значительно снизить время и затраты на создание новых сайтов.
В комлект поставки системы входят PHP-скрипты, дамп базы данных и руководство пользователя и разработчика.

Принцип работы системы

Сайты, использующие WebExpert состоят из 3 взаимосвязанных частей:

  1. База данных
  2. Административный интерфейс (бэкофис)
  3. Внешнее представление сайта (фронтофис)

В базе данных хранится структура и материалы сайта, информация интерактивов и служебная информация необходимая для работы системы. Изображения (сопровождающие картинки материала и т.д.) хранятся в файлах.
Бэкофис – это основной инструмент администраторов и операторов системы. Бэкофис, на сайтах с установленной системой администрирования, как правило, остается неизменным по своей структуре и внешнему виду. Изменения в основном сводятся к скрытию неиспользуемых функциональностей.
Функции бэкофиса:

  1. Изменение структуры и информационного наполнения сайта
  2. Работа с шаблонами и обработчиками
  3. Модерирование интерактивов всех типов
  4. Управление пользователями и правами пользователей

Фронтофис – внешний вид и функциональность фронтофиса определяется структурой, шаблонами и обработчиками, на каждом сайте они отличаются.
В системе сайт рассматривается как дерево рубрик (директорий), в рубриках размещаются материалы (файлы) или различные интерактивы. Все рубрики (директории) и материалы (файлы) предгенерируются на сайт. Первая страница сайта – это индекс корневой рубрики.
Содержание сайта генерируются с помощью пар “обработчик” (handler) и “шаблон” (template). Обработчик – это функция языка php , в которой извлекаются нужные данные из БД, создается и наполняется объект “Шаблон”. Шаблоны создаются на языке директив шаблонного “движка”. Тексты обработчиков и шаблонов сохраняются в базе данных и предгенерируются в файлы (для ускорения работы шаблонного “движка”).

Разделение внешнего представления и логики работы системы реализуется c использованием паттерна Model-View-Controller.
Суть этого паттерна состоит в том, чтобы отделить представление данных от доступа к ним. В паттерне выделяются три части системы: model (модель), являющаяся абстрактным хранилищем данных, view (представление) – абстрактный способ отображения информации клиенту и controller (контроллер) – часть, реализующая взаимодействие между моделью и представлением (бизнес-логику).
Моделью является набор классов PHP, который представляет логику работы с определенной сущностью (например, с материалами на сайта). View – HTML-шаблон, с использованием директив шаблонного ” движка ” . Данные в шаблон передаются контроллером – кодом PHP (обработчиком), который использует Model для извлечения данных.
Применение паттерна MVC решает следующие проблемы:

  • код отделен от представления данных; таким образом, представление данных легко переработать, не затрагивая остальные части системы;
  • хранилище данных может быть любым (как одной из DB, так и, например, XML-файлом); в общем случае легко можно реализовать набор универсальных data providers, получающих, изменяющих или добавляющих данные, используя value objects (объекты, содержащие информацию о данных (например, строку таблицы реляционной DB));
  • меньше времени уходит на разработку приложения, так как сильно сокращается время, необходимое для тестирования;
  • при разработке приложения можно параллельно вести разработку нескольких частей системы благодаря абстракциям, применяемым в контроллере

Из пары обработчик + шаблон(ы) создаются “страницы” (в странице может быть больше одного шаблона, например при генерации статьи на сайте может использоваться один обработчик и два шаблона – шаблон материала и шаблон версии для печати), действия и “типы рубрик”.
Для “страницы” определяются опции редактирования рубрики/материала в бэкофисе – опции могут быть назначены отдельно для страницы и для всего сайта. “Страницы” связываются с рубриками – страница для индекса рубрики и страница для материалов рубрики.
Созданный шаблонным движком страница индекса рубрики или материал сохраняется в файл (предгенерируются), либо сразу выводится на экран. В сохраненном в файл коде используются директивы php и поэтому расширение предгенерируемых файлов должно быть настроено в конфигурационном файле Apache как обрабатываемое PHP.
Пользовательская система состоит из пользователей, групп пользователей и прав пользователей. Права пользователей определяют то, что пользователь может видеть и редактировать в бэкофисе, права назначаются для групп пользователей. Пользователь может входить в любое количество групп, его права – это объединение прав групп, в которые он входит.

Приглашаем на наш семинар, который ежемесячно мы проводим в Киеве “Создание сайта своими руками” Вы получите много практической информации по системам управления и сможете самостоятельно создавать сайты!

By Ruslan Novikov

Интернет-предприниматель. Фулстек разработчик. Маркетолог. Наставник.