Drupal

Drupal (Друпал) — система управления содержимым (CMS), используемая также как каркас для веб-приложений (CMF), написанная на языке PHP и использующая в качестве хранилища данных реляционную базу данных (поддерживаются MySQL, PostgreSQL и другие). Drupal является свободным программным обеспечением, защищённым лицензией GPL, и развивается усилиями энтузиастов со всего мира.

Технические особенности

Архитектура Drupal позволяет применять его для построения различных типов сайтов — от блогов и новостных сайтов до информационных архивов или социальных сетей. Имеющуюся по умолчанию функциональность можно увеличивать подключением дополнительных расширений — «модулей» в терминологии Drupal. Наиболее важные функции, предоставляемые Drupal «из коробки»:

единая категоризация всех видов содержимого (таксономия) — от форумных сообщений до блогов и новостных статей
широкий набор свойств при построении рубрикаторов: плоские списки, иерархии, иерархии с общими предками, синонимы, родственные категории
вложенность категорий любой глубины
поиск по содержимому сайта, в том числе поиск по таксономии и пользователям
разграничение доступа пользователей к материалам (ролевая модель)
динамическое построение меню
поддержка XML-форматов:
вывод документов в RDF/RSS
агрегация материалов с других сайтов
BlogAPI для публикации материалов с помощью внешних приложений
авторизация через OpenID
символьные осмысленные URL (иначе «человекопонятные» — ЧПУ)
переводы интерфейса сайта на разные языки, а также поддержка ведения разноязычного контента
возможность создания сайтов с пересекающимся содержимым (например общей базой пользователей или общими настройками)
раздельные конфигурации сайта для различных виртуальных хостов (мультисайтинг), в том числе собственные наборы модулей и тем оформления для каждого подсайта.
уведомления о выходящих обновлениях модулей

Поддержка локализации

Система поддерживает локализацию интерфейса на более чем 100 языках (однако не все переводы являются полными). Имеется поддержка русского языка. В Drupal используется собственный механизм для локализации с хранением переводов в базе данных, наравне с остальным содержимым сайта. Импорт и экспорт переводов сайта осуществляется в виде po-файлов (формат используемый библиотекой gettext).

Полная локализация содержимого поддерживается сторонними модулями, которые не входят в поставку Drupal, но могут быть скачаны с сайта разработчиков.
Методы структуризации содержимого

В Drupal предлагается гибкая схема организации структуры сайта на основе таксономии. Таксономия — механизм, позволяющий создавать произвольное количество тематических категорий для содержимого сайта и ассоциировать их с модулями, обеспечивающими ввод и вывод информации. Категории могут представлять плоские или иерархические списки, либо сложные структуры, где элемент может иметь несколько «родителей» и несколько дочерних элементов. С помощью подобной схемы одними и теми же модулями возможна организация различных вариантов структуризации содержимого. Например, легко создаётся сквозной список «ключевых слов» для всех документов сайта и т. п.

Другая парадигма появилась с созданием в Drupal расширения Content Construction Kit (CCK). CCK позволяет дополнять документы новыми полями различных типов — от полей ввода URL и email, до полей хранения и отображения мультимедийных файлов. Также посредством дополнительных модулей к CCK (например Node reference) можно организовать связи между документами, не используя механизм таксономии.