Drupal: строим сайты

Автор: Роман Архаров
Дата публикации: 11.12.2008
Описание: В статье рассматриваются основные возможности Drupal для построения различных сайтов.
Источник: http://www.pcmag.ru/solutions/detail.php?ID=32535

Drupal: строим сайты

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

Все эти задачи решаются с помощью программных комплексов класса «система управления контентом» (Content Management System, CMS). Как правило, CMS предоставляют целый ряд готовых решений стандартных задач: ленты новостей, гостевые книги, форумы, опросы, фотогалереи и т. д. Их достаточно много как коммерческих (наиболее известная в России разработка такого рода — «1С Битрикс: управление сайтом»), так и бесплатных, например Drupal, которая рассматривается в этой статье.

Строго говоря, Drupal иногда классифицируют не как CMS, а как CMF (Content Management Framework, «фреймворк» или «каркас» для сайта). В Drupal удачно сочетаются достоинства CMS (большое количество модулей, расширяющих функционал системы) и CMF (мощный, детально документированный интерфейс, API, позволяющий без затруднений написать новый или доработать существующий модуль для этой системы). В итоге разработчики могут создавать на единой основе Web-комплексы, адаптированные для решения самых разных прикладных задач.

Возможности Drupal


Первая версия системы была разработана в 2000 г. бельгийцем Дрисом Байтаертом (http://buytaert.net/). Сейчас, спустя почти девять лет, вокруг проекта образовалась широкая инфраструктура. Работу над ядром системы курирует компания Acquia (http://acquia.com/), разработкой дополнительных модулей, расширяющих возможности системы, занимается сообщество из нескольких тысяч программистов со всего мира. Кроме центрального англоязычного сайта drupal.org, общение на других языках обеспечивают около 20 национальных сообществ, в том числе drupal.ru — сообщество на русском языке.

Drupal в состоянии, что называется, из коробки, помимо ряда стандартных функций (публикация материалов, опросы, блоги, форумы, поиск, формы контактов, распределение прав доступа пользователей к функциям сайта и пр.), предоставлять несколько очень полезных и оригинальных возможностей, которые ставят эту систему в один ряд с лучшими коммерческими CMS. Прежде всего это чрезвычайно мощная подсистема классификации на основе пользовательских таксономий, когда каждому материалу может быть присвоено любое количество категорий (их называют также ярлыками, метками или тегами), с возможностью последующей фильтрации по заданным критериям (в том числе и весьма сложным). Иными словами, системными средствами Drupal легко реализуются, например, такие выборки, как показать «все документы, которым присвоены метки „футбол“, „Россия“, но не „поражение“ и „Испания“», или показать «все фотографии, которым присвоены метки „весна“ или „солнце“». Таксономия хранится в словаре, может быть иерархической, одиночной и множественной. Еще одна интересная особенность Drupal — встроенная система контроля версий материалов. При внесении изменений в элементы содержания (node) при соответствующих настройках будет сохраняться история версий документа; можно также сравнить любые две редакции и в любой момент откатиться к одной из них.

На уровне ядра Drupal обеспечивается возможность многоязычной работы. В сочетании с развитой подсистемой управления многосайтовыми конфигурациями это позволяет легко вести сайты на нескольких языках. Реализованы средства работы с OpenID, открытой децентрализованной системой аутентификации (используется, например, в LiveJournal), имеется подсистема автоматического оповещения об обновлениях модулей CMS, предусмотрено подключение различных систем для управления шаблонами страниц (template engines) и др. Используя дополнительные модули, можно значительно расширить возможности системы, например добавить функции авторизации по протоколу LDAP с использованием учетных записей Active Directory (это полезно для построения корпоративных интранет-порталов) или превратить сайт на Drupal в полноценный Интернет-магазин, интегрированный с отечественными (WebMoney и Яндекс.Деньги) и международными платежными системами (вроде PayPal). Имеются и специализированные модули, например, для интеграции с CRM-системами, создания социальных систем со сложной логикой рейтингования материалов, комментариев и пользователей (социальная модерация), развитый инструментарий поисковой оптимизации, средства интеграции с системами кэширования (Memcache, XCache, APC), причем в новейших версиях Drupal (7.0) эта интеграция возможна на уровне ядра. Еще одна из интересных особенностей Drupal — мощная подсистема создания составных типов данных.