Drupal

Drupal Beschreibung des Drupal 7-Bildes screenhot.png. Information
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 .

Historisch

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.

Prinzipien

Drupal kann auf vier verschiedenen Ebenen verwendet werden:

  1. Wie es ist: Sobald es installiert und konfiguriert ist, kann es verwendet werden, um strukturierte und kommentierbare Inhalte von Benutzern zu erstellen, die sich auf der Site registrieren können. Die Site-Menüs haben dann ein Standard-Erscheinungsbild.
  2. Einfache Anpassung: Es ist dann möglich, den Anzeigeort oder die Anzeige selbst, visuelle Standardkomponenten (Datum und Uhrzeit, letzte Beiträge, Anzahl der verbundenen usw.) sowie das Anzeigethema (Begriff unten erläutert) der Site anzupassen.
  3. Erweiterung um externe Ergänzungen: Hinzufügen, Konfigurieren und Anpassen von optionalen Modulen, die nicht zum Kernel gehören. An diesem und am nächsten Punkt ist es nicht ungewöhnlich, dass der Website-Entwickler auch ein eigenes Präsentationsthema schreibt.
  4. Erweiterung durch interne Entwicklung: Schreiben neuer Module, die von der GPL geregelt werden. Oft ist es effizient (aber überhaupt nicht obligatorisch), sie dann der Community zu präsentieren, damit sie an ihrer Entwicklung teilnehmen kann.

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.

Inhalt, Verarbeitung, Präsentation

Inhalt oder Knoten

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.

Taxonomie kann mehrere Vorfahren haben

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 6

In Drupal 6 gab es verschiedene Modultypen, von denen der einfachste der folgende ist:

  • die Blockmodule , die mit kleinen Informationen verknüpft sind (z. B. wer online ist oder wie viele Personen, wer die neuesten Mitglieder sind, welche die neuesten Beiträge sind, am beliebtesten ...). Ihre Ergebnisse werden am Rand des "großen" Inhalts am rechten, linken, oberen oder unteren Rand angezeigt.
  • die Knotenmodule , die generieren, was nicht am Rand steht: Blog, Forum, Seiten, Formulare usw. Standardmäßig können ihnen vier ähnliche Methoden zugeordnet werden: Auflisten , Konfigurieren , Speichern und Anzeigen , die jeweils angeben, wie das Modul seine Existenz melden soll, wie es konfiguriert werden soll, wie diese Konfiguration gespeichert werden soll und wie dieses Modul seine Informationen anzeigt.
Drupal 7

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:

  • ein Fehlercode
  • nichts, was eine andere Art von Fehler ist ( WSOD: White Screen Of Death )
  • ein Vektor oder ein Array (oder sogar ein Array von Arrays) im PHP-Sinne. Auf dieser Ebene gibt es normalerweise noch keine injizierten XHTML- Tags . Es ist allein das Thema, das sich darum kümmern wird.
Drupal 8

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.

Blockadministration

Informationen, die vom Administrator außerhalb des Moduls definiert und geändert werden können, sind einem Blockmodul zugeordnet:

  • Platzierungsinformationen (oben, unten, rechts, links usw.),
  • Prioritätsinformationen (im Allgemeinen von -10 bis +10) im Vergleich zu anderen Blöcken mit derselben Platzierungsanzeige,
  • und Informationen, die angeben, ob dieser Block aktiviert ist (= angezeigt werden muss) oder nicht.

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.

Ereignisprogrammierung

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 .

  • In beiden Fällen wird die Anwendung daher im laufenden Betrieb geändert, ohne dass sie gestoppt werden muss.
  • Auf der anderen Seite müssen Sie bei Drupal darauf achten, ein Modul nicht zu aktivieren (dh "von Drupal nicht berücksichtigen"), es sei denn, es ist syntaktisch gültig (ob es funktionsfähig ist oder nicht), andernfalls das Die gesamte Anwendung verursacht einen Fehler. Dies ist jedoch kein Problem, wenn Sie in einer integrierten Entwicklungsumgebung wie Eclipse , Aptana , Zend Studio usw. arbeiten, in der Sie das aktuelle Programm im Prinzip erst speichern, wenn seine Syntax in der Editorumgebung überprüft wurde .

Rollen

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.

  • Sie können beispielsweise die Rollen des Inhaltsvalidators (der den zur Veröffentlichung eingereichten Inhalt genehmigt und / oder ändert), des Kommentarvalidators (der diese Funktionen nur im Kommentarteil hat) und eines vertrauenswürdigen Benutzers mit Rechten an bestimmten Bearbeitungsfunktionen (z. B. Farbe) erstellen von Text oder Hintergrund) usw.
  • Sie können auch entscheiden, dass nicht angemeldete Benutzer nur das Mediawiki- Format verwenden können , um ihre Texte einzugeben, während Dienstabonnenten das Recht auf vollständige oder teilweise XHTML mit WYSIWYG- Eingabe usw. haben.

Inhaltspflege

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:

  • Versionen 4.6 bis 5: book_toc ( $ exclude = 0 )
  • Version 6: book_toc ( $ bid, $ exclude = array (), $ depth_limit ): Feinere Kontrolle des Ergebnisses
  • Version 7: book_toc ($ bid, $ depth_limit, $ exclude = array () ): Permutation, bei der das optionale Argument am Ende steht

Die Architektur

Sichtbarkeit durch Suchmaschinen

Jede Informationsseite in Drupal hat eine URL in der Form:

http://www.exemple.com/?q=node/83

Diese 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/83

Darüber hinaus kann die URL mithilfe eines Alias ​​aussagekräftiger gemacht werden:

http://www.exemple.com/nos_prestations

Host-Sprache

Drupal wurde in PHP entwickelt . Viele Funktionen sind auch in JavaScript programmiert , hauptsächlich mithilfe der JQuery- Bibliothek .

Komponenten

Drupal besteht aus zwei verschiedenen Arten von Komponenten:

  • ein zuverlässiges und robustes "Herz", ausgiebig getestet
  • „Module“ in unterschiedlichem Umfang und unterschiedlicher Qualität, die von der Community frei entwickelt und allen zur Verfügung gestellt werden (1.800 im März 2008, 7.210 im November 2010, 24.900 im Dezember 2013).

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 .

Internationalisierung und Lokalisierung als Standard

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.

Auszeichnungen

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!

Eigenschaften

Template-Engines

Mit Drupal können Sie als XTemplate- Template- Engine PHPTemplate (offizielle Template-Engine seit Version 4.7), aber auch Smarty verwenden .

Berechtigungen

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.

Module

Meist verwendete Module (Oktober 2008)

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.

  1. Aufrufe (39.000): Präsentation von Inhaltslisten nach Kriterien Ihrer Wahl
  2. Content Construction Kit - CCK (34.000): Erstellung neuer Arten von Inhalten durch Hinzufügen von Feldern. In Drupal 7 in den Kern integriert.
  3. Token (32.000): Verwaltung standardisierter Formate (z. B. URLs usw.)
  4. Pathauto (26.000): Automatisches Einfügen von Pfaden basierend auf Inhalten
  5. Update-Status (21.000): Warnt vor Modul-Updates
  6. Bild (21.000): Hochladen von Bildinhalten durch Benutzer: Ermöglicht das Erstellen von Bildergalerien. Dieses Modul benötigt das Upload- Modul . Außerdem können die übertragenen Bilder verarbeitet werden (Erstellung von Miniaturansichten usw.). In Drupal 7 in den Kern integriert.
Offizielle Module
  • Aggregator: Wird zum Aggregieren von syndizierten Inhalten ( RSS- und RDF- Feeds ) verwendet.
  • Archiv: Zeigt einen Kalender für den Zugriff auf die Archive an.
  • Block: Steuert die Anzeige von Feldern am Rand des Hauptinhalts.
  • Blog: Bietet eine Blog-Engine zum einfachen und regelmäßigen Aktualisieren einer Webseite oder eines Blogs .
  • blogapi: Ermöglicht Benutzern das Posten mit Anwendungen, die XML-RPC-Blog-APIs unterstützen.
  • Buch: Ermöglicht Benutzern die Zusammenarbeit beim Schreiben eines Buches.
  • Kommentar: Ermöglicht Benutzern das Kommentieren und Diskutieren von geposteten Inhalten.
  • drupal: Ermöglicht Mitgliedern die Anmeldung mit einem Drupal-Identifikationscode und die Meldung der Existenz der Site an einen zentralen Server.
  • Filter: Steuert die Filterung von Inhalten zur Vorbereitung der Anzeige.
  • Forum: Aktiviert Diskussionsthreads zu allgemeinen Themen.
  • Hilfe: Steuert die Anzeige der Online-Hilfe.
  • Legacy: Bietet ein Drupal-Update-System.
  • Gebietsschema: Ermöglicht die Übersetzung der Benutzeroberfläche in andere Sprachen als Englisch.
  • Menü: Ermöglicht Administratoren das Anpassen des Site-Navigationsmenüs.
  • Knoten: Ermöglicht das Senden und Anzeigen von Inhalten auf Seiten.
  • Seite: Aktiviert die Erstellung von Seiten, die dem Navigationssystem hinzugefügt werden können.
  • Pfad: Ermöglicht Benutzern das Umbenennen von URLs .
  • ping: Benachrichtigen Sie interessierte Websites, dass die Website aktualisiert wurde.
  • Umfrage: Ermöglicht das Sammeln von Stimmen zu verschiedenen Themen in Form von Multiple-Choice-Fragen.
  • Profil: Unterstützung für konfigurierbare Benutzerprofile.
  • Suche: Ermöglicht die Suche nach Schlüsselwörtern auf der gesamten Website.
  • Statistik: Nimmt die Zugriffsstatistik der Site zur Kenntnis.
  • Story: Ermöglicht Benutzern das Einreichen von Storys, Artikeln oder ähnlichen Inhalten.
  • System: übernimmt die allgemeine Konfiguration der Site für Administratoren.
  • Taxonomie: Ermöglicht die Organisation von Inhalten in verschiedene Kategorien.
  • Gas: kümmert sich um den Selbstregulierungsmechanismus, um die Überlastung der Baustelle zu kontrollieren.
  • Tracker: Aktivieren Sie die Nachverfolgung der letzten Nachrichten für Benutzer.
  • Upload: Ermöglicht Benutzern das Hochladen und Anhängen von Dateien an Inhalte.
  • Benutzer: Verwaltet die Benutzerregistrierung und das Authentifizierungssystem.
  • Watchdog: Führt ein Protokoll der Systemereignisse.
  • Wiki: Ermöglicht die Verwendung einer Wiki- Syntax .
Andere Module

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.

  • Ereignis: Ermöglicht das Anhängen von Datumsinformationen an einen beliebigen Knoten, um diese in einem Ereigniskalender oder in einem Block anzuzeigen, in dem bevorstehende Ereignisse zusammengefasst werden.
  • Wysiwyg API: Unterstützte Integration von HTML-Editoren wie TinyMCE oder CKEditor in Drupal, die die intuitive Eingabe von Rich Text (Fett, Kursiv, Text- und Hintergrundfarbe, Bilder usw.) wie ein Textverarbeitungsprogramm ermöglicht.
  • Module, die die Eingabe von Inhalten in Wikimedia- Form und ein Wiki unter Drupal ermöglichen.
  • Modul zur interaktiven Erstellung von H5P- Inhalten .

Gute Praktiken

Standardanrufe

  • Drupal verwaltet und ruft automatisch die Funktionen auf, deren Name den angebotenen Konventionen entspricht. Diese nicht sehr restriktiven Konventionen (monmodule _init () , monmodule _menu () , monmodule _form_alter () ...) ermöglichen es auch, sich auf einem vertrauten Boden zu befinden, wenn man ein von anderen geschriebenes Modul verwendet oder modifiziert.

Namen

  • Homonyme zwischen Modulen, ob zwischen Berechtigungsnamen oder Funktionsnamen, sollten sorgfältig vermieden werden.
  • Begrenzen Sie das Risiko von Konflikten in den Namen der Funktionen, die für eine Site und für die Module entwickelt wurden. Zum Beispiel können wir den Funktionen eines Moduls ein unterstrichenes Leerzeichen (_) voranstellen. Auch wenn wir eine schreiben wollen Lookup - Funktion , werden wir es zum Beispiel nennen _lookup () . Diese Empfehlung wird häufig auf Entwicklerseiten abgerufen.

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.

Ort

  • Jede für den Benutzer bestimmte Bezeichnung muss ein Argument der Funktion t () sein , die stattdessen, falls vorhanden, die entsprechende Bezeichnung anzeigt, die zuvor in eine der im Browser als bevorzugt definierten Sprachen übersetzt wurde. Drupal ist sehr effizient beim Erstellen mehrsprachiger Websites.

Separates Thema

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.

Technisch fortgeschrittene Anwendungen von Drupal

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.

  • Frankreich 24  : Drupal-Site mit der Möglichkeit der Anzeige auf einem PDA .
  • Boucheron  : Beispiel einer Drupal-Site mit Flash , die mit MOVEX ERP und einer IBM DB2-Datenbank verbunden ist.

Auf der Website drupal.org wird auch die bidirektionale Kommunikation mit OpenLaszlo gemeldet , um umfangreiche Internetanwendungen zu erstellen .

Rund um Drupal

Lernkurve

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.

API-Referenz

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.

Trades

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:

  • Site- und / oder Systemadministrator (en)
  • Inhaltsarchitekt (en)
  • Entwickler
  • Themendesigner, Spezialist für Ergonomie und Informationsarchitektur.

Anbieter

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.

Kostenlose Distributionen

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.

Site Kindergarten

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.

Anmerkungen und Referenzen

  1. drupal 9.1.5  " (abgerufen am 6. März 2021 ).
  2. Der Name „  Drupal  “, der auf Englisch / ˈdruːpəl / ausgesprochen wird , stammt aus dem Niederländischen „  Druppel  “ und bedeutet „  drop  “ (vgl. Univ-tours.fr ), daher das Logo.
  3. Sehen Sie sich diese Drupal-Demo in 10 Minuten an
  4. Analog dazu heißt die kostenlose All-in-One- Distribution Acquia Dev Desktop jetzt DAMP .
  5. "Drupal, die Web All-In-One - Maschine , " Rue89 , 5. September 2009.
  6. Liste der Gewinner seit 2006 auf der Packt- Website
  7. „Drupal auch jetzt Kräfte mehr als 1% der Bahn, einschließlich der Websites von bekannten Namen wie Whitehouse.gov und grammy.com“, Drupal 7 Modulentwicklung , ( ISBN  978-1-849511-16-2 ) , Vorwort.
  8. Drupal: Acquia sammelt 50 Millionen US-Dollar , Journal du Net , 28. Mai 2014
  9. "  Nutzungsstatistik und Marktanteil von Content-Management-Systemen für Websites, Februar 2019  " , auf w3techs.com (abgerufen am 13. Februar 2019 )
  10. Ausgenommen Kommentare, die aus Leistungsgründen in einer eigenen Tabelle verwaltet werden.
  11. aber auch zu einem möglichen "Goldmedaillen" -Tag, einem anderen mit dem Jahr verknüpften Tag usw.
  12. "  Drupal 8.0.0 veröffentlicht | Drupal.org  ” , unter www.drupal.org (abgerufen am 20. November 2015 )
  13. http://plusvite.net/?9f08da07 Webchick ( Angela Byron ) ist mitverantwortlich für den Drupal-Kern
  14. (in) "  Die Zukunft ist ein ruhiger Drupal  " auf buytaert.net , Dries Buytaert ,16. Februar 2012(Zugriff auf den 6. August 2020 ) .
  15. Dies sind keine "echten" Rückrufe im Sinne von grafischen Oberflächen, zum Beispiel, weil sich eine Funktion zur Laufzeit nicht registriert: Ihr Name gibt direkt an, mit was sie verknüpft ist; In anderen Kontexten werden diese Prozesse manchmal als Exits bezeichnet, da sie Standardaktionen ergänzen oder ersetzen
  16. Dries Buytaert, DrupalCon 2008, Szeged (Ungarn), 27.08.2008
  17. http://gtk.php.net/
  18. http://drupal.org/project/usage
  19. http://drupal.org/project/views Ansichten
  20. http://drupal.org/project/cck CCK
  21. http://drupal.org/project/image image
  22. Daher der Drupalisten-Witz: Ihre Funktionen rufen Drupal nicht auf. Er ruft sie an
  23. Ab Version 6 identifiziert Drupal selbst mehrere zu übersetzende Bereiche, wodurch t () für sie überflüssig wird
  24. http://drupal.org/node/132287
  25. http://www.unleashedmind.com/files/drupal-learning-curve.png
  26. http://api.drupal.org
  27. http://www.drupal.fr/annuaire-pro
  28. http://szeged2008.drupalcon.org/ , http://paris2009.drupalcon.org/ , http://cph2010.drupal.org/ , http://london2011.drupal.org/
  29. http://boston2008.drupalcon.org/
  30. „  Drupal 8 und Distributionen  “ unter www.faichi.com (abgerufen am 31. März 2019 )
  31. http://acquia.com/downloads
  32. http://openatrium.com
  33. http://drupal.org/project/commerce_kickstart
  34. Opigno LMS
  35. Drupal-Pakete aus der Debian GNU / Linux-Distribution .
  36. Ayush Jain , „  Open Social Drupal 8 Distribution - Aufbau sozialer Gemeinschaften mit Drupal 8  “ , auf Medium ,30. Dezember 2017(abgerufen am 31. März 2019 )

Anhänge

Literaturverzeichnis

Drupal war Gegenstand mehrerer Bücher:

  • Cyprien Roudet , Atelier Drupal 7: Erstellen einer Website mit einem CMS wie keinem anderen , Paris, Framasoft , coll.  "Framabook" ( n o  12),2012447  p. ( ISBN  978-2-9539187-3-1 , Online-Präsentation ) - Creative Commons Mit Lizenz
  • Yoran Brault, Entwerfen und Bereitstellen Ihrer Websites mit Drupal , Paris, Eyrolles, coll.  " Den freien Zugang ",10. September 2009404  p. ( ISBN  978-2-212-12465-1 , Online-Präsentation )
  • Angela Byron ( trans.  Aus dem Englischen), Dial mit Drupal-Modulen ["  Using Drupal  "], Paris, Pearson al.  " Der Campus ",5. August 2009485  p. ( ISBN  978-2-7440-2364-4 , Online-Präsentation )
  • Drupal by Practice (August 2009) von Fabien Crépin (digitales Buch in französischer Sprache, kostenlos).
  • Cyprien Roudet, Atelier Drupal: Zweite Ausgabe , CR Edition,Februar 2009( ISBN  978-2-9532745-1-6 , Online-Präsentation )
  • (David Mercer . Trad  English) Drupal 6: Erstellen Sie professionelle Websites ["  Drupal: Erstellen von Blogs, Foren, Portalen, Websites und Communitys  "], Paris, Pearson Education, al.  " Der Campus ",September 2008372  p. ( ISBN  978-2-7440-2284-5 , Online-Präsentation )
  • Atelier Drupal (August 2008) von Cyprien ROUDET ( selbstveröffentlichtes französisches Buch).
  • (en) Pro Drupal Development (April 2007) von John K. VanDyk und Matt Westgate. Sehr technisch, aber am detailliertesten.
  • David OLMETA und Rémi Benoit, DRUPAL: Führen Sie berufliche Entwicklungen mit PHP , Saint-Herblain, Editions ENI, Slg.  "IT-Experte", 364  S. ( ISBN  978-2-7460-5822-4 , Online-Präsentation )
  • David OLMETA, DRUPAL: Beherrschen Sie Ihre Webarchitektur , Saint-Herblain, Editions ENI, coll.  "Computerressourcen", 489  S. ( ISBN  978-2-7460-6717-2 , Online-Präsentation )
  • David OLMETA, Drupal: Erkenne , berufliche Entwicklung mit PHP ( 2 th edition) , Saint-Herblain, ENI al.  "IT-Experte", 481  S. ( ISBN  978-2-7460-7356-2 , Online-Präsentation )

Zum Thema passende Artikel

Externe Links