Разработка сайтов на Drupal (Друпал)

Разработка сайтов на Drupal (Друпал)

Мы выполняем разработку сайтов на Drupal c 2008 года. Drupal (Друпал) — мощная система управления сайтом (CMS), позволяющая решать задачи от разработки сайта-визитки до разработки магазина, портала и социальной сети.

Заказать сайт, задать вопрос 

Drupal - наиболее продвинутая система управления сайтов в вопросах "Web 2.0". В Drupal предусмотрены возможности быстрого развития функционала вебсайтов, которые позволяют превращать сайт-визитку в магазин, портал, социальную сеть. Функциональность расширяется за счет более чем 10 000 модулей, большинство из которых бесплатны и сразу интегрируются с другими модулями в дизайн сайта. Друпал хорошо локализован и позволяет поддерживать многоязычные проекты практически в своей базовой версии. Система таксономий Друпала позволяет автоматически структурировать содержимое сайта по тегам -  ключевым словам.

Drupal
 Drupal logo
 drupal face
Тип
Система управления контентом/CMF
Разработчик
Дрис Байтаерт (Dries Buytaert) и сообщество разработчиков
Написана на
PHP
ОС
Кроссплатформенное программное обеспечение
Версия
7.15 (1 августа, 2012 г.)
Лицензия
GNU GPL
 
 

 

 

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

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

 

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

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

 

 

Методы структуризации содержимого

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

 

 

Темы оформления

Дизайн сайта на Drupal строится на основе сменных тем оформления. Как таковой нет единственной схемы построения дизайна. Взамен Drupal даёт возможность использовать различные «движки тем», использующие шаблоны, удобные для редактирования (шаблоны XML в движках xtemplate и Smarty или шаблоны на HTML и встроенный PHP в движке phptemplate и т. п.), либо создавать темы оформления напрямую обращающиеся к API Drupal. В комплект поставки Drupal включён движок тем на основе phptemplate и несколько примеров тем. Другие движки тем можно скачать на сайте проекта.
Начиная с версии 4.7 Drupal поддерживает технологию Ajax для динамической подгрузки содержимого без полного обновления страниц. В версии 5 для работы с JavaScript добавлена библиотека JQuery. C версии 6.0 появилось создание форм посредством AHAH (без полной перезагрузки страниц сайта).

 

 

 История проекта

Начал разработку в 2000 году бельгиец Дрис Байтаерт (Dries Buytaert), который и поныне является руководителем проекта. Название drupal является искажённым произношением голландского слова druppel (капля) и появилось в результате забавной ошибки. В 2000 году несколько студентов антверпенского университета использовали общий ADSL-модем для доступа в интернет, и для общения пользователей этой маленькой локальной сети Дрис создал внутренний сайт. Программа, на которой работал сайт, не имела имени, пока Дрис не собрался регистрировать доменное имя для нового сайта, и в результате опечатки вместо dorp.org (от голландского dorp — деревня, вполне уместное имя для небольшого сообщества) был зарегистрирован drop.org (англ. drop — капля). Аудитория нового сайта со временем сменилась на интересующихся развитием новых веб-технологий, и новый сайт постепенно перешёл из любительского эксперимента в проект по обсуждениям идей веб-программирования. В 2001 году Дрис опубликовал исходный код drop.org под именем «Drupal». С тех пор разработка переместилась на зарегистрированный позднее сайт drupal.org, который приобрёл статус официального сайта проекта[2].
Со времени создания в процесс разработки были вовлечены сотни людей. Официальные разработчики ядра сейчас — это десятки человек, но много людей присылают свои патчи, включаемые в код системы. Также функциональность движка расширяется дополнительными модулями, которые создают сторонние разработчики. Например, в релизе 4.6 приняли участие 50 человек, приславших 338 поправок к коду, а в релизе 4.7 приняли участие уже 338 разработчиков, приславших примерно 1500 поправок. За пять лет существования проекта (к 2006 году) вышло 13 релизов, было разработано более 300 дополнительных модулей, расширяющих базовые функции CMS. По статистике обращения к обновлениям движка на март 2009 года в интернете в пределах 120 тыс. активных сайтов на Drupal 6 (без учёта сайтов находящихся за файрволлами, сайтов с отключённым механизмом обновлений). Это также не учитывает сайтов работающих на ранних версиях Drupal.[3]
В 2007 году Дрис Байтаерт создал фирму Acquia, направленную на коммерческую поддержку проектов и сервисов, основанных на Drupal, вдохновленный успехами Canonical и RedHat, построивших бизнес на поддержке открытых проектов. В 2008 Байтаерт получил учёную степень доктора философии по информатике при университете Гента, и теперь собирается полностью сконцентрироваться на развитии своего детища

Со временем вокруг международного сайта появились национальные сообщества. Сейчас работают более 20 национальных сайтов поддержки на разных языках,  включая рунетовское сообщество drupal.ru основанное в 2003 году.

Эмблема проекта

 

После того, как Друпал был создан, очевидным вопросом стал выбор и создание эмблемы проекта. Участники сообщества считали, что она должна быть связана с каплей или водой. Первоначально эмблема Друпала изображалась как капля в круге. Со временем пришла идея сделать эмблему в виде карикатурной капли с лицом. Стивен Виттенс (Steven Wittens) создал трёхмерную каплю, но идея не пошла в массы главным образом потому, что трёхмерный объект трудно печатать, редактировать и т. д.

Текущая эмблема Друпала придумана Кристианом Дженсеном (Kristjan Jansen). Она представляет собой каплю, изображающую лицо. Глаза показываются как две соединённые капли в виде знака бесконечности и выражают в символической форме бесконечные возможности Друпала. Дополняют лицо полукруглый нос и улыбка.

Эмблема рунетовского сообщества является комбинацией эмблемы Drupal с цветами российского флага.

Награды Drupal

  • дважды — в 2007 и 2008 годах Друпал получил награду Webware 100 (присуждается лучшим на сегодня сайтам, сервисам и приложениям Сети;
  • Друпал — абсолютный победитель Packt Open Source CMS и победитель в категории PHP. Основным соперником CMS была Joomla!. Победители выбирались жюри из экспертов в своей области, а также посетителями сайта Packt

Примеры модулей

Дополнительные модули, размещённые в репозитории на drupal.org, позволяют значительно расширить функциональность системы. Несколько примеров (приведены модули для версии Drupal 4.6, не всегда модули доступны для всех версий системы):
  • Ad — система для управления показом рекламных баннеров
  • Captcha — защитный механизм картинок «CAPTCHA», используемый при регистрации
  • Ecommerce, Ubercart — системы электронной коммерции
  • FCKeditor, Tinymce — визуальные редакторы для ввода контента
  • Gallery — интеграция с галереей изображений Gallery2
  • LDAP integration — интеграция с LDAP
  • mailhandler, listhandler — возможность публикации материалов сайта через почтовый интерфейс и из почтовых рассылок
  • Project — ведение проектов, включающее багтрекер и интеграцию с CVS и Subversion
  • SPAM — блокировка спама
  • Swish, Sphinxsearch — интеграция с поисковыми системами Swish и Sphinx
К несомненным достоинствам Drupal следует отнести весьма полную документацию по различным аспектам системы (преимущественно документация на английском языке).

Системные требования

Drupal в первую очередь ориентирован на платформу LAMP, но возможны варианты использования другого системного ПО.
  • Операционная система: семейство Unix (в том числе FreeBSD, Mac OS X), Windows (любые ОС, на которых может работать интерпретатор PHP)
  • Веб-сервер: Apache, Nginx, Lighttpd, IIS Versions 6, 7 (через Fast CGI) (теоретически любой веб-сервер, допускающий исполнение PHP-кода)
  • СУБД: MySQL, PostgreSQL (в принципе несложна адаптация к другим реляционным СУБД, например IBM DB2 [7])
  • PHP версии 4.3.3 и выше (для совместимости со всеми сторонними модулями рекомендуется применять PHP 5, вместо PHP 4)

 

 

Примеры реализации сайтов на Drupal

Приведены примеры нескольких сайтов с высокой посещаемостью (десятки тысяч посетителей в сутки и выше), работающие на Drupal: