Drupal — система управления содержимым (CMS), используемая также как каркас для веб-приложений (CMF), написанная на языке PHP и использующая в качестве хранилища данных реляционную базу данных (поддерживаются MySQL, PostgreSQL и другие). Drupal является свободным программным обеспечением, защищённым лицензией GPL, и развивается усилиями энтузиастов со всего мира.
Архитектура Drupal позволяет применять его для построения различных типов сайтов — от блогов и новостных сайтов до информационных архивов или социальных сетей. Имеющуюся по умолчанию функциональность можно увеличивать подключением дополнительных расширений — «модулей» в терминологии Drupal. Наиболее важные функции, предоставляемые Drupal «из коробки»:
- единая категоризация всех видов содержимого (таксономия) — от форумных сообщений до блогов и новостных статей;
- широкий набор свойств при построении рубрикаторов: плоские списки, иерархии, иерархии с общими предками, синонимы, родственные категории;
- вложенность категорий любой глубины;
- поиск по содержимому сайта, в том числе поиск по таксономии и пользователям;
- разграничение доступа пользователей к материалам (ролевая модель);
- динамическое построение меню;
- поддержка XML-форматов:
- вывод документов в RDF/RSS;
- агрегация материалов с других сайтов;
- BlogAPI для публикации материалов с помощью внешних приложений;
- авторизация через OpenID;
- символьные осмысленные URL (иначе «человеко-понятные» — ЧПУ);
- переводы интерфейса сайта на разные языки, а также поддержка ведения разноязычного контента;
- возможность создания сайтов с пересекающимся содержимым (например общей базой пользователей или общими настройками);
- раздельные конфигурации сайта для различных виртуальных хостов (мультисайтинг), в том числе собственные наборы модулей и тем оформления для каждого подсайта.;
- уведомления о выходящих обновлениях модулей.
Система поддерживает локализацию интерфейса на более чем 100 языкаx (однако не все переводы являются полными). Имеется поддержка русского языка. В Drupal используется собственный механизм для локализации с хранением переводов в базе данных, наравне с остальным содержимым сайта. Импорт и экспорт переводов сайта осуществляется в виде po-файлов (формат используемый библиотекой gettext). Полная локализация содержимого поддерживается сторонними модулями, которые не входят в поставку Drupal, но могут быть скачаны с сайта разработчиков.