CMS – к столу! БОРИС ВОЛЬФСОН Спецвыпуск: Хакер, номер #073, стр. 073-056-2 [шаблонизаторы.] Как было сказано выше, информацию, которую необходимо отобразить (например, текст статьи), CMS получает из базы данных. Но каким образом ее правильно отобразить в виде HTML? Для этого используется механизм шаблонов. Шаблон представляет собой файл с дизайном страницы на специальном языке. Чаще всего, это специальным образом размеченный HTML, в котором указано, где надо вставлять название страницы, где - основной текст, где - меню и прочие элементы, которые берутся из базы данных. Самый простой вариант - сделать шаблон на языке PHP, но есть и более мощные решения. Например, шаблонизатор Smarty имеет свой довольно простой язык, с которым может справиться верстальщик, не знающий PHP. Шаблоны Smarty работают следующим образом: они преобразуются в файл PHP, а затем просто исполняются PHP-интерпретатором. Для повышения производительности можно скомпилировать шаблон Smarty в PHP, ведь он будет очень редко меняться. Таким образом, мы получаем разделение труда программиста и верстальщика: один пишет код, а другой делает шаблоны. [система пользователей.] Следующая часть системы – это система пользователей и их ролей. Сначала разберемся с ролями пользователя. Роль – это некий набор действий, которые он может совершать. В современных CMS роли пользователя можно создавать и настраивать согласно твоим намерениям. Роли также можно сравнить с группами пользователей в Windows. Обычно выделяют несколько ролей пользователей: администратор, модератор, автор, пользователь и посетитель (подробности на врезке). Каждому пользователю можно дать свою роль, причем раздача ролей идет либо автоматически, либо это делается ручками. Первый вариант работы обычно используется на форумах, когда при достижении определенного количества постов пользователю автоматически присваивается новое звание. Основу системы пользователей составляет механизм сессий. Сессия – это промежуток времени, когда пользователь был на сайте. Поддержка сессий обычно входит в любой язык для веб-разработок. [блоки.] На сайте, который использует CMS, обычно слева (иногда и справа) имеется панель блоков. Они предназначены для различных целей - от хранения вертикального меню до блока для входа пользователей. [система меню.] С помощью системы меню осуществляется навигация по сайту. Меню бывает двух типов – вертикальное и горизонтальное. Горизонтальные меню обычно располагаются в шапке сайта и иногда дублируются внизу. Вертикальное меню чаще всего помещается в специальный блок. Меню представляет собой древовидную структуру сайта. [форумы.] Как я уже упоминал выше, форумы и CMS очень похожи. Фактически форумы можно считать очень специализированными системами управления контентом. Отмечу, что многие сайты позиционируют себя именно как форумы, то есть других частей у них просто нет. С другой стороны есть сайты (и довольно крупные), у которых форум является составной частью, что и придает сайту необходимую динамичность. Ведь сообщения на форуме появляются каждый день, а новые материалы на сайте не так часто. Так что если ты хочешь, чтобы пользователи приходили на сайт каждый день – надо сделать его интерактивным и дать им возможность самим размещать информацию. Форум – одно из таких решений. Его главными преимуществами является изначальная структурированность и разбиение по темам, что дает пользователю возможность легче найти необходимые сведения. А если он их не найдет, то сможет написать в форум, и другие пользователи ответят. |