Введение или О структуре CMS, глядя на Drupal.

Тот, кто впервые задумал создать сайт в Интернет, то чаще всего думает о персональных или домашних страницах. Редко кто замахивается сразу на создание большого портала или популярного сервиса. Не хватает знаний, нет опыта. Вот и хочется просто попробовать.

Как правило, любая CMS обещает простоту управления абсолютно всем, что находиться на сайте. Не надо думать, как создать перемещение по сайту (навигацию), куда и как поместить публикуемый материал – всё это сделает CMS. Достаточно просто добавлять публикации (наполнять контентом) и определиться с внешним видом. Во всяком случае, так обещают большинство CMS. Да и глядя на работающие проекты, кажется всё просто и легко, пока эта самая CMS не будет установлена Вами. Но как только Вы её установите, так возникает куча вопросов и проблем, о которых почему-то раньше никто не говорил и не предупреждал.

Представьте, что Вам предлагают поуправлять магазином. Вам говорят, что ничего сложного в этом нет, достаточно просто следить, чтобы товар был на прилавках и продавцы не ленились - вот и всё. Вы соглашаетесь. Вы много раз были в магазинах и, как Вам кажется, действительно ничего сложного в работе магазина нет. Но вот наступает Ваш первый рабочий день, Вы выходите из кабинета, подходите к двери в зал магазина и открываете. Ваша челюсть потихоньку отвисает, потому что перед Вами огромный супермаркет. В этом супермаркете много отделов, ещё больше полок, огромное количество товаров и много-много посетителей. Если работа супермаркета налажена, то проблем действительно будет очень мало. Полки стоят как надо, товар на полки постоянно докладываться, кассиры работают, служба безопасности следит за посетителями, и сами посетители довольны, во всяком случае, большинство из них.

А теперь представьте, что когда Вы открываете дверь в зал магазина, то видите не огромный работающий супермаркет, а огромное пустое помещение, которое надо превратить в огромный супермаркет, в котором должно быть много отделов, ещё больше полок, огромное количество товаров и куда будут приходить много-много посетителей. Вам надо самостоятельно определить какие отделы у Вас будут, сколько полок и как они должны стоять и какой товар на этих полках будет лежать, как обеспечить движение посетителей среди ваших полок и отделов так, чтобы и им, посетителям, было удобно и Вам хорошо и прибыльно.

Все CMS как раз и являются такими «огромными и пустыми помещениями», которые предназначены для создания больших и посещаемых ресурсов Интернет. Нужно только правильно организовать работу и сайт на основе CMS будет радовать своего создателя (заказчика) и посетителей.

Чтобы правильно организовать работу CMS надо немного хотя бы представлять, как она работает или из чего складывается работа CMS. Правильная работа сайта на основе CMS – это правильная организация взаимодействия составных частей этой CMS. Для организации взаимодействия составных частей нужно иметь представление о том, как работают эти, составляющие CMS, части и как они взаимодействуют. На базе CMS можно создавать сайты разной сложности. Это могут быть персональные страницы, могут быть корпоративные сайты или сайты общения (блоги, форумы), но в любом случае необходима настройка взаимодействия частей CMS. Это как с автомобилем, если хотите ехать – нужно чтобы машина была в рабочем состоянии, и совершенно не важно на какое расстояние Вы хотите уехать, 100 метров или 100 километров. Если в машине всё правильно работает - Вы уедете, не работает – не уедете.

Конструкция сайта (Site building)

Информацию на сайте (часто называют контентом) надо ещё как-то представить посетителям. Оформлением занимается дизайн сайта, обычно это один из шаблонов. Эти шаблоны почти для всех сайтов одинаковы, отличаются цветовым оформлением и различными рюшечками. Цветовое оформление и рюшечки ещё называют темами оформления (Themes). Обычно CMS имеют в своём составе несколько тем оформлений, и вид сайта достаточно легко меняется выбором одной из них.

Согласно шаблону (темы), страница сайта условно делится на несколько частей. Это верхняя часть или заголовок (Header), левая часть или левая колонка (Left sidebar), центральная часть или содержимое (Content), правая часть или правая колонка (Right sidebar), нижняя часть или подвал (Footer). Шаблоны (темы) позволяют комбинировать оформление, состав и местоположение этих частей.

Вид страницы

Вся работа сайта определяется набором модулей – скриптов (Modules). Каждый такой модуль - это программа, которая отвечает за выполнение определённых функций. Один модуль отвечает за авторизацию пользователей, другой – за добавление и отображение информации (контента) и так далее. То есть функциональность сайта определяется теми модулями, которые подключены к системе управления сайтом. Делается это в настройках.

В процессе своей работы некоторые модули могут выводить информацию. Эта информация группируется в блок (Block). Блок новостей, блок навигации (меню), блок активных сообщений форума, блок авторизации на сайте, блок формы поиска и так далее. Обычно эти блоки располагаются в левой и/или в правой колонках. Блоки также могут располагаться в Заголовке, Подвале или центральной части страницы. Состав блоков и их порядок отображения определяются настройками.

Помимо блоков, формируемых модулями, можно создать собственные блоки. Содержание этих блоков будет определяться только Вами. В блок можно поместить перечень ссылок, рекламу или какой-нибудь скрипт, результатом выполнения которого будет информация, полезная для Вас или Ваших посетителей.

Немного особняком стоят блоки навигации по сайту - Меню (Menus). Содержимым этих блоков являются ссылки, обеспечивающие навигацию по сайту. Для управления составом и порядком этих ссылок навигационного меню вашего сайта существует отдельный модуль, который надо подключить.

Содержание сайта (Content management).

В первую очередь любой сайт служит для обеспечения обмена информацией (информация – сведения об окружающем мире и протекающих в нём процессах, воспринимаемые человеком или специальным устройством). Кто-то информацию размещает на сайте, кто-то эту информацию получает. Идёт обмен. Информация может быть представлена в различном виде. Это может быть статья, просто объявление, новость, описание чего - либо, обсуждение какой - либо темы (форум), рисунок, график и так далее. Каждому виду представления информации присущи свои особенности или характерные черты. Эти характерные черты/особенности можно выделить и создать шаблон для представления данного вида информации. Например, статья состоит из заголовка и самой статьи. Эти два элемента, заголовок и тело статьи, являются шаблоном для вида представления информации – «Статья». Можно добавить в шаблон «Статья» новый элемент – «Автор». Тогда шаблон «Статья» будет состоять уже из трёх элементов – «Заголовок», «Автор», «Тело статьи». Если Вы присмотритесь, как выглядит описание программы в одном из известных каталогов программ, то увидите, что описания программ сделаны по шаблону. В шаблоне описания программы наверняка будут элементы – «Название программы», «Автор», «Сайт разработчика», «Краткое описание» и так далее. Данный шаблон или вид представления информации о программе можно назвать как «Описание программы» или «Программа».

В Drupal существует несколько таких шаблонов. Это Page – Страница, Story – Статья, Blog – Запись в блоге, Forum – Обсуждение на форуме, Poll – Опрос, Book – Страница подшивки. Эти шаблоны в Drupal называются типами материалов или типами содержимого (Content types). Но чтобы эти типы материалов можно было использовать, нужно в настройках разрешить их использование. Это необходимое условие.

Информацию можно группировать не только по виду представления (типу материала), но и по другим признакам. Ничто Вам не мешает группировать информацию/материалы по отношению к живой и неживой природе или принадлежности к какой либо области знаний – математика, электроника, компьютеры, медицина и так далее. Для этого в CMS создаётся система классификации информации/материалов.

В CMS Drupal создание систем классификации носит название таксономия. Информация делится по категориям (categories), которые носят название словари и термины. Определяется, о чём будет речь и даётся этому название – это словарь, затем идет более подробное деление информации – это термины. Термины входят в состав словаря.

Категория - научное понятие, выражающее наиболее общие свойства и связи явлений действительности.

Словарь – собрание слов (обычно в алфавитном порядке), устойчивых выражений с пояснениями, толкованиями или с переводом на другой язык.

Термин – слово или словосочетание — название определённого понятия какой – нибудь специальной области науки, техники, искусства. Технические термины. Термины математики. Словарь музыкальных терминов.

В некоторых CMS Вы не сможете добавить новую информацию без создания системы классификации. Нужно сначала создать систему, а потом уже добавлять новую информацию. В CMS Drupal это не обязательно. Можно добавлять новую информацию, не создавая словари и термины, хотя это наверно не правильно. Некоторые модули используют словари и термины в своей работе, поэтому лучше создать хоть один словарь с одним термином и все новые материалы помещать туда. По аналогии с магазином – сначала надо определиться, куда размещать товар, затем уже этот товар туда раскладывать. Хотя в Друпал можно свалить всё в одну кучу, только разгребать то всё равно придётся.

Если Вы затрудняетесь сразу создать рабочую классификацию (словари и термины), то в CMS Drupal это не страшно. Можно создать приблизительную классификацию, а затем просто переименовывать, по необходимости, термины и словари так, как Вам надо. Можно добавлять словари и термины, можно удалять, но перед удалением желательно весь материал переместить в другую ветвь классификации (термин или словарь). Потери информации не будет, она сохранится. Если какой-то материал (информация) оказался не там, то можно этот материал перенести в другой словарь-термин не опасаясь его потерять. Это замечательная особенность CMS Drupal.

Выводы: Создание классификации является в некоторых CMS необходимым условием, в CMS Drupal необходим выбор типов материалов (информации), создание классификации очень рекомендуется, но обязательным не является.