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

Drupal

Drupal позволяет создавать самые разные сайты, при этом сильно сокращая объем разработки и, в конечном счете, повышая качество продукта. Drupal готов к использованию «из коробки», но его истинные преимущества заключаются в большей, по сравнению с другими CMS, гибкости и расширяемости, а также в контентно-ориентированном подходе к организации сайта.

В данной статье предлагается краткий обзор системы управления контентом Drupal в плане её пригодности для построения сайтов различного профиля.

По каждой обсуждаемой теме представлены ссылки. К сожалению, далеко не все материалы по ссылкам русскоязычные. Drupal — продукт совместной работы международного сообщества.

Данная статья периодически обновляется. Если копируете статью, пожалуйста, приводите ссылку на первоисточник, чтобы ваши читатели смогли получить актуальную информацию.

CMS и CMF

Для начала формально определелим что же называется системой управления контентом.

Система управления контентом (англ. Content Management System, CMS)
Программный комплекс, используемый для управления содержанием сайта или информационной системой с неструктурированным контентом.
Каркас системы управления контентом (англ. Content Management Framework, CMF)
Программный комплекс, используемый для построения CMS с требуемой функциональностью.

Существует множество CMS (по данным CMSMatrix на март 2013 года — более 1250), в том числе свободных, открытых и ориентированных, в основном, на LAMP-платформу.

Примеры CMS: Joomla, Wordpress и пр.

Примеры фреймворков: Zend Framework, Ruby On Rails, Yii и пр.

Drupal — система управления контентом, гибкость и расширяемость которой позволяют получать нетиповые конфигурации, фактически, приравнивая её к CMF.

В роли совмещения концепция CMF и CMS в одном продукте у Drupal есть аналоги (например, TYPO3), но среди аналогов Drupal обладает еще и наименьшей сложностью в освоении (как для разработчика, так и для администратора сайта).

Краткая история развития CMS и Drupal в частности

Основные вехи:

  • 2000: Франциско Бурзи создает PHP-версию phpNuke — одну из самых массовых CMS, породившую множество форков. Примерно тогда же бельгиец  Дрис Байтаерт создает первую версию Drupal для использования в личных целях;
  • 2001: Появляется первая открытая версия Drupal;
  • 2005: От открытого к тому моменту проекта Mambo, отделяется сообщество разработчиков, решающих независимо развивать CMS Joomla — одну из популярнейших открытых и свободных CMS, построенную в соответствии с модульно-ориентированным подходом;
  • 2007: Дрис Байтаерт создает коммерческую компанию Acquia, ориентированную на коммерческую поддержку проектов и сервисов, основанных на Drupal, вдохновленный успехами Canonical и RedHat.

Сейчас Drupal распространяется под лицензией GPL v.2. Drupal написан на языке программирования PHP, данные система может размещать в хранилищах разных типов, не только в реляционных базах данных. «Из коробки» поддерживаются MySQL, PostgreSQL, SQLite, но на уровне Drupal хранение данных полностью абстрактно, что позволяет интегрировать CMS почти с любым нужным хранилищем, в том числе хранить разные части базы разными способами, например, помещая кеш в ОЗУ за счёт использования Memcache.

Разработчики поддерживают две ветки (последнюю и предпоследнюю стабильные). Сейчас это ветки 6.x и 7.x. В виде dev-версии уже существует Drupal 8, финальной релиз которой ожидается в 2013 году.

Drupal сегодня

Подходы к организации содержания сайта

Модульно-ориентированный подход

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

В структуре сайта связаны, как правило, материалы порождаемые одним модулем.

Контентно-ориентированный подход

Содержание — первично. Модуль, создающий, обрабатывающий или выводящий материал не определяет положение материала в структуре сайта.

Одни и те же материалы могут обрабатываться разными модулями, относиться к разным типам материалов, но объединяться содержательной тематикой и потому быть связанными.

Drupal пропагандирует контентно-ориентированный подход к организации содержания сайтов.

Таксономия Drupal

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

Таксономия в Drupal
Механизм, позволяющий создавать произвольное количество категорий (тегов, терминов), ассоциировать с ними материалы сайта (с целью классификации последних).

Категории могут образовывать списки, древовидные иерархии или сложные структуры, где элемент может иметь несколько родителей и несколько дочерних элементов.

Категории объединяются в группы (или словари). Группа определяет виды связей категорий, типы контента к которым они могут применяться и пр. Категории вне групп создаваться не могут.

Принятые синонимы:

  • Тег — термин — категория;
  • Словарь — группа.

Инструменты Drupal помогают создавать удобную навигацию по сайту произвольной структуры, основываясь на категориях и связями между ними.

Понимание принципов организации контента в Drupal — основной барьер для быстрого и безболезненного освоения системы.

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

Таксономия против древовидной иерархии

Цветные прямоуголники внизу иллюстрации — представляют категории таксономии, разбитые на два независимых словаря (слева: учебные предметы, справа: категории посетителей сайта). Оба словаря имеют простейшую структуру списков. Категории в данных словарях никак не связаны между собой, но это не мешает какому-то одному материалу сайта относиться сразу к нескольким категориям даже и из одного словаря.

Возможности локализации Drupal

Документация Drupal

Расширяемость Drupal

Инсталляционные профили Drupal

  • Возможность локализации, предварительной настройки и комплектации нужными модулями с помощью создания инсталляционных профилей — специально подготовленных дистрибутивов Drupal;
  • Процесс создания инсталляционных профилей документирован.

Оформление Drupal

Управление доступом в Drupal

Готовность Drupal к поисковой оптимизации (SEO)

Рекомендуемые источники дополнительной информации

  • http://setegnom.com/ — русскоязычное руководство пользователя (рекомендуется в первую очередь начинающим пользователям системы);
  • http://drupaler.ru — сообщество локализации модулей и системы;
  • http://drupal.ru — сайт русскоязычного сообщества пользователей;
  • http://drupal.org — официальный сайт;
  • http://www.andyceo.ruware.com/book/moduli — начальные сведения на русском для разработчика Drupal.

Русскоязычные источники для более детального изучения возможностей системы управления контентом Drupal 7:

  • Локализованные на русский язык обучающие материалы и видео-курсы по CMS Drupal 7:
  • Рекомендуемая русскоязычная литература для администратора сайта:
    • Колисниченко Д. Н., Drupal 7. Руководство пользователя — Диалектика, 2011 — 256 с. — ISBN 978-5-8459-1717-1
    • Черных А. Drupal 7 — Эксмо, 2011 — 208 с. — ISBN 978-5-699-47059-4
  • Рекомендуемая русскоязычная литература для инженера и разработчика сайта:
    • Томлинсон Т. CMS Drupal 7. Руководство по разработке системы управления веб-сайтом — Вильямс, 2011 — 560 с. — ISBN 978-5-8459-1743-0, 978-1-43-022838-7