Drupal: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
похоже на спам
Актуализировано и исправлены ошибки
Строка 135: Строка 135:


=== Книги на русском языке ===
=== Книги на русском языке ===
7
* {{книга
* {{книга
|заглавие = CMS Drupal 7: руководство по разработке системы управления веб-сайтом, 3-е издание
|заглавие = CMS Drupal 7: руководство по разработке системы управления веб-сайтом, 3-е издание
Строка 145: Строка 146:
|издательство = [[Вильямс (издательство)|«Вильямс»]]
|издательство = [[Вильямс (издательство)|«Вильямс»]]
}}
}}
* {{книга

|заглавие = Drupal 7
|оригинал =
|автор = Алексей Черных
|страницы = 208
|isbn = 978-5-699-47059-4 rus
|год = 2011
|издательство = [[Эксмо(издательство)|«Эксмо»]]
}}
* {{книга
* {{книга
|заглавие = Drupal 7. Руководство пользователя
|заглавие = Drupal 7. Руководство пользователя
Строка 153: Строка 162:
|isbn = 978-5-8459-1717-1
|isbn = 978-5-8459-1717-1
|год = 2011
|год = 2011
|место = М.
|издательство = [[Диалектика (издательство)|«Диалектика»]]
|издательство = [[Диалектика (издательство)|«Диалектика»]]
}}
}}


6
* {{книга
|заглавие = Drupal: создание и управление сайтом
|оригинал = Using Drupal
|автор = Анжела Байрон, Эдисон Берри, Натан Хог, Джефф Итон, Джеймс Уокер, Джефф Роббинс
|страницы = 576
|год = 2010
|isbn = 978-0-596-51580-5 eng
|isbn = 978-5-93286-174-5 rus
|издательство = [[Символ (издательство)|«Символ»]]
}}
* {{книга
|заглавие = CMS Drupal: руководство по разработке системы управления сайтом
|оригинал = Pro Drupal development
|автор = Джон Вандюк
|страницы = 576
|год = 2009
|isbn = 978-1-43-020989-8 eng
|isbn = 978-5-8459-1513-9 rus
|издательство = [[Вильямс (издательство)|«Вильямс»]]
}}
* {{книга
* {{книга
|заглавие = Drupal 6
|заглавие = Drupal 6
Строка 164: Строка 193:
|страницы = 432
|страницы = 432
|год = 2008
|год = 2008
|место = М.
|издательство = [[Эксмо (издательство)|«Эксмо»]]
|издательство = [[Эксмо (издательство)|«Эксмо»]]
}}
}}

* Джон Вандюк, Мэтт Вестгейт «CMS Drupal: руководство по разработке системы управления сайтом», 400 стр., с ил.; ISBN 978-5-8459-1356-2, ISBN 978-1-59059-755-2
* Джон Вандюк (2-е издание) «CMS Drupal 6: руководство по разработке системы управления сайтом», 576 стр., с ил.; ISBN 978-5-8459-1513-9, ISBN 978-1-4302-0989-8
* {{книга
* {{книга
|заглавие = Drupal 6. Создание надежных и полнофункциональных веб-сайтов, блогов, форумов, порталов и сайтов-сообществ
|заглавие = Drupal 6. Создание надежных и полнофункциональных веб-сайтов, блогов, форумов, порталов и сайтов-сообществ
|оригинал = Building powerful and robust websites with Drupal 6: Build your own professional blog, forum, portal or community website with Drupal 6
|оригинал = Building powerful and robust websites with Drupal 6: Build your own professional blog, forum, portal or community website with Drupal 6
|автор = Дэвид Мерсер
|автор = Дэвид Мерсер
|isbn = 978-5-8459-1556-6
|isbn = 978-1-847-19297-4 eng
|isbn = 978-5-8459-1556-6 rus
|страницы = 272
|страницы = 272
|год = 2009
|год = 2009
|место = М.
|издательство = [[Вильямс (издательство)|«Вильямс»]]
}}
* {{книга
|заглавие = CMS Drupal 6: система для создания сайтов и управления ими
|оригинал = Pro Drupal Development
|автор = Джон Вандюк
|isbn = 978-5-8459-1513-9
|страницы = 576
|год = 2009
|издание = 2-е
|место = М.
|издательство = [[Вильямс (издательство)|«Вильямс»]]
|издательство = [[Вильямс (издательство)|«Вильямс»]]
}}
}}
* {{книга
* {{книга
|заглавие = CMS Drupal: система управления содержимым сайта
|заглавие = CMS Drupal: система управления содержимым сайта
|автор = В.Ромашов, М. Рысевец
|автор = В.Ромашов
|страницы = 288
|страницы = 256
|год = 2009
|год = 2009
|isbn = 978-5-49807-241-8
|isbn = 978-5-49807-241-8 rus
|издательство = [[Питер (издательство)|«Питер»]]
|издательство = [[Питер (издательство)|«Питер»]]
}}
5
* {{книга
|заглавие = CMS Drupal: руководство по разработке системы управления сайтом
|оригинал = Pro Drupal Developer
|автор = Мэтт Вестгейт, Джон К. Вандюк
|isbn = 978-1-5905-9755-2 eng
|isbn = 978-5-8459-1556-2 рус
|страницы = 400
|год = 2008
|издательство = [[Вильямс (издательство)|«Вильямс»]]
}}
}}



Версия от 15:16, 5 октября 2011

Drupal

Тип Система управления контентом/CMF
Разработчики Дрис Байтаерт (Dries Buytaert) и сообщество разработчиков
Написана на PHP[1]
Операционная система Кроссплатформенное программное обеспечение
Первый выпуск 15 января 2001
Последняя версия 7.8[2] (31 августа, 2011 г.)
Тестовая версия
Репозиторий git.drupalcode.org/proje…
Лицензия GNU GPL
Сайт drupal.org
Логотип Викисклада Медиафайлы на Викискладе

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

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

Начал разработку в 2000 году бельгиец Дрис Байтаерт (Dries Buytaert), который и поныне является руководителем проекта. Название drupal является искажённым произношением голландского слова druppel (капля) и появилось в результате забавной ошибки. В 2000 году несколько студентов антверпенского университета использовали общий ADSL-модем для доступа в интернет, и для общения пользователей этой маленькой локальной сети Дрис создал внутренний сайт. Программа, на которой работал сайт, не имела имени, пока Дрис не собрался регистрировать доменное имя для нового сайта, и в результате опечатки вместо dorp.org (от голландского dorp — деревня, вполне уместное имя для небольшого сообщества) был зарегистрирован drop.org (англ. drop — капля). Аудитория нового сайта со временем сменилась на интересующихся развитием новых веб-технологий, и новый сайт постепенно перешёл из любительского эксперимента в проект по обсуждениям идей веб-программирования. В 2001 году Дрис опубликовал исходный код drop.org под именем «Drupal». С тех пор разработка переместилась на зарегистрированный позднее сайт drupal.org, который приобрёл статус официального сайта проекта[4].

Со времени создания в процесс разработки были вовлечены сотни людей. Официальные разработчики ядра сейчас — это десятки человек, но много людей присылают свои патчи, включаемые в код системы. Также функциональность движка расширяется дополнительными модулями, которые создают сторонние разработчики. Например, в релизе 4.6 приняли участие 50 человек, приславших 338 поправок к коду, а в релизе 4.7 приняли участие уже 338 разработчиков, приславших примерно 1500 поправок. За пять лет существования проекта (к 2006 году) вышло 13 релизов. На данный момент (январь 2011) было разработано более 7000 дополнительных модулей, расширяющих базовые функции CMS. По статистике обращения к обновлениям движка на март 2009 года в интернете в пределах 120 тыс. активных сайтов на Drupal 6 (без учёта сайтов находящихся за файрволлами, сайтов с отключённым механизмом обновлений). Это также не учитывает сайтов работающих на ранних версиях Drupal.[5]

В 2007 году Дрис Байтаерт создал фирму Acquia, направленную на коммерческую поддержку проектов и сервисов, основанных на Drupal, вдохновленный успехами Canonical и RedHat, построивших бизнес на поддержке открытых проектов. В 2008 Байтаерт получил учёную степень доктора философии по информатике при университете Гента.

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

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

Файл:Drupal.ru-Logo.png
Эмблема русского сообщества Drupal

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

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

Эмблема русскоязычного сообщества является комбинацией эмблемы Drupal с цветами российского флага, в виде четырёх блоков, символизирующих модульность системы.

Награды

  • Трижды — в 2007, 2008 и 2009 годах — Друпал получил награду Webware 100 (присуждается лучшим на сегодня сайтам, сервисам и приложениям Сети)[9];
  • Друпал — абсолютный победитель Packt Open Source CMS в 2008 г. и победитель в категории PHP в 2008 и 2009 гг. Основным соперником CMS была Joomla!. Победители выбирались жюри из экспертов в своей области, а также посетителями сайта Packt[10][11].
  • Победитель конкурса «Best open source applications 2010» в категории «Лучшая система управления web-контентом»[12]

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

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

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

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

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

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

Для русского языка имеется свой собственный сервер локализации (см.Коллекцию ссылок), где вы можете скачать переводы ядра и различных модулей.

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

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

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

Механизмы расширения функционала

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

Модули

Несколько примеров наиболее популярных модулей, которые можно скачать в репозитории на drupal.org:

  • Views - модуль для с интерфейсом для создания различных списков
  • Panels - предоставляет возможность разбивать содержимое страницы на регионы (более продвинутое использование стандартных регионов Drupal)
  • Services - создание собственных веб-сервисов, например XMLRPC или REST
  • WYSIWYG - модуль для работы с wysiwyg редакторами, позволяет одновременно использовать несколько редакторов (ckeditor, tinymce, whyzziwyg)
  • Apachesolr - интеграция с поисковиком Apache SOLR
  • Panels everywhere - предоставляет возможность использовать главную панель для всего сайта, с последующей вставкой в нее других панелей
  • Features - позволяет сливать определенные данные из базы в код в виде модулей для последующего переноса (например с дев сервера на препродакшен сервер)
  • Backup and migrate (BAM) - возможность дампа и рестора базы полностью или частично
  • Views bulk operations - групповые операции над объектами в списках
  • Devel - набор средств и функций для быстрой разработки
  • Drush - Drupal shell, пакет для работы с друпалом и модулями через консоль (также доступен в репозитории последних версий ubuntu)
  • Memcache - интеграция с сервером memcached

К несомненным достоинствам Drupal следует отнести весьма полную документацию по различным аспектам системы (преимущественно документация на английском языке).

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

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

Начиная с версии 4.7 Drupal поддерживает технологию Ajax для динамической подгрузки содержимого без полного обновления страниц. В версии 5 для работы с JavaScript добавлена библиотека JQuery. C версии 6.0 появилось создание форм посредством AHAH (без полной перезагрузки страниц сайта).

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

Drupal в первую очередь ориентирован на платформу LAMP, но возможны варианты использования другого системного ПО.

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

Недостатки

  • Критики Drupal ставят в упрёк разработчикам слабое использование объектных возможностей PHP. Действительно, API Drupal практически не использует имеющихся в PHP возможностей ООП. Разработчики аргументируют это слабой реализацией ООП в языке (особенно до версии PHP 5). Объектная модель в Drupal присутствует, но в несколько нетрадиционном для PHP виде[14]. В Drupal 7 однако присутствует ряд нововведений задействующих объектные возможности PHP 5.
  • К недостаткам (но одновременно и к достоинствам) Drupal можно отнести отсутствие обратной совместимости API при достаточно высокой динамике разработки проекта. Практически в каждом релизе происходят изменения API, когда наряду с добавлением новых функций убираются некоторые старые или изменяются параметры вызова функций. Это приводит к необходимости разработчикам сторонних модулей адаптировать их для работы с новыми версиями Drupal. Однако изменения API и процедура адаптации модулей к новым версиям описываются в документации для каждого релиза, также всегда предлагается механизм автоматизированного апгрейда ядра системы на новую версию.[15][16] Плюс данной схемы разработки — нет необходимости тянуть из версии в версию программный слой совместимости со старыми API, что облегчает текущий код системы.

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

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

Литература[21]

Книги на русском языке

7

  • Тодд Томлинсон. CMS Drupal 7: руководство по разработке системы управления веб-сайтом, 3-е издание = Pro Drupal 7 Development, 3rd Edition. — М.: «Вильямс», 2011. — 560 с. — ISBN 978-5-8459-1743-0.
  • Алексей Черных. Drupal 7. — «Эксмо», 2011. — С. 208. — ISBN 978-5-699-47059-4 rus.
  • Колисниченко Денис Николаевич. Drupal 7. Руководство пользователя. — «Диалектика», 2011. — С. 256. — ISBN 978-5-8459-1717-1.

6

  • Анжела Байрон, Эдисон Берри, Натан Хог, Джефф Итон, Джеймс Уокер, Джефф Роббинс. Drupal: создание и управление сайтом = Using Drupal. — «Символ», 2010. — С. 576. — ISBN 978-5-93286-174-5 rus.
  • Джон Вандюк. CMS Drupal: руководство по разработке системы управления сайтом = Pro Drupal development. — «Вильямс», 2009. — С. 576. — ISBN 978-5-8459-1513-9 rus.
  • Томас Захреддин. Drupal 6 = Das Drupal 6 Praxisbuch. — «Эксмо», 2008. — С. 432. — ISBN 978-5-699-36219-6.
  • Дэвид Мерсер. Drupal 6. Создание надежных и полнофункциональных веб-сайтов, блогов, форумов, порталов и сайтов-сообществ = Building powerful and robust websites with Drupal 6: Build your own professional blog, forum, portal or community website with Drupal 6. — «Вильямс», 2009. — С. 272. — ISBN 978-5-8459-1556-6 rus.
  • В.Ромашов. CMS Drupal: система управления содержимым сайта. — «Питер», 2009. — С. 256. — ISBN 978-5-49807-241-8 rus.

5

  • Мэтт Вестгейт, Джон К. Вандюк. CMS Drupal: руководство по разработке системы управления сайтом = Pro Drupal Developer. — «Вильямс», 2008. — С. 400. — ISBN 978-5-8459-1556-2 рус.

Книги на английском языке

  • Robert T. Douglass, Mike Little, Jared W. Smith «Building Online Communities with Drupal, phpBB, and WordPress». Apress, ISBN 1-59059-562-9
  • David Mercer «Drupal: Creating Blogs, Forums, Portals, and Community Websites», ISBN 1-904811-80-9
  • John K. VanDyk, Matt Westgate «Pro Drupal Development», ISBN 978-1-59059-755-2
  • Matt Butcher «Learning Drupal 6 Module Development», ISBN 978-1-84719-444-2

Примечания

  1. System requirements | drupal.org
  2. CHANGELOG.txt
  3. drupal 10.1.8
  4. История проекта (англ.)
  5. Drupal 6 growth | Dries Buytaert
  6. Список сообществ Drupal
  7. History of the Druplicon logo, drupal.org  (Дата обращения: 24 марта 2010)
  8. История Друпликона, перевод статьи с английского
  9. Друпал — победитель Webware 100
  10. Drupal overall winner of the Packt Open Source CMS awards (англ.)
  11. Open Source CMS Award Previous Winners | Packt Publishing Technical & IT Book and eBook Store  (англ.)
  12. Bossie Awards 2010: The best open source applications (англ.)
  13. Статья по адаптации на сайте IBM Developer Networks
  14. Программирование в Drupal с точки зрения ООП
  15. Обновление системы (для пользователей)
  16. Обновление модулей (для разработчиков)
  17. 1 2 3 Drupal Sites Which You May Not Have Known Were Drupal Based (24 сентября 2008). Архивировано 23 августа 2011 года.
  18. Who is Using Drupal? (2008). Архивировано 23 августа 2011 года.
  19. ubuntu.com использует Drupal! | Drupal Россия
  20. Under First Open-Source Prez Obama, White House Adopts Drupal, but at What Cost? | Fast Company
  21. Books about Drupal | drupal.org

Ссылки

Шаблон:Фреймворки для веб приложений Шаблон:Системы управления содержанием

Шаблон:Link GA