Entwickelt von | Trocknet Buytaert |
---|---|
Erste Version | 15. Januar 2001 |
Letzte Version | 9.1.5 (4. März 2021) |
Anzahlung | git.drupalcode.org/project/drupal.git |
Geschrieben in | PHP |
Betriebssystem | Linux , Microsoft Windows , MacOS und Unix |
Umgebung | Multi-Plattform |
Sprachen | Mehrsprachig |
Art | Content-Management-System |
Lizenz | GNU General Public License Version 2 oder höher ( d ) |
Webseite | www.drupal.org |
Drupal ist ein kostenloses Open-Source- Content-Management-System (CMS), das unter der GNU General Public License veröffentlicht und in PHP geschrieben wurde .
Dries Buytaert , anfänglicher Entwickler des Projekts aus dem Jahr 2000 an der Universität Antwerpen , definiert es als " Rapid Website Assembler" . Es kann wie auf jeder LAMP- , WAMP- , XAMPP- oder MAMP-Basis verwendet werden , ist jedoch weitgehend anpassbar und anschließend programmierbar. Laut dem Ersteller nutzten es bereits im September 2009 rund 500.000 Websites.
Im 2009Es ist auf Platz 1 st in dem von der britischen Firma organisierten Wettbewerb Packt (in) in der Kategorie Best Open Source PHP CMS gefolgt von Wordpress und Joomla! . Es debütiert auch zuerst im neu geschaffenen Hall of Fame Award (gefolgt von Joomla!).
Im 2010, Angela Byron berichtet , dass Drupal rund 1% der weltweit ausstattet.
Im Mai 2014Das Unternehmen Acquia (Drupal gewidmet und von seinem Gründer gegründet) sammelt 50 Millionen US-Dollar von New Enterprise Associates (NEA) und Split Rock Partners .
Im 2018, Drupal wird von 3,5% der Websites weltweit verwendet. Dies ist das 3 e Content Management System, das am häufigsten hinter WordPress und Joomla verwendet wird.
Drupal kann auf vier verschiedenen Ebenen verwendet werden:
Drupal selbst verwendet eine Datenbank - in der Regel 60 bis 300 Tabellen, abhängig von den aktivierten Modulen - und eine Hierarchie aller austauschbaren Funktionen, sodass der erfahrene Anwendungsentwickler den einzigen Teil, den er ändern möchte, nur auf der Abstraktionsebene neu schreiben kann er ist interessiert, ohne den Rest zu berühren. Gute oder schlechte Kenntnisse der genauen Ebene, auf der eingegriffen werden soll, können die Fertigstellungszeit durch einen Faktor von 10 oder mehr teilen oder multiplizieren.
Drupal verfügt über ungefähr 4000 API- Funktionen , aber auf der Website api.drupal.org können Sie sie für jeden Teil des Inhalts ihres Namens im direkten Zugriff finden. In der Praxis kann ein einfaches Modul nur zehn oder sogar weniger verwenden.
Drupal nennt jeden Inhalt, den es verwaltet, einen "Knoten". Eine Artikelseite ist beispielsweise ein Knoten. Eine Buchseite auch.
Dieser Knoten hat einerseits einen Typ : Forum, ausführlicher Artikel, Kurzinformationen, Tutorial, Blog, Kommentar, Eingabeformular, kollaboratives Buch, Bild oder Bildergalerie, interaktive Umfrage, Wiki- Seite , Artikelbeschreibung zum Online-Verkauf, Kleinanzeige usw. : Das Formular unterliegt keiner vorgegebenen Architektur mehr, wodurch der Inhalt leicht rekonfigurierbar ist. Als Gegenleistung für diese Freiheit muss sich der Designer mit seiner speziellen Logik vertraut machen.
Der Knoten verfügt gemäß seinen Typspezifikationen auch über folgende Felder : Name, Typ, Datum, Autor, mögliches Bild, Text, Community-Abstimmungen zu seinem Inhalt usw.
Jeder Knoten kann auf Wunsch an mehrere taxonomische Begriffe gleichzeitig angehängt werden (daher kann eine kurze Beschreibung einer französischen Goldmedaille bei den Olympischen Spielen sowohl an "Sport" als auch an "Frankreich" angehängt werden, wie in der nebenstehenden Abbildung dargestellt). Der Designer oder Administrator ist daher nicht verpflichtet, seinen Inhalt in eine einzige anfängliche Hierarchie einzufügen. Es ist einfach notwendig, dass die Taxonomien kohärent bleiben (A kann nicht von B in einem abhängen, während B von A in einem anderen abhängt, was sowieso keinen Sinn ergibt).
Beim Erstellen wird einem Knoten eine Knoten-ID (NID) zugewiesen, die ihn charakterisiert. Falls vorhanden, erhöht das System bei seinen Revisionen einen VID- Zähler ( Revision ID ). Der Designer kann wählen, ob andere als die neuesten Revisionen beibehalten werden sollen oder nicht. Jeder Knoten hat auch einen Titel , mit dem Administratoren sie bequemer verwalten können.
Die Komplexität des Titels spielt keine Rolle, da der Administrator nur auf eine Liste klicken muss, ohne ihn jemals selbst eingeben zu müssen.
Das System aufeinanderfolgender Überarbeitungen ermöglicht es, bei Bedarf auf eine frühere Version zurückzugreifen, wie dies bei Wikis der Fall ist .
Verarbeitung: Module (PHP)Die Behandlungen werden von Modulen bereitgestellt , unabhängig, nebeneinander und kombinierbar (ein Modul kann die von einem anderen bereitgestellten Dienste nutzen und hat dies als Voraussetzung). Sie können nach Belieben aktiviert und deaktiviert werden, ohne die Site anzuhalten.
Geschichte: Drupal 6In Drupal 6 gab es verschiedene Modultypen, von denen der einfachste der folgende ist:
In Drupal 7 gibt es nur Zonen: Der Site-Administrator kann sie jederzeit nach Belieben verschieben. Der Designer weist ihnen Größen, Schriftarten und Farbtöne zu. Der Inhalt eines Knotens kann daher auf Wunsch perfekt an den Seitenrändern angezeigt werden. Diese Möglichkeit bietet beträchtliche Dienste in der Entwicklung, die es beispielsweise ermöglichen, Bereiche für das Debuggen zuzuweisen .
Die Funktionen eines Moduls können drei Dinge zurückgeben:
Drupal 8, das am 19. November 2015 veröffentlicht wurde, basiert auf dem französischen Symfony 2- Framework, um die Standardisierung zu ermöglichen, eine große Anzahl von Entwicklern zu erreichen und den Objektansatz von PHP, insbesondere Namespaces , voll auszunutzen Erleichterung der Modulisolation. Es ermöglicht die Anzeige des gleichen Inhalts - jeweils angemessen dargestellt - auf PCs, Tablets und Mobiltelefonen , einschließlich Push- Technologie .
Infolgedessen wird Drupal de facto an der REST- Architektur festhalten .
Präsentation: Themen (CSS und PHP)Weder Knoten noch Module kümmern sich um die Präsentation (nicht einmal XHTML- Tags ). Dies sind die Stile , die geladen werden, wie z. B. Stylesheets in (X) HTML . Ein Drupal-Site-Administrator kann den Stil mit ein paar Mausklicks grundlegend ändern, beispielsweise für eine Gedenkfeier oder ein anderes Ereignis.
Dieses System wurde entwickelt, um das Kerngeschäft eines Website-Erstellers (Verwaltung und Artikulation von Daten) vom einzigen visuellen Teil zu trennen, der sehr unterschiedliche Konzepte erfordert (unter anderem Ergonomie) und von einer Unterbehandlung in einer spezialisierten Apotheke profitieren kann ( Webagentur, unabhängiger Grafikdesigner).
Es wird nach Möglichkeit durch Eingaben in ein CSS- Stylesheet verwaltet und dort, wo eine bestimmte Verarbeitung erforderlich ist (z. B. abwechselnd zwei Hintergrundfarben, um aufeinanderfolgende Zeilen einer Tabelle darzustellen ), durch einfache, in PHP geschriebene Themenfunktionen .
Die Themenfunktionen verwenden Zeichenfolgen, Vektoren oder Arrays (oder Arrays von Arrays) als Eingabe und erzeugen im Gegenzug eine XHTML-Formatierungszeichenfolge, die vom Programmierer in die Zone seiner Wahl geleitet wird, die durch seinen Namen und nicht durch seine Position gekennzeichnet ist. Der Designer und der Site-Administrator entscheiden letztendlich, wo auf der Seite diese Informationen sowie die Farbe und Schriftart angezeigt werden. Dies geschieht entweder durch Neuorganisation der Blöcke im Dashboard oder durch Ändern der Blätter, die den Stil jedes Blocks definieren.
Wenn Sie nur die Schriftarten, ihre Größen , ihre Gewichte und ihre Farben ändern möchten, können Sie dies mit dem Sweaver- Modul auch dynamisch auf der Site tun.
Informationen, die vom Administrator außerhalb des Moduls definiert und geändert werden können, sind einem Blockmodul zugeordnet:
Diese Komposition kommt der von Donald Knuth definierten Box-Strategie nahe, um die Komposition von DTP- Werken kohärent zu machen.
Seit Version 6 können Prioritätsinformationen durch einfaches Ziehen und Ablegen in einem speziellen Menü verwaltet werden, was häufige Neuanordnungen erleichtert.
Ab Version 7 gibt es keine Seitenblöcke mehr, die einem zentralen Teil gegenüberstehen, sondern nur Regionen, die vom Administrator gleichberechtigt verwaltet werden. Somit kann ein seitliches Debug- Fenster während der Entwicklung usw. mit einem Klick in den größeren zentralen Teil usw. verschoben werden.
Drupal ordnet jedem anklickbaren Objekt Code-Ausführungen zu (Rückrufe). Was entwickelt wird, hat daher streng genommen keine Reihenfolge und kann in beliebiger Reihenfolge aufgerufen werden.
Die Rückruffunktionen in Drupal entsprechen konzeptionell dem Begriff der Aufgabe in CICS , mit der Ausnahme, dass die Kompilierungsphase nicht mehr stattfinden muss, da PHP eine interpretierte Sprache ist .
Der Administrator kann jedem Benutzer (vorhanden oder standardmäßig für jeden zukünftigen Benutzer) eine oder mehrere Rollen zuweisen , die eine Reihe von Berechtigungen zusammenfassen. Es ist dann möglich, so viele Berechtigungen wie nötig zwischen dem Administrator - der alles kann - und dem nicht registrierten Benutzer, der beispielsweise nur das Recht hat, die Site anzuzeigen, ohne sie zu ändern, genau zu definieren.
Von einer Hauptversion zur nächsten (4.x, 5.x, 6.x ...) Drupal garantiert keine Abwärtskompatibilität des entwickelten Codes, garantiert jedoch, dass es niemals notwendig sein wird, den Code zu ändern Inhalt, der oft einhundert bis hunderttausend Mal (zum Beispiel bei der archivierten Tagespresse) allein das Volumen des Codes darstellt. Es eignet sich daher gut für Inhalte, die eine lange Lebensdauer erfordern: Konsultation von Pressearchiven, Rechtstexten, Kundenbetreuung usw.
Diese Entscheidung, die möglicherweise überraschend ist, hängt mit der sehr raschen Entwicklung der Praktiken im Internet zusammen: Ein Content-Management-System, das den Einschränkungen einer Analyse und einer zwei Jahre zuvor entworfenen Architektur unterliegen würde, würde nicht mehr unbedingt im Einklang stehen Markterwartungen und würde neue technische Möglichkeiten (Video, Geolocation , Google Maps , PDA , Flash , RSS , Twitter , Telefone, Tablets, Erkennung von Sicherheitsanomalien in Echtzeit usw.) nur durch Arten von Patches verwalten. Das Ändern des CMS, da das alte festgefahren ist, kostet jedoch viel mehr als nur ein Upgrade eines vorhandenen CMS, ohne etwas anderes als einen Export / Import seines Inhalts durchzuführen.
Aus diesem Grund gibt es immer zwei aufeinanderfolgende Hauptversionen von Code, die von den Entwicklerteams separat verwaltet werden. Wir können daher wählen, ob wir eine von zwei Hauptversionen ignorieren möchten. Wenn Sie möchten, können Sie auch eine Produktionsversion und eine Testversion auf identischen Inhalten usw. nebeneinander haben.
In der Praxis beziehen sich die Änderungen meistens nur auf die Anzahl der Argumente der vorhandenen Funktionen (API), wobei die Ergänzungen ihnen zusätzliche Funktionen ermöglichen. Hier ist zum Beispiel eine Weiterentwicklung der book_toc () - API , die das Inhaltsverzeichnis für buchartigen Inhalt (Satz strukturierter Knoten) erstellt:
Jede Informationsseite in Drupal hat eine URL in der Form:
http://www.exemple.com/?q=node/83Diese Form der URL, die von Suchmaschinen nicht erkannt wird, kann dank CleanURL so werden (in Drupal 8 ist CleanURL standardmäßig aktiviert):
http://www.exemple.com/node/83Darüber hinaus kann die URL mithilfe eines Alias aussagekräftiger gemacht werden:
http://www.exemple.com/nos_prestationsDrupal wurde in PHP entwickelt . Viele Funktionen sind auch in JavaScript programmiert , hauptsächlich mithilfe der JQuery- Bibliothek .
Drupal besteht aus zwei verschiedenen Arten von Komponenten:
Das Herz ist komplett französisch und Teil der inoffiziellen Module. Es ist einfach, sich einen ersten Überblick über die Qualität dieser Module zu verschaffen, da sie auf der offiziellen Website aufgelistet sind und alle gemeldeten Fehler mit ihrem Datum und dem der Lösung, falls vorhanden, aufgelistet sind . Um sie zu korrigieren, werden wir niemals so gut bedient sein wie wir selbst, was das eigentliche Prinzip von Open Source ist : Die Module sind in normalem PHP geschrieben.
Wenn die Verwendung bestimmter Module von langer Dauer ist, können sie in den Kern einer späteren Version integriert werden. Das von Drupal 7 integriert beispielsweise die Suite der automatischen Tests SimpleTests, bisher ein separates Modul.
Die Module können miteinander kombiniert werden, um leistungsfähigere zu erhalten. Ein typisches Beispiel ist das OG-Protokoll , das das OG-Modul ( organische Gruppen , die private oder öffentliche Benutzergemeinschaften verwalten) und das Protokoll (Verwaltung der Teilnahme an einer Besprechung) usw. kombiniert .
Jeder Benutzer kann eine Zeitzone und eine Sprache deklarieren. Die Sprache jedes Inhalts, der damit verbunden ist, die Erstellung internationaler und mehrsprachiger Websites ist eine Standardfunktion von Drupal. Die PHP-GTK-Site war beispielsweise eine der ersten, die Inhalte in französischem, englischem und brasilianischem Portugiesisch enthielt. Griechisch, Kanji, Kyrillisch und Arabisch, um nur einige zu nennen, sind kein Problem mehr.
Bei dem von der britischen Firma Packt (in) organisierten Wettbewerb belegte Drupal 2008 den ersten Platz beim Wettbewerb der besten Content-Management-Systeme, auch in der Kategorie " Overall Open Source Content Management System Award" (Auszeichnung für den besten freien Zugang zum Content-Management-System) wie in der Kategorie Bestes PHP Open Source Content Management System (Bestes Content Management System und Open Access PHP ) zu Joomla! in beiden Fällen.
2009 blieb er der erste in diesem Wettbewerb in der Kategorie Best Open Source PHP CMS, gefolgt von WordPress und Joomla! . Auf der anderen Seite verschwindet es aus den Top 3 der Gesamtkategorie , angeführt von WordPress. Es wurde jedoch erstmals in den neu geschaffenen Hall of Fame Award aufgenommen , gefolgt von Joomla!
Mit Drupal können Sie als XTemplate- Template- Engine PHPTemplate (offizielle Template-Engine seit Version 4.7), aber auch Smarty verwenden .
Um maximale Flexibilität zu ermöglichen, werden Berechtigungen von Labels verwaltet, die Administratoren und Modulschreiber frei wählen können. Sie müssen nur darauf achten, dass nicht zwei verschiedene Module denselben Wortlaut verwenden, um unterschiedliche Berechtigungen zu kennzeichnen.
Diese Statistiken wurden für ungefähr 85.000 Drupal-Installationen erstellt, die die Rückgabe von Statistiken aktivierten. Die Zahlen sind zur besseren Lesbarkeit auf Tausend gerundet.
Es gibt Tausende von Modulen, die von der Community erstellt wurden. Die Module decken viele der Anforderungen moderner Websites ab und umfassen sogar zwei E-Commerce-Suiten. Das System von Hooks (abgefangene URL-Adressen + Funktionen mit herkömmlich einheitlichen Namen) und Rückrufen ermöglicht die Verwendung dieser Hooks bei der Verarbeitung einer Anforderung. Dies ist der Grund, warum es so viele Module gibt, die so viele verschiedene Funktionen bieten.
Diese beiden Einschränkungen sind mit Drupal 8 verschwunden, das die Namespaces von PHP 5 im Rahmen des französischen Frameworks Symfony 2 verwendet, um mögliche Konflikte zu vermeiden.
Jede Informationsausgabe muss ausnahmslos über eine theme () -Funktion erfolgen , da sonst die Vorteile einer klaren Trennung zwischen den Rohdaten des Inhalts und der Auswahl der für die Site spezifischen Präsentation nicht genutzt werden können.
Die folgenden Websites zeigen Beispiele für die Integration der Flash-Technologie und des PDA-Formats in Drupal-Websites. Obwohl noch nicht sehr verbreitet, sollten Integrationen dieser Art weit verbreitet werden. Diese Beispiele sollen daran erinnern, dass Drupal nicht in einem festen Rahmen inhaftiert ist, sondern eine einfache Startplattform für eine Site darstellt, die mehrere Technologien integrieren kann.
Auf der Website drupal.org wird auch die bidirektionale Kommunikation mit OpenLaszlo gemeldet , um umfangreiche Internetanwendungen zu erstellen .
Eine informelle Lernkurve ermöglicht es jedem, sich im Verhältnis zu anderen Drupalisten zu positionieren, was dazu beiträgt, sich bei nationalen oder internationalen Treffen nach Ebenen zu gruppieren.
Die Website api.drupal.org bietet Zugriff auf alle Drupal- APIs im Hypertext-Format. Es ist praktisch, den Inhalt von HTTrack herunterzuladen und ihn bei Bedarf im Offline-Modus über den Browser eines Android- Tablets oder eines anderen zu konsultieren , wenn auf dem Bildschirm oder den Entwicklungsbildschirmen nicht genügend Speicherplatz vorhanden ist.
Als Teil einer Vereinigung mit wenig Verkehr und / oder Anforderungen kann Drupal von einer Person installiert werden, die sich um alles kümmert. Sehr große Websites mit einem großen nationalen oder internationalen Publikum erfordern eine Schulung in Drupal:
Eine Liste der Drupal-Anbieter wird auf der Website drupal.fr auf dem neuesten Stand gehalten. Mehrere dieser Anbieter nehmen an den auf der Website beworbenen Meetings teil, die öffentlich sind. Dies ist eine Gelegenheit, sie in Aktion zu sehen. Eine große Anzahl von ihnen ist auch an der Entwicklung, Wartung und Erweiterung der Module des gemeinsamen Topfes beteiligt. Eine jährliche europäische Konferenz ermöglicht diejenigen, die sich eine Woche lang intensiv austauschen möchten. Ein anderer ist in den Vereinigten Staaten organisiert.
Acquia (en) , ein 2008 gegründetes Unternehmen , möchte Drupal unter der GPL genauso unterstützen wie Red Hat , Canonical oder Novell unter Linux . Ihre Berufung ist nicht der Bau von Websites, sondern nur die Unterstützung des Produkts selbst durch Dienstleister oder deren Kunden auf Abonnementbasis. Die validierte Verteilung von Drupal, GPL selbst, wird als Carbon bezeichnet.
Eine Drupal-Distribution ist ein Paket, das den Drupal-Kernel, eine Reihe von Modulen, Themen, Bibliotheken und Installationsprofilen umfasst. Drupal-Distributionen richten sich an einen bestimmten Anwendungsfall wie E-Commerce, Intranet und soziale Netzwerke.
Kostenlos herunterladbar, Acquia Drupal enthält standardmäßig der Fivestar (Bewertung der Beiträge von 1 bis 5 Sternen) und Poll (Organisation von Umfragen mit grafischen Ergebnissen) Module . Durch die Integration aller Komponenten des Drupal- Stacks unter einem einzigen Bedienfeld wird vermieden, dass Drupal und WAMP (oder Drupal und LAMP, da es eine Ubuntu- Version gibt ) separat installiert und verwaltet werden , und die Schnittstelle zwischen diesen wird automatisch festgelegt. Es ist ein gutes Mittel zur Initiierung und mehr, zumal es dank der freien Auswahl der Portnummern in keiner Weise frühere Installationen von Apache oder MySQL ( z. B. mit Wampserver oder XAMPP ) beeinträchtigt .
Open Atrium ist eher ein Paket als eine Distribution und bietet unter anderem eine Standardisierung von Blogs, Kalendern, Themen, kollaborativen Dokumenten, Gruppen, Wikis und Projektfortschrittsmanagement ("Tracking").
Drupal Commerce Kickstart ist auch ein Paket, eine komplette Online-Verkaufssuite mit illustriertem Katalog, die kostenlos heruntergeladen werden kann und auch als Schaufenster für seine Designer dient. Es verwaltet die europäische Mehrwertsteuer.
Opigno ist eine LMS- Plattform ( Learning Management System ), die eine Distribution, aber auch ein Framework bietet. Sie müssen lediglich die verschiedenen Module separat herunterladen, um eine maßgeschneiderte E-Learning-Lösung zu entwickeln.
Drupal ist in eine Reihe von Debian GNU / Linux- Paketen integriert und kann daher in von Debian abgeleitete Distributionen integriert werden.
Open Social ist eine Distribution von Drupal 8 zum Erstellen von Communities, sozialen Unternehmensnetzwerken und Intranets.
Die Website Drupalgardens.com war ein Kindergarten, der das Hosting von Websites auf Drupal-Basis anbot, und konnte im Drucktastenmodus konfiguriert werden. Das Geschäftsmodell lautete wie folgt: Eine Site mit geringem Datenverkehr erhält eine kostenlose Lösung, während Websites mit höherem Datenverkehr ein Abonnement bezahlen müssen, um den Service über einen bestimmten Zeitraum hinaus weiterhin nutzen zu können. Menge an Bandbreite, Mitgliedern oder Speicherkapazität. Die Unterstützung Drupalgardens.com wurde am verhaftet 1 st August 2016.
Drupal war Gegenstand mehrerer Bücher: