Drupal
Drupal позволяет создавать самые разные сайты, при этом сильно сокращая объем разработки и, в конечном счете, повышая качество продукта. Drupal готов к использованию «из коробки», но его истинные преимущества заключаются в большей, по сравнению с другими CMS, гибкости и расширяемости, а также в контентно-ориентированном подходе к организации сайта.
В данной статье предлагается краткий обзор системы управления контентом Drupal в плане её пригодности для построения сайтов различного профиля.
По каждой обсуждаемой теме представлены ссылки. К сожалению, далеко не все материалы по ссылкам русскоязычные. Drupal — продукт совместной работы международного сообщества.
Данная статья периодически обновляется. Если копируете статью, пожалуйста, приводите ссылку на первоисточник, чтобы ваши читатели смогли получить актуальную информацию.
CMS и CMF
Для начала формально определелим что же называется системой управления контентом.
- Система управления контентом (англ. Content Management System, CMS)
- Программный комплекс, используемый для управления содержанием сайта или информационной системой с неструктурированным контентом.
- Каркас системы управления контентом (англ. Content Management Framework, CMF)
- Программный комплекс, используемый для построения CMS с требуемой функциональностью.
Существует множество CMS (по данным
Примеры 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 сегодня
- Первое место в номинации Overall на в 2007 и 2008 годах Open Source CMS Award;
- Сотни разработчиков и всего 20 тыс. строк кода при функциональности базового дистрибутива вполне соответствующей другим популярным CMS;
- Более 600 тыс. скачиваний дистрибутива в год;
-
Более 55 тыс. работающих сайтов на базе Drupal, в том числе сотни популярнейших и авторитетных сайтов:
- Популярнейший Linux-дистрибутив Ubuntu: http://ubuntu.com
- Компания Novell: http://www.novell.com/communities/
- Компания AOL: http://dev.aol.com,
- Компания Yahoo: http://research.yahoo.com
- Аврил Лавин: http://www.avrillavigne.com
- Гарвардский университет: http://harvardscience.harvard.edu
- Дженифер Лопес: http://jenniferlopez.com
- Бритни Спирс: http://britney.com
- Warner Bros: http://www.warnerbrosrecords.com
- Eclipse: http://live.eclipse.org
- Британское отделение канала MTV: http://www.mtv.co.uk
- Британское отделение Greenpeace: http://www.greenpeace.org.uk
- Немецкое отделение журнала Playboy: http://playboy.de
- Sony Playstation для азиатского региона: http://asia.playstation.com
- Хиллари Клинтон: http://votehillary.org
- Российское подразделение Pepsi: http://pepsi.ru
- Спортивное СМИ ВГТРК: http://sportbox.ru
- Более 9500+ готовых модулей;
- Наличие готовых модулей для электронной коммерции, построения сообществ и прочих популярных задач;
- Рекомендации к применению от таких компаний как IBM;
- Ежегодная конференция разработчиков (более 430 участников побывало на конференции в 2007 году, прошедшей в Барселоне, на мартовскую конференцию в Бостоне зарегистрировано более 510 участников);
- Локализация более чем на шесть десятков языков;
- Хорошее быстродействие, обеспечиваемое встроенным механизмом кеширования;
- Работа на популярной LAMP-платформе.
Подходы к организации содержания сайта
Модульно-ориентированный подход
В системе имеются различные функциональные модули (лента новостей, форум, блог, статические страницы и пр.), содержание каждого модуля существует только в его контексте.
В структуре сайта связаны, как правило, материалы порождаемые одним модулем.
Контентно-ориентированный подход
Содержание — первично. Модуль, создающий, обрабатывающий или выводящий материал не определяет положение материала в структуре сайта.
Одни и те же материалы могут обрабатываться разными модулями, относиться к разным типам материалов, но объединяться содержательной тематикой и потому быть связанными.
Drupal пропагандирует контентно-ориентированный подход к организации содержания сайтов.
Таксономия Drupal
В нашем случае таксономию можно понимать как классификацию, применительно к материалам сайта.
- Таксономия в Drupal
- Механизм, позволяющий создавать произвольное количество категорий (тегов, терминов), ассоциировать с ними материалы сайта (с целью классификации последних).
Категории могут образовывать списки, древовидные иерархии или сложные структуры, где элемент может иметь несколько родителей и несколько дочерних элементов.
Категории объединяются в группы (или словари). Группа определяет виды связей категорий, типы контента к которым они могут применяться и пр. Категории вне групп создаваться не могут.
Принятые синонимы:
- Тег — термин — категория;
- Словарь — группа.
Инструменты Drupal помогают создавать удобную навигацию по сайту произвольной структуры, основываясь на категориях и связями между ними.
Понимание принципов организации контента в Drupal — основной барьер для быстрого и безболезненного освоения системы.
Иллюстрация связей материалов факультетского сайта, возможных в рамках модульно-ориентированного подхода (голубые непрерывные линии) и таксономии (пунктирные линии цветов, соответвующих категориям):
Цветные прямоуголники внизу иллюстрации — представляют категории таксономии, разбитые на два независимых словаря (слева: учебные предметы, справа: категории посетителей сайта). Оба словаря имеют простейшую структуру списков. Категории в данных словарях никак не связаны между собой, но это не мешает какому-то одному материалу сайта относиться сразу к нескольким категориям даже и из одного словаря.
Возможности локализации Drupal
- Использование кодировки UTF-8;
- Локализация с помощью библиотеки gettext (см. http://uneex.cs.msu.su/uneex/LecturesDistro2007/12_Translate);
- Возможность перевода элементов действующего сайта через веб-интерфейс на работающем сайте;
- Удобные средства для локализации модулей сторонней разработки через po-файлы (см., например, http://drupal.org/project/potx и http://www.poedit.net);
- Существующие сообщества переводчиков и готовые переводы ко многим модулям (см. http://drupaler.ru).
Документация Drupal
- Локализованная (пока не полностью) документировация по API для разработчиков;
- Локализованные руководства для пользователей и администраторов Drupal;
- Встроенная справочная система для администраторов сайта и пользователей.
Расширяемость Drupal
- Установка качественных модулей, не требует особой квалификации (существуют даже модуль для автоматической инсталляции других модулей);
- Встроенные функции API и модулей могут замещаться или расширяться сниппетами;
- Drupal поддерживает технологию Ajax, разработчикам модулей доступна популярная библиотека JQuery;
- Существует обширный набор модулей для интеграции Drupal с другими популярными веб-сервисами и приложениями;
- Зависимости между модулями отслеживаются.
Инсталляционные профили Drupal
- Возможность локализации, предварительной настройки и комплектации нужными модулями с помощью создания инсталляционных профилей — специально подготовленных дистрибутивов Drupal;
- Процесс создания инсталляционных профилей документирован.
Оформление Drupal
- Большое количество готовых бесплатных тем оформления, в том числе, распостраняемых самостоятельными проектами;
- Документированное содержание тем, возможность интеграции сниппетов в темы;
- Темы построенны на основе движка PHPTemplate, но существет возможность применения и других популярных движков;
- Разделение представления, содержания и функциональности.
Управление доступом в Drupal
- Разграничение доступа к различным функциям и материалам всей системы и модулей на основе ролей (аналог групп пользователей в Unix);
- Наличие модулей для автоматического управления ролями;
- Настраиваемые подсистемы регистрации и авторизации пользователей, расширяемые с помощью модулей.
Готовность 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