You-Controlled Content

Что такое CMS?

 «Система управления содержимым/контентом (англ. Content management system, CMS) - позволяют управлять текстовым и графическим наполнением веб-сайта, предоставляя пользователю удобные инструменты хранения и публикации информации. CMS система позволяет легко в удобном интерфейсе наполнять сайт картинками и информацией, а также изменять существующую информацию на сайте даже неспециалистам в области создания сайтов. Т.е. если Ваш сайт будет на хорошей CMS, то Вы вполне сможете попросить своего секретаря добавить на сайт новую страничку или изменить существующую и он без труда справиться с этой задачей.
Главная причина широкого распространения CMS — наиболее полное удовлетворение пользовательских запросов.
Хранилище информации…
Сердце любой CMS — хранилище информации. В современных системах управления контентом это реляционная база данных. Слово «реляционная» указывает на то, что база состоит из таблиц, между которыми уставлены отношения (relation — «отношение»).
То есть, если CMS необходимо сохранить какую-либо информацию, она записывает ее в базу данных.
Для каждой сущности в базе данных есть соответствующая таблица. Например, есть таблица, которая хранит содержимое веб-страниц. В ней, помимо текста страницы, есть еще название материала, дата его создания и автор.
Поле «автор» ссылается уже на таблицу пользователей, в которой содержатся их логины, пароли и права. С помощью установки таких модулей можно построить очень гибкую и надежную систему хранения информации.
Движок базы данных выбирается в зависимости от платформы. Если используется платформа Windows, то, как правило, берется MS SQL, у которого нет серьезных конкурентов в данной нише. Если используется UNIX платформа - то MySQL.
После выбора базы данных (или до него) стоит задуматься, как лучше запрограммировать работу с ней в CMS. Наилучшим подходом является создание абстрактного слоя работы с базой данных. Реализовать его можно как в виде специального класса, так и в виде набора функций. То есть в идеале основной код CMS одинаков для любой базы данных, меняется лишь код-прокладка для БД.
Шаблонизаторы…
Как было сказано выше, информацию, которую необходимо отобразить (например, текст статьи), CMS система получает из базы данных. Но каким образом ее правильно отобразить в виде HTML? Для этого используется механизм шаблонов. Шаблон представляет собой файл с дизайном страницы на специальном языке.
Чаще всего, это специальным образом размеченный HTML, в котором указано, где надо вставлять название страницы, где — основной текст, где — меню и прочие элементы, которые берутся из базы данных. Самый простой вариант — сделать шаблон на языке РНР, но есть и более мощные решения.
Например, шаблонизатор Smarty имеет свой довольно простой язык, с которым может справиться верстальщик, не знающий РНР. Шаблоны Smarty работают следующим образом: они преобразуются в файл РНР, а затем просто исполняются PHP-интерпретатором. Для повышения производительности можно скомпилировать шаблон Smarty в РНР, ведь он будет очень редко меняться. Таким образом, мы получаем разделение труда программиста и верстальщика: один пишет код, а другой делает шаблоны.
Система пользователей…
Следующая часть системы — это система пользователей и их ролей. Сначала разберемся с ролями пользователя. Роль — это некий набор действий, которые он может совершать. В современных CMS роли пользователя можно создавать и настраивать согласно Вашим намерениям. Роли также можно сравнить с группами пользователей в Windows.
Обычно выделяют несколько ролей пользователей: администратор, модератор, автор, пользователь и посетитель. Каждому пользователю можно дать свою роль, причем раздача ролей идет либо автоматически, либо это делается ручками. Первый вариант работы обычно используется на форумах, когда при достижении определенного количества постов пользователю автоматически присваивается новое звание.
Основу системы пользователей составляет механизм сессий. Сессия — это промежуток времени, когда пользователь был на сайте. Поддержка сессий обычно входит в любой язык для веб-разработок.
Блоки…
На сайте, который использует CMS, обычно слева (иногда и справа) имеется панель блоков. Они предназначены для различных целей — от хранения вертикального меню до блока для входа пользователей.
Система меню…
С помощью системы меню осуществляется навигация по сайту. Меню бывает двух типов — вертикальное и горизонтальное. Горизонтальное меню обычно располагается в шапке сайта и иногда дублируется внизу. Вертикальное меню чаще всего помещается в специальный блок. Меню представляет собой древовидную структуру сайта.
Форумы…
Фактически, форумы можно считать очень специализированными системами управления контентом. Стоит отметить, что многие сайты позиционируют себя именно как форумы, то есть других частей у них просто нет.
С другой стороны есть сайты (и довольно крупные), у которых форум является составной частью, что и придает сайту необходимую динамичность. Ведь сообщения на форуме появляются каждый день, а новые материалы на сайте не так часто.
Так что если Вы хотите, чтобы пользователи приходили на сайт каждый день — надо сделать его интерактивным и дать им возможность самим размещать информацию.
Форум — одно из таких решений. Его главными преимуществами является изначальная структурированность и разбиение по темам, что дает пользователю возможность легче найти необходимые сведения. А если он их не найдет, то сможет написать в форум, и другие пользователи ответят.
Блоги…
В качестве примера можно привести систему управления контентом WordPress, которая фактически представляет собой мощную систему ведения блогов.
Блог — это онлайновый дневник пользователя, где он пишет то, что сам сочтет нужным и становится своего рода журналистом.
С появлением блогов и аналогичных механизмов контент сайтов формируют не профессиональные авторы, а сами пользователи, причем это у них получается качественнее за счет большего количества свежих идей.
Конечно, вся сила блогов раскрывается при объединении пользователей в сообщества, в которые они пишут свои материалы. В качестве примера такой системы можно рассмотреть всеми любимый NoNaMe, сайт, который наполняют сами посетители.
Схема работы CMS…
Из чего состоит CMS система на концептуальном уровне, мы рассмотрели. Теперь предстоит сделать следующий шаг — рассмотреть, как взаимодействуют компоненты системы. Некий пользователь зашел на сайт, управляемый CMS, и произвел некое действие, например, запросил некую страничку или отправил заполненную форму.
Первым делом CMS система определит, как необходимо отреагировать на действие пользователя. Дальше модуль, ответственный за обработку запроса пользователя, запишет информацию в базу данных (например, сохранит там новое сообщение в форуме), если запрос пользователя подразумевал данное действие.
Система делает запрос в базу данных для получения информации, которую необходимо отобразить, либо создает сообщение программно, например, в ответ на размещение нового материала. Эта информация передается модулю-шаблонизатору, который берет текущую тему и вставляет в нее всю необходимую информацию, в итоге получается HTML-код, который пересылается пользователю. Как видим, ничего сложного.
Итак.
Во-первых, применение шаблонов позволяет автоматически менять вид всего сайта, вне зависимости от его содержания.
Во-вторых, содержание (контент) полностью отделено от визуального представления сайта, как результат — резко упрощается редактирование содержимого сайта. К тому же, большинство CMS включает в себя визуальный онлайновый редактор, либо имеет такой дополнительный модуль.
В-третьих, большинство CMS имеет модульную архитектуру, и их функциональность легко расширяется при помощи плагинов. Например, если вам необходим на сайте форум, то достаточно установить и настроить соответствующий модуль для твоей CMS. Согласитесь, что это лучше, чем писать с нуля или устанавливать внешний форум, который не будет интегрирован в остальной сайт.
И наконец, бесплатные CMS имеют неплохую «техническую поддержку» в виде громадного сообщества пользователей. Это сообщество может не только оказать помощь, оно еще и занимается разработкой, что влечет за собой непрерывное улучшение ядра системы управления контентом и создание новых модулей.
Разумеется, самым главным фактором, который влияет на использование CMS, является экономия времени, а значит и денег.

Contact