Udviklet af | Dries Buytaert |
---|---|
Første version | 15. januar 2001 |
Sidste version | 9.1.5 (4. marts 2021) |
Depositum | git.drupalcode.org/project/drupal.git |
Skrevet i | PHP |
Operativ system | Linux , Microsoft Windows , macOS og Unix |
Miljø | Multi-platform |
Sprog | Flersproget |
Type | Indholds styrelses system |
Licens | GNU General Public License version 2 eller nyere ( d ) |
Internet side | www.drupal.org |
Drupal er et gratis og open source content management system (CMS) frigivet under GNU General Public License og skrevet i PHP .
Dries Buytaert , oprindelig udvikler af projektet fra 2000 ved universitetet i Antwerpen , definerer det som " hurtig websidesamler" . Det kan bruges som er på enhver LAMP , WAMP , XAMPP eller MAMP databasen , men det er i høj grad kan tilpasses og programmerbare bagefter. Ifølge sin skaber brugte omkring 500.000 websteder det allerede fra september 2009.
I 2009Det er rangeret 1 st i konkurrencen arrangeret af det britiske selskab Packt (i) i kategorien bedste Open Source PHP CMS efterfulgt af Wordpress og Joomla! . Det debuterer også først i den nyoprettede Hall of Fame Award (efterfulgt af Joomla!).
I 2010, Angela Byron rapporterer, at Drupal udstyrer ca. 1% af verdens hjemmesider.
I Maj 2014virksomheden Acquia (Drupal dedikeret til og oprettet af grundlæggeren) op 50 millioner fra New Enterprise Associates (NEA) og Split Rock Partners .
I 2018, Drupal bruges af 3,5% af hjemmesider verden over. Dette er det 3 e indholdsstyringssystem, der er mest brugt bag WordPress og Joomla.
Drupal kan bruges på fire forskellige niveauer:
Drupal bruger selv en database - typisk bestående af 60 til 300 tabeller afhængigt af de aktiverede moduler - og et hierarki af alle udskiftelige funktioner, der gør det muligt for den erfarne applikationsudvikler at omskrive den eneste del, han ønsker at ændre, og kun på det abstraktionsniveau, hvori han er interesseret uden at røre resten. Godt eller dårligt kendskab til det nøjagtige niveau, hvor man kan gribe ind, kan dividere eller multiplicere afslutningstiden med en faktor på 10 eller mere.
Drupal har cirka 4000 API- funktioner , men webstedet api.drupal.org giver dig mulighed for at finde dem i direkte adgang af enhver del af indholdet i deres navn. I praksis kan et simpelt modul muligvis kun bruge ti eller endnu mindre.
Drupal kalder ethvert indhold, det administrerer, for en "node". En artikelside vil for eksempel være en node. En bogside også.
Denne knude vil på den ene side have en type : forum, artikel, kort information, tutorial, blog, kommentar, inputformular, samarbejdsbog, billed- eller billedgalleri, interaktiv undersøgelse, wiki- side , artikelbeskrivelse til salg online, klassificeret annonce , etc. : formen er ikke længere underlagt en forudbestemt arkitektur, hvilket gør indholdet let omkonfigurerbart. Til gengæld for denne frihed skal designeren gøre sig bekendt med sin særlige logik.
I henhold til dens typespecifikationer vil noden også have felter : navn, type, dato, forfatter, muligt billede, brødtekst, community-stemmer på dets indhold osv.
Hver node kan, hvis det ønskes, knyttes til flere taksonomiske udtryk samtidigt (således kan en briefing om en fransk guldmedalje ved de Olympiske lege vedhæftes både "Sport" og "Frankrig", som vist i diagrammet. Modsat). Designeren eller administratoren er derfor ikke forpligtet til at indsætte deres indhold i et enkelt indledende hierarki. Taxonomierne skal simpelthen forblive konsistente (A kan ikke afhænge af B i en, mens det er B, der afhænger af A i en anden, hvilket alligevel ikke giver mening).
Når den oprettes, tildeles en knude et node-id (NID), der karakteriserer det. Som eventuelle revisioner øger systemet en VID- tæller ( revision ID ). Designeren kan vælge, om han vil beholde andre ændringer end de seneste. Hver knude har også en titel , som giver administratorer mulighed for at administrere dem mere bekvemt.
Kompleksiteten af titlen betyder ikke noget, fordi administratoren bare skal klikke på den på en liste uden nogensinde at skulle skrive den selv.
Systemet med efterfølgende revisioner gør det muligt at vende tilbage til en tidligere version, hvis det er nødvendigt, som det gøres på wikier .
Behandling: moduler (PHP)Behandlingerne leveres af moduler , uafhængige, sammenstillbare og kombinerbare (et modul kan bruge de tjenester, der leveres af et andet, og har det som en forudsætning). De kan aktiveres og deaktiveres efter ønske uden at stoppe webstedet.
Historie: Drupal 6Der var flere typer moduler i Drupal 6, hvor den enkleste var følgende:
I Drupal 7 er der kun zoner: webstedsadministratoren kan flytte dem når som helst, som han ønsker; designeren tildeler dem størrelser, skrifttyper og farvetoner. Indholdet af en node kan derfor vises perfekt i sidemargenerne, hvis det ønskes. Denne mulighed giver betydelige tjenester under udvikling, hvilket f.eks. Gør det muligt at tildele områder til debugging .
Funktionerne i et modul kan returnere tre ting:
Drupal 8, udgivet den 19. november 2015, er baseret på den franske Symfony 2- ramme af hensyn til standardisering, for at åbne op for et stort antal udviklere og for at drage fuld fordel af objektmetoden til PHP, især navneområder, der vil lette modulisolering. Det giver mulighed for visning af det samme indhold - præsenteret passende i hvert tilfælde - på pc'er, tablets og mobiltelefoner , herunder brug af push- teknologi .
Som et resultat vil Drupal de facto overholde REST- arkitekturen .
Præsentation: temaer (CSS og PHP)Hverken noder eller moduler tager sig af præsentationen (ikke engang XHTML- tags for den sags skyld ). Det er de stilarter , der indlæses, ligesom style sheets i (X) HTML . En Drupal-webstedsadministrator kan dybt ændre stilen med et par klik med musen, f.eks. Til en mindehøjtid eller anden begivenhed.
Dette system er designet til at adskille kerneforretningen hos en webstedsskaber (datastyring og artikulation) fra den eneste visuelle del, der kræver meget forskellige koncepter (ergonomi blandt andre) og kan have gavn af at blive underbehandlet på et specialiseret apotek (web agentur, uafhængig grafisk designer).
Det styres, hvor det er muligt, af input i et CSS -stilark, og hvor specifik behandling er påkrævet (for eksempel skiftevis to baggrundsfarver for at præsentere successive rækker i en tabel) ved enkle temafunktioner skrevet i PHP .
Temafunktionerne tager strenge, vektorer eller arrays (eller arrays of arrays) som input og producerer til gengæld en XHTML-formateringsstreng, der vil blive dirigeret af programmøren til den valgte zone, udpeget af hans navn og ikke af hans position. Designeren og webstedsadministratoren beslutter i sidste ende, hvor på siden disse oplysninger skal vises, samt farve og skrifttype, og dette enten ved at omorganisere blokke på instrumentbrættet eller ved at ændre arkene, der definerer stilen for hver blok.
Hvis du kun vil ændre skrifttyperne, deres størrelser , deres vægt og deres farver, giver Sweaver- modulet dig også mulighed for at gøre det dynamisk på webstedet.
Oplysninger, der er defineret og kan ændres uden for modulet af administratoren, er knyttet til et blokmodul:
Denne sammensætning er tæt på den boksestrategi, der er defineret af Donald Knuth for at gøre sammensætningen af DTP- værker sammenhængende.
Siden version 6 kan prioritetsoplysninger styres ved blot at trække og slippe i en speciel menu, som letter hyppige omlejringer.
Fra version 7 er der ikke længere sideblokke modsat en central del, men kun regioner, der administreres på lige fod af administratoren. Således kan et sidefejlretningsvindue flyttes med et klik i den større centrale del under udvikling osv.
Drupal associerer kodeudførelser med hvert objekt, der kan klikkes på (callbacks). Hvad der udvikles har derfor ikke en rækkefølge strengt taget og kan kaldes i hvilken som helst rækkefølge.
Callback-funktionerne i Drupal er begrebsmæssigt tæt på begrebet opgave i CICS , bortset fra at kompileringsfasen ikke længere behøver at være, PHP er et fortolket sprog .
Administratoren kan tildele hver bruger (eksisterende eller som standard for hver fremtidig bruger) en eller flere roller , som grupperer et sæt tilladelser. Det er derefter muligt at definere så mange tilladelser som nødvendigt mellem administratoren - som kan gøre alt - og den uregistrerede bruger, som f.eks. Kun har ret til at se siden uden at ændre den.
Fra den ene store version til den næste (4.x, 5.x, 6.x ...) garanterer Drupal ikke nogen bagudkompatibilitet af den udviklede kode, men på den anden side garanterer det, at det aldrig bliver nødvendigt at ændre indhold, som ofte repræsenterer fra hundrede til hundrede tusind gange (f.eks. i tilfældet med den arkiverede daglige presse) volumen af koden alene. Det egner sig derfor godt til indhold, der kræver stærk holdbarhed: konsultation af pressearkiver, juridiske tekster, kundeopfølgning osv.
Denne beslutning, som kan være overraskende, er knyttet til den meget hurtige udvikling af praksis på Internettet: et indholdsstyringssystem, der ville være underlagt begrænsningerne i en analyse og en arkitektur, der var tænkt ud to år tidligere, ville ikke længere være på linje med markedets forventninger og ville kun styre nye tekniske muligheder (video, geolokalisering , Google maps , PDA , Flash , RSS , Twitter , telefoner, tablets, detektering i realtid af sikkerhedsanomalier osv.) efter slags patches. Men at ændre CMS, fordi den gamle er død, koster meget mere end blot at opgradere et eksisterende CMS uden at gøre noget andet end eksport / import af dets indhold.
Af denne grund er der altid to på hinanden følgende større versioner af kode vedligeholdt separat af udviklerholdene. Vi kan derfor vælge, om vi vil ignorere en ud af to hovedversioner. Du kan også, hvis du foretrækker det, have en produktionsversion og en testversion sammen med identisk indhold osv.
I praksis vedrører ændringerne det meste kun antallet af argumenter for de eksisterende funktioner (API), tilføjelserne giver dem mulighed for yderligere funktioner. For eksempel er her en udvikling af book_toc () API , som opretter indholdsfortegnelsen til bogtypeindhold (sæt strukturerede noder):
Enhver informationsside i Drupal har en URL i form:
http://www.exemple.com/?q=node/83Denne form for URL, der ikke genkendes af søgemaskiner, kan blive sådan takket være CleanURL (i Drupal 8 er CleanURL aktiveret som standard):
http://www.exemple.com/node/83Derudover kan URL'en gøres mere meningsfuld ved hjælp af et alias:
http://www.exemple.com/nos_prestationsDrupal er udviklet i PHP . Mange funktioner er også programmeret i JavaScript , hovedsageligt ved hjælp af JQuery- biblioteket .
Drupal har to forskellige typer komponenter:
Hjertet er helt fransk såvel som nogle af de uofficielle moduler. Det er let at få en første idé om kvaliteten af disse moduler, fordi det officielle websted lister dem og lister hver af de rapporterede fejl med deres dato og opløsning, hvis der var en. For at rette dem vil vi aldrig blive betjent så godt som os selv, hvilket er selve princippet om open source : modulerne er skrevet i almindelig PHP.
Når brugen af visse moduler er langvarig, kan de indarbejdes i kernen i en senere version. Drupal 7 integrerer f.eks. Pakken med automatiske tests SimpleTests, indtil nu et separat modul.
Modulerne kan kombineres med hinanden for at give dem mere kraftfulde moduler. Et typisk eksempel er OG-minutter , der kombinerer OG-modulet ( organiske grupper, der administrerer private eller offentlige brugergrupper), og minutter (styring af deltagelse på et møde) osv.
Det er muligt for hver bruger at erklære en tidszone og et sprog. Sproget for hvert indhold, der er knyttet til det, opførelsen af internationale og flersprogede websteder er en standardfunktion for Drupal. PHP-GTK-webstedet var for eksempel et af de første, der havde indhold på fransk, engelsk og brasiliansk portugisisk. Græsk, kanji, kyrillisk og arabisk, for at nævne nogle få, er ikke mere et problem.
I konkurrencen arrangeret af det britiske firma Packt (i) rangerede Drupal først i 2008 i konkurrencen om de bedste indholdsstyringssystemer i kategorien Samlet Open Source Content Management System Award (Award for bedste indholdsstyringssystem gratis adgang) som i kategorien Bedste PHP Open Source content management system (Bedste content management system og open access php ) til Joomla! i begge tilfælde.
I 2009 forblev han først i denne konkurrence i kategorien Bedste Open Source PHP CMS efterfulgt af WordPress og Joomla! . På den anden side forsvinder den fra top 3 i kategorien Samlet ledet af WordPress. Imidlertid gjorde det sit første bidrag i den nyoprettede Hall of Fame Award , efterfulgt af Joomla!.
Drupal giver dig mulighed for at bruge som XTemplate- skabelonmotor , PHPTemplate (officiel skabelonmotor siden version 4.7) men også Smarty .
For at give maksimal fleksibilitet styres tilladelser af etiketter, som administratorer og modulforfattere frit vælger. Du skal bare være forsigtig med, at den samme ordlyd ikke bruges af to forskellige moduler til at udpege forskellige tilladelser.
Disse statistikker er etableret på ca. 85.000 Drupal-installationer, der har aktiveret returnering af statistik. Tallene afrundes til nærmeste tusind for bedre læsbarhed.
Der er tusindvis af moduler oprettet af samfundet. Modulerne dækker mange af behovene på moderne websteder og indeholder endda to e-handelspakker. Systemet med kroge (opfangede URL-adresser + funktioner, der omfatter konventionelt samlede navne) og tilbagekald giver dem mulighed for at blive brugt hvor som helst i behandlingen af en anmodning. Dette er grunden til, at der er så mange moduler, der tilbyder så mange forskellige funktioner.
Disse to begrænsninger er forsvundet med Drupal 8, der bruger navneområderne til PHP 5 inden for rammerne af den franske ramme Symfony 2 for at undgå enhver konfliktmulighed.
Enhver informationsoutput uden undtagelse skal ske via en tema () -funktion , ellers ville man ikke drage fordel af fordelene ved den klare adskillelse mellem den rå information om indholdet og valg af præsentation, der er specifikt for webstedet.
De følgende sider viser eksempler på integration af flashteknologi og PDA-format i Drupal-websteder. Selvom det endnu ikke er meget udbredt, bør integrationer af denne type blive udbredt. Disse eksempler er tænkt som en påmindelse om, at Drupal ikke fængsler i en fast ramme, men udgør en simpel startplatform for et websted, der kan integrere flere teknologier.
Webstedet drupal.org rapporterer også tovejskommunikation med OpenLaszlo for at skabe rige internetapplikationer .
En uformel læringskurve giver alle mulighed for at placere sig i forhold til andre Drupalists, hvilket hjælper med at gruppere efter niveau i nationale eller internationale møder.
Webstedet api.drupal.org giver adgang til alle Drupal API'er i hypertekstformat. En bekvem praksis er at downloade dets indhold via HTTrack og konsultere det efter behov i offline-tilstand fra browseren på en Android- tablet eller andet, hvis der mangler plads på skærmen eller skærme.
Som en del af en forening med lidt trafik og / eller krav kan Drupal installeres af en person, der tager sig af alt. Meget store websteder med et massivt nationalt eller internationalt publikum vil kræve træning i Drupal:
En liste over Drupal-udbydere holdes opdateret på drupal.fr-siden. Flere af disse udbydere deltager i de møder, der er annonceret på siden, og som er offentlige, hvilket er en mulighed for at se dem i aktion. Et stort antal af dem deltager også i udvikling, vedligeholdelse og udvidelse af modulerne i den fælles pot. En årlig europæisk konference tillader dem, der ønsker at have intensiv udveksling i en uge. En anden er organiseret i USA.
Et firma oprettet i 2008, Acquia (en) , sigter mod at yde den samme form for support på Drupal som Red Hat , Canonical eller Novell på Linux under GPL . Dets kald er ikke opførelse af websteder, men kun support af selve produktet med tjenesteudbydere eller deres kunder på abonnementsbasis. Dens validerede distribution af Drupal, selvfølgelig GPL, kaldes kulstof.
En Drupal-distribution er en pakke, der indeholder Drupal-kernen, et sæt moduler, temaer, biblioteker og installationsprofiler. Drupal-distributioner er rettet mod en bestemt brugssag, såsom e-handel, intranet, socialt netværk.
Acquia Drupal kan downloades gratis og indeholder som standard modulerne Fivestar (vurdering af bidrag fra 1 til 5 stjerner) og afstemning (organisering af undersøgelser med grafiske resultater). Ved at integrere alle komponenterne i Drupal- stakken under et enkelt kontrolpanel undgår det installation og separat administration af Drupal og WAMP (eller Drupal og LAMP, fordi der er en Ubuntu- version ), og indstiller automatisk grænsefladen mellem dem. Det er et godt initieringsmiddel og mere, især da det ikke på nogen måde forstyrrer nogen tidligere installationer af Apache eller MySQL (f.eks. Med Wampserver eller XAMPP ) takket være et frit valg af portnumre .
Open Atrium er en pakke snarere end en distribution og tilbyder standardisering til blandt andet blogs, kalendere, temaer, samarbejdsdokumenter, grupper, wikier og projektstyring ("tracking").
Drupal Commerce Kickstart er også en pakke, en komplet online salgssuite med illustreret katalog, der kan downloades gratis og som også fungerer som et udstillingsvindue for sine designere. Det forvalter europæisk moms.
Opigno er en LMS- platform ( Learning Management System ), den giver en distribution, men også en ramme - du skal bare downloade de forskellige moduler separat for at designe en skræddersyet e-læringsløsning.
Drupal er integreret i et sæt Debian GNU / linux- pakker og kan derfor integreres med distributioner afledt af Debian.
Open Social er en distribution af Drupal 8 til oprettelse af samfund, virksomheds sociale netværk og intranet.
Drupalgardens.com- siden var en børnehave, der tilbyder hosting af Drupal-baserede websteder og kunne konfigureres i trykknaptilstand. Dens forretningsmodel var som følger: et websted med lav trafik får en gratis løsning, mens websteder med højere trafik skal betale et abonnement for at fortsætte med at nyde tjenesten ud over en bestemt periode. Mængde båndbredde, medlemmer eller lagerkapacitet. Støtten Drupalgardens.com blev arresteret den 1. st august 2016.
Drupal har været genstand for flere bøger: