Официальный сайт - Drupal.org. Сайт русского сообщества - Drupal.ru.
Архитектура Drupal позволяет применять его для построения различных типов сайтов — от блогов и форумов до информационных архивов или сайтов новостей. Функциональность обеспечивается подключаемыми модулями, обращающимися к общему API Drupal. Стандартный набор модулей включает такие функции, как новостная лента, блог, форум, загрузка файлов, сборщик новостей, голосования, поиск и другие. Большое количество дополнительных модулей, значительно расширяющих базовые функции, можно скачать с официального сайта (часть из них будет представлена на этом форуме).
Наиболее важные функции, предоставляемые модулями, входящими в поставку Drupal
- - единая категоризация всех видов содержимого (таксономия) — от форумных сообщений до блогов и новостных статей
- широкий набор свойств при построении рубрикаторов: плоские списки, иерархии, иерархии с общими предками, синонимы, родственные категории
- вложенность категорий любой глубины
- поиск по содержимому сайта, в том числе поиск по таксономии и пользователям
- разграничение доступа пользователей к документам (ролевая модель)
- динамическое построение меню
- поддержка XML-форматов
- авторизация через OpenID
- короткие URL (иначе «человеко-понятные» — ЧПУ)
- переводы интерфейса сайта на разные языки, а также поддержка ведения разноязычного контента
- возможность создания сайтов с пересекающимся содержимым (например общей базой пользователей или общими настройками)
- раздельные конфигурации сайта для различных виртуальных хостов (в том числе собственные наборы модулей и тем оформления для каждого подсайта)
- механизм для ограничения нагрузки на сайт (автоматическое отключение при высокой посещаемости части информационных блоков и модулей)
- уведомления о выходящих обновлениях модулей
Недостатки
- Критики Drupal ставят в упрёк разработчикам слабое использование объектных возможностей PHP. Действительно, API Drupal практически не использует имеющихся в PHP возможностей ООП. Разработчики аргументируют это слабой реализацией ООП в языке (особенно до версии PHP 5). Объектная модель в Drupal присутствует, но в несколько нетрадиционном для PHP виде[8]. В разрабатываемой версии Drupal 7 однако планируется ряд нововведений задействующих объектные возможности PHP 5.
- К недостаткам (но одновременно и к достоинствам) Drupal можно отнести отсутствие обратной совместимости API при достаточно высокой динамике разработки проекта. Практически в каждом релизе происходят изменения API, когда наряду с добавлением новых функций убираются некоторые старые или изменяются параметры вызова функций. Это приводит к необходимости разработчикам сторонних модулей адаптировать их для работы с новыми версиями Drupal. Однако изменения API и процедура адаптации модулей к новым версиям описываются в документации для каждого релиза, также всегда предлагается механизм автоматизированного апгрейда ядра системы на новую версию.[9][10] Плюс данной схемы разработки - нет необходимости тянуть из версии в версию программный слой совместимости со старыми API, что облегчает текущий код системы.
- К недостаткам (но одновременно и к достоинствам) Drupal можно отнести отсутствие обратной совместимости API при достаточно высокой динамике разработки проекта. Практически в каждом релизе происходят изменения API, когда наряду с добавлением новых функций убираются некоторые старые или изменяются параметры вызова функций. Это приводит к необходимости разработчикам сторонних модулей адаптировать их для работы с новыми версиями Drupal. Однако изменения API и процедура адаптации модулей к новым версиям описываются в документации для каждого релиза, также всегда предлагается механизм автоматизированного апгрейда ядра системы на новую версию.[9][10] Плюс данной схемы разработки - нет необходимости тянуть из версии в версию программный слой совместимости со старыми API, что облегчает текущий код системы.