Стандардно издање Друпала, познатије као Друпал језгро, обезбеђује основне функционалности заједничке за све системе за управљање садржајем (енгл.Content management systems - CMS). То су регистрација и одржавање корисничких налога, управљање менијима, РСС изворима вести, таксономијом, прилагођавање изгледа страница и администрација система. Инсталација Друпал језгра може послужити као једноставан веб-сајт, једнокориснички или вишекориснички блог, Интернет форум, или пак веб-сајт заједнице обезбеђујући садржај генерисан од стране корисника (енгл.user-generated content).
У јануару, 2017. године, Друпал заједница је добила свог милионитог члана.[10] У ову бројку спада и 105.400 корисника који активно доприносе развоју Друпала.[11] Резултат овога је више од 35.800 бесплатних модула који унапређују и прилагођавају функционалности Друпала, преко 2.300 бесплатних тема које мењају општи изглед Друпала и најмање 1.100 бесплатних дистрибуција које вам омогућавају брзо и лако подешавање сложених, специфичних Друпал веб-сајтова у мање корака.[12]
Иако Друпал програмерима нуди софистициран Апликациони програмски интерфејс (АПИ), основна инсталација и администрација веб-сајтова не захтева претходно знање програмирања.
Творац Друпала је Дрис Бајтерт. У почетку замишљен као форум, 2001. године постаје пројекат отвореног кода.[16] Назив Друпал је енглеска варијанта холандске речи "druppel", што у преводу значи "капљица".[17] Назив потиче од веб-сајта Drop.org, који је у међувремену угашен и чији је код интегрисан у Друпал. Интересантна прича везана је за назив овог система, наиме Дрис Бајтерт је имао идеју да систем назове "dorp", што на холандском значи село, као симбол заједнице и међусобне подршке, међутим током провере доступности назива домена, догодила се грешка у куцању, па је на тај начин, сасвим случајно, од „села“ (dorp) настала „капљица“ (druppel).
Интересовање за Друпал се значајно повећало 2003. године када је ова платформа искоришћена за креирање дистрибуције ДинСпејс (енгл.DeanSpace) за потребе примарне кампање кандидата Демократске странке, Хауарда Дина на председничким изборима у САД, 2004. године. ДинСпејс дистрибуција је искоришћена за подршку у развоју преко 50 различитих, незваничних сајтова који су били наклоњени његовој кампањи и који су корисницима омогућавали директну међусобну комуникацију као и комуникацију са представницима саме кампање.[18] Након завршетка кампање, чланови његовог тима за веб развој наставили су са интересовањем за развој веб платформе која би помогла политичком ангажману, па су у јулу 2004. покренули СивикСпејс Лабс (енгл.CivicSpace Labs), "прву компанију чији су се запослени бавили искључиво развојем и дистрибуцијом Друпал технологије".[19] И друге компаније су почеле да се специјализују за развој у Друпалу.[20][21] До 2013. године број компанија које су нудиле услуге везане за развој у Друпалу, попео се на преко стотину.[22]
Закључно са 2014. годином Друпал је почела да развија заједница,[23] док је популарност све брже расла. Од јула 2007. до јуна 2008. године број преузимања Друпал инсталације са веб-сајта Drupal.orgАрхивирано на сајту Wayback Machine (19. октобар 2019) био је 1,4 милиона, што је повећање од отприлике 125% у односу на претходну годину.[24][25]
Закључно са јануаром 2014. године, више од 1.180.000 веб-сајтова је користило Друпал.[26] У ову бројку спадају на стотине познатих организација,[27] као што су корпорације, медији и издавачи, државне институције и непрофитне организације,[тражи се извор] школе и појединци. Друпал је награђен са неколико Пакт награда (енгл.Packt) за допринос у области система за управљање садржајемотвореног кода[28] као и наградом Вебвер 100 (енгл.Webware 100) три пута за редом.[29][30]
Дана 5. марта 2009. године, Бајтерт је објавио "застој" у развоју Друпал 7 верзије до 1. септембра 2009. године.[31] Друпал 7 је објављен 5. јануара 2011. године, што је у неколико земаља обележено пригодним журкама.[32] Након тога, престала је подршка за Друпал 5, па је званична подршка била доступна само за верзије Друпал 6 и 7.[33] Ажурирања Друпал 7 верзије су редовно објављивана.[34]
Дана 1. децембра 2012. године отпочет је развој Друпал 8 верзије.[35] Приближно три године касније, 7. октобра 2015. године објављена је рц1 (енгл.release candidate) верзија Друпала 8.[36] Друпал 8 доноси нове могућности и побољшања како за кориснике тако и за програмере, као што су: измењен кориснички интерфејс; WYSIWYG (енгл.What You See Is What You Get) уређивање садржаја на самом сајту; побољшана подршка за мобилне уређаје; додати и побољшани допринесени енгл.contributed модули као што су Views, Date, и Entity Reference; представљена је нова, објектно-оријентисана PHP основа заснована на Симфони компонентама; измењено је систем конфигурација; и побољшана је подршка за вишејезичност. Друпал 8 рц1 верзија је настала као резултат рада преко 3.200 програмера.[37]
Дана 15. јануара 2015. године, објављен је Друпал форк (енгл.fork) под називом Бекдроп (енгл.Backdrop).[38]
Друпал 8.0.0 је објављен 19. новембра 2015. године.[39] Доступна је и његова надоградња у виду верзије 8.1.0[40] која доноси бројна побољшања, ЦКЕдитор WYSIWYG надоградњу, додати АПИ, побољшане странице за помоћ корисницима, и два нова експериментална модула. Сврха експерименталних модула је тестирање, иако нису у потпуности подржани.
Језгро
У Друпал заједници термин "језгро" односи се на код развијен заједничким радом који се може надоградити допринесеним модулима. До верзије Друпал 8, овај код је чуван изван фолдера "sites" у самој Друпал инсталацији.[41] Од верзије 8, језгро се налази у "core" потфолдеру Друпал инсталације. Језгро представља основу Друпала. Бутстреп и заједничке библиотеке се дефинишу у самом језгру, док се остале функционалности имплементирају путем модула, међу којима и самим системским модулом.
На основу подразумеване конфигурације Друпал веб-сајта, садржај могу креирати регистровани или анонимни корисници (уз дискретно право администратора да то одобри) и он је доступан посетиоцима веб-сајта на основу различитих критеријума. Од верзије 8, у Друпал језгро су уграђене одређене Симфони библиотеке.
Уграђени модули такође поседују и хијерархијски систем таксономија, који даје могућност да се садржај категорише или обележава кључним речима како би му се лакше приступало.
Друпал одржава детаљну базу промена у уграђеним функционалностима по верзијама система.[42]
Уграђени модули
Друпал језгро садржи опционе модуле које администратор може да укључи како би проширио могућности језгра веб-сајта.[43]
Подразумевана Друпал дистрибуција садржи бројне опције, као што су:
Приступ статистици и логовима
Напредна претрага
Блогови, књиге, коментари, форуми и анкете
Кеширање и подешавање опција за побољшане перформансе
Сигурносна обавештења и ажурирања на најновију верзију
Коориснички профили
Рестриктивна контрола приступа за различите кориснике (на основу корисничких улога, ИП адресе, имејла)
Алати за контролу тока рада (окидачи и активности)
Уграђене теме
Друпал садржи и уграђене теме које прилагођавају изглед и понашање (енгл.look and feel) Друпал веб-сајтова,[45] као што су Гарланд и Бартик теме.
Модул Колор, представљен у Друпалу 5.0, омогућава администраторима промену палете боја одређене теме у самом интерфејсу Веб-читача.[46]
Локализација
Закључно са јануаром 2017. године, Друпал је доступан на 100 језика и енглеском (подразумевани језик).[47] Доступан је и за језике који се читају здесна улево, као што су арапски, персијски и хебрејски.[48]
Друпал аутоматски обавештава администратора о најновијим верзијама модула, тема и Друпал језгра. Изузетно је важно да се систем ажурира убрзо након објаве закрпа. Пре самог ажурирања препоручује се креирање резервне копије језгра, модула, тема, фајлова и базе података. Уколико дође до грешке након ажурирања или ако закрпе нису компатибилне са модулом, веб-сајт се може брзо повратити из резервне копије. Доступно је неколико Друпал модула за креирање резервне копије система. 15. октобра 2014. године, објављено је ажурирање које решава откривени проблем рањивости система путем SQL инјекције (енгл.SQL injection).[49] Две недеље касније, Друпал сигурносни тим је објавио саопштење у коме објашњава да сви корисници треба да се понашају у складу са претпоставком да су сви сајтови, који нису ажурирани у року од 7 сати од тог саопштења, заражени.[50] У складу са тим, изузетно је важно да се у што краћем року примене ажурирања и препоручљиво је да се за то користе алати као што је Драш, како би се олакшао цео процес.
Апстракција базе података
Пре верзије 7, Друпал је имао функције које су решавале одређене задатке везане за базу података, као што су валидација SQL упита, додавање префикса у називима табела на више сајтова и генерисање тачних SQL упита. Са Друпалом 6 је представљен слој апстракције који је програмерима дозвољавао креирање SQL упита без конкретног писања наредби у SQL-у.
Друпал 7 проширује слој апстракције података на начин да програмери више не морају да пишу SQL упите као текстуалне низове. Он користи PHP објекте података (енгл.data objects) за апстракцију базе података. Мајкрософт је за свој SQL сервер развио драјвер базе података.[51] Друпал 7 подржава SQL механизам базе података у фајлу, који је део стандардне PHP дистрибуције.
Привлачење Windows програмера
Нови слој апстракције базе података који је представљен са Друпалом 7 и његова могућност да се покреће на Windows веб-серверу IIS, омогућили су лакше учествовање Windows програмера у Друпал заједници. Посебна група на Drupal.orgАрхивирано на сајту Wayback Machine (19. октобар 2019) је посвећена Windows корисницима и њиховим питањима и проблемима.[52]
Приступачност
Са појавом Друпала 7, приступачност Вебу је значајно побољшана од стране Друпал заједнице.[53] Друпал је одличан алат за креирање сајтова доступних људима са посебним потребама, јер је у развоју система примењена најбоља пракса из ове области. Тим задужен за приступачност платформе наставља са идентификацијом и решавањем баријера и подиже свест о овим проблемима у самој заједници. Друпал 7 верзија је започела усвајање WAI-ARIA (енгл.Web Accessibility Initiative – Accessible Rich Internet Applications) подршке за обогаћене Интернет апликације (енгл.Rich Internet applications) и са тим је настављено у Друпалу 8. Много побољшавања је представљено како на корисничкој тако и на администраторској страни Друпала, као што су:
Додата је могућност навигације са прескакањем у уграђене теме
Ознаке се подразумевано додају формама за унос
Решен је проблем са CSS елементом display:none увођењем конзистентних метода за сакривање и приказивање текста преласком миша преко њих.
Друпал заједница посебну пажњу поклања решавању проблема приступачности при дефинисању преправки за језгро Друпала 8.[54]
Проширење уграђених функционалности Друпал језгра
Друпал језгро је модуларно и дефинише систем hook и callback функција, којима се приступа интерно, путем АПИ-ја.[55] Овакав дизајн омогућава развој допринесених модула и тема како би се прошириле или редефинисале функционалности Друпала без промена у самом језгру.
Фајлови Друпал језгра изоловани су у односу на допринесене модуле и теме. На овај начин се увећава флексибилност и сигурност и омогућава администраторима да без проблема надограде систем на најновију верзију без потребе за брисањем промена у прилагођеним фајловима.[56] Заједница се придржава мантре "Никад не хакуј језгро", препоруке програмерима да никако не мењају фајлове у језгру.
Модули
Допринесени модули обезбеђују додатне и алтернативне могућности као што су галерије слика, произвољни типови садржаја (енгл.content types) и излиставање садржаја, WYSIWYG уређивачи текста, приватне поруке, интеграција са различитим алатима,[тражи се извор] интеграција са пословним апликацијама,[тражи се извор] и др. Закључно са јануаром 2017. године, доступно је преко 36.500 бесплатних модула.[57]
Content Construction Kit (CCK): омогућава администраторима веб-сајтова да динамички праве типове садржаја проширујући шему базе података. "Типови садржаја" описују врсту информација. Типови садржаја подразумевају догађаје, позивнице, рецензије, чланке и производе као и произвољан садржај. CCK Fields API је садржан у Друпал језгру у верзији 7.[59][60]
Views: олакшавају проналажење и приказивање садржаја посетиоцима веб-сајта, користећи слој апстракције базе података. Основне функционалности су додате у језгро у Друпалу 8.[61]
Panels: омогућава управљање распоредом приказа елемената превлачењем како би администратори визуелно дизајнирали изглед веб-сајта.
Rules: условно извршава радње засноване на понављајућим догађајима.
Features: омогућава снимање и управљање функционалностима (ентитета, приказа, поља, конфигурација, итд.) у сопственим модулима.
Context: омогућава дефинисање секција на веб-сајту у којима се Друпал функционалности могу условно активирати
Media: олакшава отпремање фотографија и управљање медијима
Закључно са јануаром 2017. године, доступно је више од 2.400[62] бесплатних допринесених тема. Теме адаптирају или замењују подразумевани изглед Друпал веб-сајта.
Друпал теме користе стандардне формате приказивања садржаја засноване на одређеним шаблонским системима (енгл.template engine). Многе од њих су написане у PHPTemplate шаблонском систему[тражи се извор] или, мањој мери, XTemplate шаблонском систему.[тражи се извор] Неки шаблони су написани у PHP-у. Друпал 8 користи Твиг (енгл.Twig) шаблонски систем.
Укључивање PHPTemplate и XTemplate шаблонских система у Друпал изазвало је негативне реакције корисника због проблема са флексибилношћу и његове комлпексности.[63] Друпал систем тема користи шаблонски систем како би раздвојио HTML/CSS од PHP-а. Популаран Друпал допринесени модул "Девел" обезбеђује информације програмерима и дизајнерима тема путем графичког корисничког интерфејса.
Раније, они који су желели потпуно прилагођену инсталацију Друпала морали су да скину прерађену верзију независно од званичног Друпал језгра. Данас дистрибуција дефинише упаковану верзију Друпала која осим инсталације нуди веб-сајт и креиране апликације за одређену област.
Дистрибуције обезбеђују погодности новог Друпал веб-сајта јер не мора да се претражују модули како би се инсталирали нити се подешавају конфигурације.[тражи се извор] Оне представљају колекцију модула, тема и одређених конфигурационих подешавања које припремају Друпал за одређену употребу. На пример, дистрибуција може да конфигурише Друпал да буде веб-сајт у виду брошуре уместо информативних портала или е-продавница.
Архитектура
Друпал је базиран на ПАЦ архитектури (енгл.Presentation Abstraction Control). Систем менија се понаша као контролер. Прихвата улазне параметре из јединственог извора (HTTP GET и POST), распоређује захтеве до одговарајућих помоћних функција, узима податке из слоја асптракције (нодови, а од Друпал 5 верзије и форме) и шаље их кроз филтер како би их приказао (уз помоћ теме). Чак шта више, поседује вишеструке, паралелне PAC агенте у облику блокова који приказују податке.[67]
Заједница
Drupal.orgАрхивирано на сајту Wayback Machine (19. октобар 2019) поседује велику заједницу корисника и програмера који пружају активну подршку кроз објављивање нових ажурирања чиме се помаже побољшање функционисања самог Друпала.[тражи се извор] Закључно са јануаром 2017. године, више од 105.400 корисника активно доприноси Друпал заједници. ДрупалКон (енгл.DrupalCon) конференције, на којима се бележи сваке године све већа посећеност, одржавају се два пута годишње - у Северној Америци, Европи и Азији, наизменично.[68] Посета на ДрупалКону је расла са 500 посетилаца у Сегедину, у августу 2008. до преко 3.700 посетилаца у Остину, у јуну 2014. године.
Мањи догађаји, познатији као Друпал кампови (енгл.DrupalCamp),[69] одржавају се током године у целом свету.
Друпал заједница такође организује професионална и полупрофесионална окупљања тзб. митапове (енгл.meetups), на различитим локацијама широм света.
Постоји велики број активних Друпал форума,[70] мејлинг листа[71] и група за дискусију.[72] Друпал такође одржава неколико ИРЦ канала[73] на Фринод (енгл.Freenode) мрежи.
Активно је више од 30 националних заједница[74] на Drupal.orgАрхивирано на сајту Wayback Machine (19. октобар 2019) које пружају подршку на локалним језицима.
Сигурност
Политика Друпала је да објављује пропусте и рањивости у систему заједно са ажурирањем које решава овај проблем.[75][76] Администратори Друпал сајтова добијају обавештење о овим ажурирањима путем модула Апдејт Статус (енгл.Update Status) (у Друпалу 6) или модула Апдејт Менаџер (енгл.Update Manager) (у Друпалу 7).[77] Друпал одржава листу сигурносних обавештења, са историјатом свих ових објава,[78] почетну страницу тима за питања сигурности у Друпалу,[79] као и РСС вести[80] са најновијим саветима по питању сигурности система. 2008. године, пријављено је 11 сигурносних пропуста који су решени у Друпал језгру.[78] Сигурносни недостаци су пронађени и решени у 64 од укупно 2.243 корисничких допринесених модула.[78][81]
Средином октобра 2014. године,[82] Друпал је објавио да је пронађен критичан баг у Друпалу 7 који има везе са методом SQL инјекције и овај случај је добио назив Друпалгедон.[83][84] Решење за овај проблем била је надоградња на Друпал верзију 7.32, која међутим није била у могућности да открије да ли су хакери инсталирали нежељене програме (енгл.backdoor) уколико је конкретан Друпал веб-сајт већ био компромитован.[85] Напади хакера су кренули недуго након што је објављено да постоји баг. Друпал сигурносни тим је објавио да се у случају да на веб-сајту није инсталирана ова надоградња у року од неколико сати од њене објаве, он сматра компромитованим и да би требало да се замени статичком HTML страницом и да би администраторе сервера на ком се налазио требало информисати да су и други сајтови на том серверу потенцијално заражени. Да би се овај проблем решио, веб-сајт је морало вратити на верзију пре 15. октобра, инсталирати ову надоградњу ручно и пажљиво пратити сваки сервис који је био везан за претходни сајт.[86]
^„Drupal Core—Highly Critical—Public Service Announcement—PSA-2014-003”. Security advisories. Drupal security team. 29. 10. 2014 — преко Drupal.org. „You should proceed under the assumption that every Drupal 7 website was compromised unless updated or patched before Oct 15th, 11pm UTC, that is 7 hours after the announcement. Simply updating to Drupal 7.32 will not remove backdoors....updating to version 7.32 or applying the patch fixes the vulnerability but does not fix an already compromised website. If you find that your site is already patched but you didn’t do it, that can be a symptom that the site was compromised - some attacks have applied the patch as a way to guarantee they are the only attacker in control of the site.”