Drupal

**Drupal**(*Дру́пал*) — свабодны вэб-фрэймворк з адкрытым зыходным кодам для стварэння сістэм кіравання кантэнтам (), напісаны на PHP. Распаўсюджваецца пад ліцэнзіяй GNU GPL. Выкарыстоўваецца ў якасці сервернай часткі для, прынамсі, 2,1 % усіх вэб-сайтаў у свеце, у межах ад персанальных блогаў да карпаратыўных, палітычных і ўрадавых сайтаў, уключаючы whitehouse.gov і data.gov.uk. Таксама выкарыстоўваецца для кіравання ведамі і дзелавога супрацоўніцтва.

Стандартны рэліз Drupal, вядомы як **ядро Drupal**, утрымлівае асноўныя магчымасці, характэрныя для сістэм кіравання змесцівам. Яны ўключаюць рэгістрацыю і абслугоўванне ўліковага запісу, кіраванне меню, каналы RSS, настройкі макета старонкі і адміністраванне сістэмы. Drupal можа выкарыстоўвацца як для сайтаў-візітовак, блогаў, інтэрнэт-форумаў, так і для сайтаў супольнасці, якія прадугледжваюць сгенераванае карыстальнікамі змесціва.

На красавік 2013 года існуе больш за  свабодных, унесеных супольнасцю, дадаткаў, вядомых як модулі, якія даступныя, каб змяняць і пашыраць здольнасці ядра Drupal, і дадаваць новыя магчымасці ці наладжваць паводзіны і выгляд Drupal. З-за гэтай падключальнай пашыральнасці і модульнай канструкцыі Drupal апісваецца як CMF. Drupal таксама апісваецца як платформа інтэрнэт-праграм, паколькі яна задавальняе агульнапрынятым патрабаванням характарыстык для такіх платформ.

Хоць Drupal прапануе складаны праграмны інтэрфейс для распрацоўшчыкаў, усталяванне базавага вэб-сайта і кіраванне ім не патрабуе навыкаў праграмавання.

Drupal працуе на любой вылічальнай платформе, якая падтрымлівае вэб-сервер, здольны апрацоўваць PHP (у тым ліку Apache, IIS, Lighttpd, Hiawatha, Cherokee або Nginx) і базы даных (такія як MySQL, MongoDB, MariaDB, PostgreSQL, SQLite, або Microsoft SQL Server) для захоўвання змесціва і налад. Drupal 6 патрабуе PHP 4.4.0+, а Drupal 7 патрабуе PHP 5.2.5 або вышэй.

## Гісторыя праекта 
Першапачаткова напісаны Дрысам Байтаертам (Dries Buytaert) як дошка для аб’яў, Drupal стаў праектам з адкрытым кодам у 2001 годзе. Drupal з’яўляецца англійскім варыянтам галандскага слова «druppel», што азначае «кропля». Назва была ўзята ад сайта праекта Drop.org які цяпер спыніў сваё існаванне. Байтаерт хацеў назваць сайт «Dorp» (ад галандскага «вёска», цалкам дарэчнае імя для невялікай супольнасці), але памыліўся пры друку рэгістрацыі даменнага імя і вырашыў, што памылка гучыць лепш. Пасля таго як Дзін скончыў сваю кампанію, члены яго вэб-каманды працягвалі пераследваць сваю зацікаўленасць у распрацоўцы вэб-платформы, якая можа дапамагчы палітычнай актыўнасці, пачаўшы з CivicSpace Labs ў ліпені 2004, «першай кампаніі з поўнай занятасцю, якая займалася распрацоўкай і распаўсюджваннем Drupal-тэхналогіі». Іншыя кампаніі таксама пачалі спецыялізавацца на распрацоўцы Drupal. Да 2012 года Drupal вэб-сайты налічваюць больш за 100 пастаўшчыкоў, якія прапануюць Drupal-паслугі.

Супольнасць у цяперашні час дапамагае развіваць Drupal, і папулярнасць сістэмы імкліва расце. З ліпеня 2007 года па чэрвень 2008 года Drupal быў спампаваны з сайта Drupal.org больш за 1,4 мільёна разоў, што прыкладна на 125 % больш у параўнанні з папярэднім годам.

Па стане на снежань 2012 года, больш чым 808.000 сайтаў выкарыстоўваюць Drupal. Яны ўключаюць у сябе сотні вядомых арганізацый,, у тым ліку карпарацыі, сродкі масавай інфармацыі і выдавецкія кампаніі, урады, некамерцыйныя арганізацыі , школы і прыватных асоб. Drupal таксама выйграў некалькі ўзнагарод Packt Open Source CMS Awards  і тры разы — Webware 100.

5 сакавіка 2009 года, Байтаерт абвясціў аб замарозцы распрацоўкі кода для Drupal 7 да 1 верасня 2009 года. Drupal 7 быў выпушчаны 5 студзеня 2011 года з рэліз-вечарынамі ў розных краінах. Пасля выпуску спынілася абслугоўванне Drupal 5, і зараз захоўваюцца і падрымліваюцца толькі Drupal 6 і Drupal 7. Апошняя версія Drupal 7.22 выпушчаная 3 красавіка 2013 года. Гэты рэліз выпраўляе крытычную ўразлівасць бяспекі і ўсім уладальнікам прапануецца абнавіць яго неадкладна.

Drupal 8 знаходзіцца ў стадыі распрацоўкі, і пакуль няма зафіксаванай даты рэлізу. Праца па Drupal 8 падзелена на катэгорыі, такія як Ініцыятывы ядра, Мабільная, Лэйаўты, Вэб-службы і Кіраванне канфігурацыяй. Праграма Google Summer of Code з’яўляецца спонсарам 20 Drupal-праектаў.

## Эмблема праекта 
Пасля таго, як Drupal быў створаны, відавочным пытаннем стала абранне і стварэнне эмблемы праекта. Удзельнікі супольнасці лічылі, што яна павінна быць звязана з кропляй або вадой. Першапачаткова эмблема Drupal малявалася як кропля ў крузе. З часам прыйшла ідэя зрабіць эмблему ў выглядзе карыкатурнай кроплі з тварам. Стывен Вітэнс (Steven Wittens) стварыў трохмерную кроплю, але ідэя не пайшла ў масы галоўным чынам таму, што трохмерны аб’ект складана друкаваць, рэдагаваць і г.д.

Існуючая эмблема Drupal прыдумана Крысцьянам Янсэнам (Kristjan Jansen). Яна прадстаўляе сабой кроплю з тварам. Вочы паказваюцца як дзве злучаныя кроплі ў выглядзе знаку бясконцасці і выражаюць у сімвалічнай форме бясконцыя магчымасці Drupal.

## Тэхнічныя асаблівасці 
Архітэктура Drupal дазваляе прымяняць яго для пабудовы розных тыпаў сайтаў — ад блогаў і навінных сайтаў да інфармацыйных архіваў і сацыяльных сетак. Наяўную па змоўчанні функцыянальнасць можна павялічваць падключэннем дадатковых пашырэнняў — «модуляў» у тэрміналогіі Drupal. Найбольш важныя функцыі, што прадастаўляюцца «са скрыні»:
* адзіная катэгарызацыя ўсіх відаў змесціва (таксанамія) — ад форумных паведамленняў да блогаў і навінных артыкулаў;
* шырокі набор уласцівасцей пры пабудове рубрыкатараў: плоскія спісы, іерархіі, іерархіі з агульнымі продкамі, сінонімы, роднасныя катэгорыі;
* укладзенасць катэгорый любой глыбіні;
* пошук па змесціву сайта, у тым ліку пошук па таксанаміі і карыстальнікам;
* размежаванне дасягу карыстальнікаў да матэрыялаў (ролевая мадэль);
* дынамічная пабудова меню;
* падтрымка XML-фарматаў:
** вывад дакументаў у RDF/RSS;
** агрэгацыя матэрыялаў з іншых сайтаў;
** BlogAPI для публікавання матэрыялаў пры дапамозе знешніх праграм.
* аўтарызацыя праз OpenID;
* сімвальныя асэнсаваныя URL (іначай «чалавека-зразумелыя»);
* пераклады інтэрфейса сайта на розныя мовы, а таксама падтрымка вядзення шматмоўнага кантэнта;
* магчымасць стварэння сайтаў са складанай структурай змесціва (напрыклад, агульнай базай даных або агульнымі настройкамі);
* размежаваныя канфігурацыі сайта для розных віртуальных хастоў (мультысайтынг), у тым ліку ўласныя наборы модуляў і тэмаў афармлення для кожнага падсайта;
* апавяшчэнні пра выходзячыя абнаўленні модуляў.

## Ядро і модулі 
Drupal мае модульную архітэктуру з кампактным ядром, прадстаўляючым АРІ, да якога могуць звяртацца модулі. Стандартны набор модуляў уключае такія функцыі, як навінная стужка, блог, форум, загрузка файлаў, зборшчык навін, галасаванні, пошук і іншыя. Дызайн сайта змяняецца таксама пасродкам спецыяльных модуляў — «тэмаў афармлення».

### Модулі 
Некалькі прыкладаў найбольш папулярных модуляў, якія можна спампаваць з рэпазіторыя на 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.
* Ubercart — сістэма электроннай камерцыі.

Да несумнеўных плюсаў Drupal трэба аднесці даволі поўную дакументацыю па розных аспектах сістэмы (дакументацыя пераважна на англійскай мове).

## Тэмы афармлення 
Дызайн сайта на Drupal можна змяняць з дапамогай тэмаў афармлення. У якасці шабланізатара («рухавік тэмы» у тэрміналогіі Drupal) выкарыстоўваецца PHPTemplate, але з’яўляецца магчымасць выкарыстоўваць Xtemplate, Smarty, Twig і іншыя.

Уключэнне PHPTemplate і XTemplate рухавікоў у Drupal заклапочвае з нагоды гнуткасці і складанасці. Drupal-темізацыя выкарыстоўвае механізм шаблонаў, каб далей адасобліваць HTML/CSS з PHP. Папулярны Drupal-модуль, які называецца «Devel» падае GUI інфармацыю для распрацоўшчыкаў і вярстальшчыкаў пра будову старонкі.

Унесеныя супольнасцю тэмы на сайт Drupal.org выдадзеныя ў адпаведнасці з бясплатнай ліцэнзіяй GPL.

З версіі 6.0 з’явілася магчымасць дынамічна змяняць формы па сродках AHAH. У версію 7.0 увайшла бібліятэка jQuery UI.

## Метады структуравання зместу 
У Drupal прапаноўваецца гібкая схема арганізацыі структуры сайта на аснове таксанаміі.
**Таксанамія** — механізм, які дазваляе ствараць адвольную колькасць тэматычных катэгорый для змесціва сайта і асацыяваць іх з модулямі, якія забяспечваюць увод і вывад інфармацыі. Катэгорыі могуць прадстаўляць плоскія або іерархічныя спісы, альбо складаныя структуры, дзе элемент можа мець некалькі «продкаў» і некалькі даччыных элементаў. З дапамогай падобнай схемы аднымі і тымі ж модулямі магчыма арганізацыя розных варыянтаў структурызацыі змесціва. Напрыклад, лёгка ствараецца скразны спіс «ключавых словаў» для ўсіх дакументаў сайта і т.п.

Іншая парадзігма з’явілася са стварэннем у Drupal пашырэння Content Construction Kit (CCK). CCK дазваляе дапаўняць дакументы новымі палямі розных тыпаў — ад палёў увода URL і email, да палёў захоўвання і адлюстравання мультымедыйных файлаў. Таксама па сродках дадатковых модуляў да CCK (напрыклад, Node reference) можна арганізаваць сувязі паміж дакументамі, не выкарыстоўваючы механізм таксанаміі.

## Падтрымка лакалізацыі 
]
Сістэма падтрымлівае лакалізацыю інтэрфейса на больш чым 100 мовах (аднак не ўсе пераклады з’яўляюцца поўнымі). У Drupal выкарыстоўваецца асабісты механізм для лакалізацыі з захаваннем перакладаў у базе даных, нараўне з астатнім змесцівам сайта. Імпарт і экспарт перакладаў сайта ажыцяўляецца ў выглядзе po-файлаў.

Поўная лакалізацыя змесціва падтрымліваецца іншымі модулямі, якія не ўваходзяць у пастаўку Drupal, але могуць быць спампаваныя з сайта распрацоўшчыкаў.
У 2012 годзе Drupal-клуб арганізаваў конкурс «Пераклад Drupal на беларускую мову» сярод распрацоўшчыкаў, лінгвістаў і проста ініцыятыўных людзей. Цягам трох месяцаў ядро Drupal 7 версіі было цалкам лакалізавана.

## Бяспека 
Палітыка Drupal складаецца ў тым, каб анансаваць аб прыродзе кожнай уразлівасці сістэмы бяспекі, як толькі выдадзены новы рэліз.
Адміністратары Drupal сайтаў аўтаматычна апавяшчаюцца аб гэтых новых рэлізах праз модуль Статуса Абнаўлення (Drupal 6.x) ці праз Менеджар Абнаўлення (Drupal 7.x). Drupal вядзе спіс рассылкі паведамленняў бяспекі, гісторыю ўсіх апавяшчэнняў бяспекі, дамашнюю старонку службы бяспекі і RSS-стужку з новымі апавяшчэннямі. У 2012 годзе паведамілі і выправілі ў ядры Drupal 4 уразлівасці сістэмы бяспекі. Дзіркі ў бяспецы таксама былі знойдзены і выпраўлены ў 174 унесеных карыстальнікамі модулях.

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

## Крытыка 
* Крытыкі Drupal ставяць у папрок распрацоўшчыкам слабое выкарыстанне аб’ектных магчымасцей PHP. Сапраўды, API Drupal практычна не выкарыстоўвае наяўныя ў PHP магчымасці ААП (Аб’ектна-арыентаванага праграмавання). Распрацоўшчыкі аргументуюць гэта слабай рэалізацыей ААП у мове (асабліва да версіі PHP 5). Аб’ектная мадэль у Drupal прысутнічае, але ў некалькі нетрадыцыйным для PHP выглядзе. У Drupal 7 аднак прысутнічае шэраг новаўвядзенняў, якія задзейнічаюць аб’ектныя магчымасці PHP 5.
* Да недахопаў (але адначасова і добрай якасці) Drupal можна аднесці адсутнасць адваротнай сумяшчальнасці API. У кожным новым мажорным рэлізе адбываюцца вялікія змены API, калі нароўні з дадаваннем новых функцый прыбіраюцца некаторыя старыя або змяняюцца параметры выкліка існуючых. Гэта прыводзіць да неабходнасці распрацоўшчыкам іншых модуляў адаптаваць іх для працы з новымі версіямі Drupal. Аднак змяненні API і працэдура адаптацыі модуляў да новых версій апісваюцца ў дакументацыі для кожнага рэліза, таксама заўжды прапануецца механізм аўтаматызаванага апгрэйда ядра сістэмы на новую версію. Плюс дадзенай схемы распрацоўкі — няма неабходнасці цягнуць з версіі ў версію праграмны пласт сумяшчальнасці са старымі API, што палягчае бягучы код сістэмы.
* Крывая навучання. Некаторыя карыстальнікі апісваюць Drupal як складаны для засваення. Вялікая колькасць унесеных карыстальнікамі модулей могуць мець функцыянальнасць, якая тыражваецца некалькі разоў.

## Прыклады рэалізацыі сайтаў на Drupal 
Прыведзены прыклады некалькіх сайтаў з высокай наведвальнасцю (дзесяткі тысяч наведвальнікаў у суткі і вышэй), працуючых на Drupal:
* Warner Bros Recordings
* MTV UK
* ubuntu
* White House
* The Official Michael Jackson Site
* 
*  фонда свабоднага праграмнага забеспячэння — crm.fsf.org

## Супольнасць 
Drupal.org  мае вялікую супольнасць карыстальнікаў і распрацоўшчыкаў, з больш чым 954,296 уліковых запісаў карыстальнікаў і больш чым 25,146 уліковых запісаў распрацоўшчыкаў (на красавік 2013). Паўгадавыя Drupal-канферэнцыі (DrupalCon) чаргуюцца паміж Паўночнай Амерыкай і Еўропай. Колькасць удзельнікаў на канферэнцыях DrupalCon павялічылася з 500 у Сегедзе ў жніўні 2008 да больш чым 3,100 у Дэнверы ў сакавіку 2012. Еўрапейскі DrupalCon у жніўні 2012 года праходзіў у Мюнхене, Германія.

Меньшыя падзеі, вядомыя як «Drupal-кемпы» (DrupalCamp), праходзяць на працягу ўсяго года па ўсім свеце.

Таксама гуру Drupal запісваюць відэаскрынкасты па ўсталёўцы і наладцы розных модуляў, тэм і г.д., што дазваляе пачаткоўцам хутчэй разабрацца ў сістэме.

## Drupal у Беларусі 
У Беларусі таксама існуе Drupal-супольнасць, у Мінску ладзяцца мерапрыемствы прысвечаныя Drupal.

Восенню 2011 года пачаў сваю дзейнасць Drupal-клуб, куды можа прыйсці любы зацікаўлены ў вывучэнні гэтай сістэмы.

26 лістапада 2011 года актывісты Drupal-клуба, які дзейнічае на базе Фаланстэра, арганізавалі першы Drupal-злёт, на якім былі прадстаўлены даклады і майстэр-клас для пачаткоўцаў.

15-16 снежня 2012 адбыўся другі Drupal-злёт у іншым фармаце. Усё мерапрыемства было падзелена на 3 блокі:
* даклады і прэзентаціі;
* пераклад модуляў на беларускую мову;
* хакатон па распрацоўцы сацыяльнага праекта niekropali.by.

Сярод удзельнікаў распаўсюджваўся комікс прысвечаны Drupal.

15 лістапада 2013 года быў праведзены Drupal-дзень для шкаляроў.

Асобныя фанатычныя ўдзельнікі пад уплывам Drupal намалявалі велізарнае 3D-графіті і запісалі трэк.

## Літаратура 
### Кнігі на рускай мове 
#### Drupal 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
* Колисниченко Денис Николаевич Drupal 7. Руководство пользователя. — «Диалектика», 2011. — С. 256. — ISBN 978-5-8459-1717-1

#### Drupal 6 
* Анжела Байрон, Эдисон Берри, Натан Хог, Джэфф Итон, Джэймс Уокер, Джэфф Роббинс Drupal: создание и управление сайтом = Using Drupal. — «Символ», 2010. — С. 576. — ISBN 978-5-93286-174-5
* Джон Вандюк CMS Drupal: руководство по разработке системы ўправления сайтом = Pro Drupal development. — «Вильямс», 2009. — С. 576. — ISBN 978-5-8459-1513-9
* Томас Захреддин 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
* В.Ромашов CMS Drupal: система управления содержимым сайта. — «Питер», 2009. — С. 256. — ISBN 978-5-49807-241-8

### Кнігі на англійскай мове 
* 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

## Спасылкі 
* Афіцыйны сайт праекта Drupal  

Катэгорыя:Свабодныя сістэмы кіравання сайтамі
Катэгорыя:Сістэмы вядзення блогаў
Катэгорыя:Свабоднае праграмнае забеспячэнне, напісанае на PHP