Drupal — один из представителей CMS. Drupal может быть использован для построения самых разных типов сайтов. В базовой поставке возможности движка наиболее хорошо подходят для построения интернет-сообществ: новостных и форумных сайтов, персональных и коллективных блогов и подобных вещей, где основная задача — не потеряться в массе регулярно поступающих материалов, иметь возможность их структурировать и архивировать для легкого доступа в будущем. Функционал наращивается дополнительными модулями, которые можно доустанавливать по мере необходимости.

Подробнее о функционале

  • Таксономия (taxonomy) — оригинальная методика присущая Drupal для задания структуры сайта, способ отделить структуру от представления. С помощью таксономии можно определить произвольное число рубрик, в которых будут в дальнейшем помещаться материалы сайта.
  • Темы оформления — содержимое сайта в Drupal отделено от дизайна, сейчас это уже традиционно для любой порядочной CMS. С помощью сменных тем можно очень значительно изменять дизайн не трогая при этом содержимое и структуру сайта. Drupal не привязан к какому-то одному "единственно верному" механизму реализации тем, разработчик сайта может выбирать наиболее удобные ему способы формирования дизайна сайта. Но Drupal предлагает ряд готовых решений в виде движков тем (theme engines), таких как например xtemplate (темы с шаблонами в XML) или phptemplate (темы с шаблонами на PHP). Однако значительных изменений дизайна можно порой добиться манипуляцией стилями.
  • Комментарии — любой документ сайта посетители могут комментировать. Конечно, если в настройках им разрешена эта возможность - можно ограничивать возможность комментариев для отдельных документов или целиком для типов документов, а также настраивать их представление (нитевое или плоское, рейтинг и фильтрация по нему и т.п.). Для анонимных посетителей предусмотрены поля для их идентификации (имя, email, адрес сайта), но эта возможность также отключаема.
  • Дневники (blogs) — популярное в интернете развлечение, известное как "блоги" доступно в Drupal "из коробки". Ведение дневников, возможность комментировать их другим пользователям, а также поддержка через XML-RPC внешних программ-клиентов для помещения заметок в дневники.
  • Подборка сайта (collaborative book) — идея в чем-то похожая на Wiki, когда каждый пользователь может вносить свои дополнения и исправления в текст. В реализации Drupal документы могут проходить через очередь модерации. Большинство документов сайта могут быть включены как страницы книги. Это можно использовать например для архивации обсуждений форумов, когда из наиболее интересных обсуждений можно составить книгу-архив. При этом включенные в книгу материалы по прежнему остаются доступными в своих разделах (т.е. форумное обсуждение будет видно на форуме, но также будет являться страницей книги сайта).
  • Форум — имеется встроенный движок форума, удачно вписывающийся в структуру всего сайта. Поскольку структура форумов строится на таксономии, возможно создание категорий и форумов произвольной вложенности. Включены основные форумные функции, однако отсутствуют средства массовой модерации, поэтому в случае построения активных форумных сайтов, содержащих сотни тысяч или миллионы сообщений форум Drupal не будет удобен - лучше в этом случае посмотреть в сторону специализированных форумных движков (phpbb например).
  • Новости в оффлайн (content syndication) — Drupal экспортирует большинство материалов в формате RDF/RSS, Atom и некоторых других, удобных для просмотра в оффлайн с помощью внешних программ, либо для автоматизированной публикации на других сайтах.
  • Сбор новостей — новости предоставляемые в RDF/RSS с других сайтов могут собираться Drupal и отображаться на сайте.
  • Разграничение прав доступа — основано на присвоении одной или нескольких ролей пользователям, непосредственно права доступа к различным функциям сайта закрепляются за ролями. Подключаемые модули сами определяют к каким из своих функций дать доступ определённым ролям. Понятная и логичная схема, входящая в стандартную поставку Drupal, достаточна для большинства задач. Для случаев, когда подобной схемы недостаточно, Drupal предоставляет более мощный механизм, основанный на присвоении прав (на просмотр, создание, изменение и удаление) каждому отдельному документу. Но интерфейс для управления этим механизмом в текущей версии CMS отсутствует, для его использования предлагаются дополнительные модули.
  • Встраиваемые скрипты — в Drupal возможно включение PHP-скриптов в любых документах сайта (разумеется это ограничено в целях безопасности и доступно не всем пользователям). В скриптах можно обращаться к функциям API Drupal — это позволяет оперативно создавать динамические странички с функциональностью не предусмотренной движком, не прибегая к написанию отдельных модулей.
  • Интернационализация — Drupal предоставляет различные механизмы для интернационализации и локализации интерфейса (не содержимого) сайта. В том числе возможность правки переводов "на лету" через вебинтерфейс (для переводов хранящихся в БД). Также удачной особенностью архитектуры Drupal является повсеместное использование в нем Unicode — все тексты хранятся в UTF-8, в этой же кодировке отдаются новости и почтовые сообщения