Описание системы


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

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

В системе реализован интерфейс для создания модулей, выполняющих определенные функции. Это позволяет создать библиотеку модулей для использования на сайтах системы. В настоящий момент реализованы модули “Форум”, “Баннерная система”, “Голосование”, “Поисковая системы” (используется программа Mnogosearch http://mnogosearch.ru), “Каталог объектов”, “Новостная лента” и др. Наличие готовых решений позволяет значительно снизить время и затраты на создание новых сайтов.

В комлект поставки системы входят PHP-скрипты, дамп базы данных и руководство пользователя.


 


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



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


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


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


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


Функции бэкофиса:


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


Фронтофис: Внешний вид и функциональность фронтофиса определяется структурой, шаблонами и обработчиками, на каждом сайте они отличаются.


В системе сайт рассматривается как дерево рубрик (директорий), в рубриках размещаются материалы (файлы) или различные интерактивы. Все рубрики (директории) и материалы (файлы) предгенерируются на сайт. Первая страница сайта – это индекс корневой рубрики.


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


Из пары обработчик + шаблон(ы) создаются “страницы” (в странице может быть больше одного шаблона, например при генерации статьи на сайте может использоваться один обработчик и два шаблона ” шаблон материала и шаблон версии для печати), действия и “типы рубрик”.


Для “страницы” определяются опции редактирования рубрики/материала в бэкофисе – опции могут быть назначены отдельно для страницы и для всего сайта. “Страницы” связываются с рубриками ” страница для индекса рубрики и страница для материалов рубрики.


Созданный шаблонным движком страница индекса рубрики или материал сохраняется в файл (предгенерируются), либо сразу выводится на экран. В сохраненном в файл коде используются директивы php и поэтому расширение предгенерируемых файлов должно быть настроено в конфигурационном файле Apache как обрабатываемое PHP.


Пользовательская система состоит из пользователей, групп пользователей и прав пользователей. Права пользователей определяют то, что пользователь может видеть и редактировать в бэкофисе, права назначаются для групп пользователей. Пользователь может входить в любое количество групп, его права – это объединение прав групп, в которые он входит. См. раздел “Пользователи” руководства пользователя.


Подробнее о работе с WebExpert вы можете узнать в Руководстве пользователя.



Разделение внешнего представления и логики работы


Разделение внешнего представления и логики работы системы реализуется c использованием паттерна Model-View-Controller.


Суть этого паттерна состоит в том, чтобы отделить представление данных от доступа к ним. В паттерне выделяются три части системы: model (модель), являющаяся абстрактным хранилищем данных, view (представление) – абстрактный способ отображения информации клиенту и controller (контроллер) ” часть, реализующя взаимодействие между моделью и представлением (бизнес-логику).


Моделью является набор классов PHP, который представляет логику работы с определенной сущностью (например, с материалами на сайта). View ” HTML-шаблон, с использованием директив шаблонного “движка”. Данные в шаблон передаются контроллером ” кодом PHP (обработчиком), который использует Model для извлечения данных.


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


 


Системные требования и требования к персоналу


Основные требования
– Веб-сервер Apache 1.3 и старше
– PHP 4.0.5 и старше, установленный как модуль Apache
– MySQL 3.23 и старше
– Права доступа на запись (создание / чтение /изменение / удаление) файлов на сайте из скриптов PHP
– Возможность использование .htaccess файлов


Все перечисленные программные продукты распространяются бесплатно. В качестве серверной операционной системы может использоваться как Windows так и Unix (Linux, FreeBSD) система.


Опционально
– Для работы с изображениями – модуль PHP GD или ImageMagick
– Для адресации статических файлов к материалам – модуль Apache mod_rewrite


Требования к оператору сайта
– Умение работать с браузером
– Навыки работы с текстовыми редакторами

By Ruslan Novikov

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