Templates, Module, Themes
Drupal - Websites aus Bausteinen
Ob komplexe Websites, Online-Communitys, Shop-Systeme oder Unternehmenslösungen - mit Drupal bekommen Sie recht komplexe Web-Anwendungen und Informationssysteme allein durch die Konfiguration vorgefertigter Module, ohne dafür eine Zeile Code zu schreiben.

Anfang März zählte die Drupal Association mehr als eine Million Websites, hinter deren Kulissen das Content-Management-Framework Drupal arbeitet. Drupal läuft auf 12 Prozent der 100.000 weltweit meistbesuchten Websites (Quelle: https://bit.ly/MPymmB). Neben Wordpress und Joomla zählt Drupal zu den prominentesten Web-Systemen auf PHP-Basis.
In deutschsprachigen Ländern fristet das System allerdings ein Mauerblümchendasein. International spielt dagegen das hierzulande sehr erfolgreiche CMS Typo3 kaum eine Rolle. Drupal ist der Motor vieler großer Websites, darunter etwa die Seiten der New Yorker Börse, des Weißen Haus, von bunte.de oder deutschland.de. Deutsche Referenzseiten zeigt www.drupal.de/referenzen. Wir möchten, aus der Vogelperspektive, einen Blick auf die Architektur und die Entwickler-Philosophie werfen.
Mit Drupal bauen Sie Website-Lego
Wer den Drupal-Core zum ersten Mal auf einem Webserver installiert, wird möglicherweise etwas enttäuscht sein. Ohne Zusatzmodule kommt das System doch sehr nüchtern und einfach daher. Nicht einmal einen WYSIWYG-Editor hat der derzeit aktuelle Drupal-7-Core an Bord.
Als Content Management Framework ist Drupal kein fertiges Produkt. Drupal ist ein Baukasten-System, mit dem Administratoren und Entwickler CM-Systeme erstellen und auf die individuellen Anforderungen ihrer Anwender zuschneiden.
Drupal ist auch ein mächtiges PHP-Framework. Und nicht zuletzt definiert sich Drupal als Community seiner Entwickler und Anwender. Mit mehreren 10000 aktiven Helfern und einer Million registrierter User auf drupal.org ist Drupal eines der derzeit größten Open-Source-Projekte.
Der Drupal Core liefert die Grundbausteine, Basis-Module und PHP-Bibliotheken. Auf der offiziellen Projekt-Website drupal.org sind derzeit mehr als 20000 Zusatz-Module (Contrib modules) verzeichnet, die den Kern um ein Universum von Funktionen erweitern.
"There's a module for that" ist ein geflügeltes Wort, das Drupal-Einsteiger oft von erfahrenen Kollegen hören. Selbst für ein durchschnittlich komplexes Drupal-System installieren IT-Profis oft mehr als 50 Contrib-Module. Die Flexibilität hat aber auch ihren Preis: Wer mit einem nackten Drupal Core beginnt, muss für typische Webprojekte relativ viel Konfigurationsarbeit leisten.
Diese Lücke schließen fertige Drupal-Distributionen, die auf bestimmte Anwendungsfälle zugeschnitten sind. Eine Drupal-Distribution bündelt, ganz ähnlich wie bei Linux, Module und Konfigurationen zu einem leicht installierbaren System.
Keine hierarchische Struktur in Drupal 7
Drupal kennt weder eine separate Verwaltungsoberfläche für Redakteure, noch einen starren Menübaum, in dem Benutzer Seiten hierarchisch einsortierten müssen. Anwender, die ein Drupal-System befüllen, werden ein kompliziertes Backend aber kaum vermissen, sie navigieren auf der Seite über die vorhandenen Menüs und klicken an Ort und Stelle auf Bearbeiten.

Moderne Websites lassen sich selten in eine hierarchische Seiten- und Menüstruktur pressen. Bei der Planung eines Drupal-Systems stehen daher zunächst die Datenstrukturen der Inhalte im Mittelpunkt, die man veröffentlichen möchte. Der Core liefert die Beispiel-Inhaltstypen-Artikel und einfache Seiten.
Eigene Typen lassen sich leicht per Konfiguration erstellen und mit eigenen Feldern erweitern. Ein einfaches Beispiel: Wer seine Website um einen Kalender ergänzen möchte, könnte einen Inhaltstyp Veranstaltung erstellen und diesem mehrere Felder hinzufügen: Titel, Datum, Ort, Beschreibung und ein Titelbild. Drupal generiert die Eingabeformulare für neue Inhalte automatisch. Für Datum erscheint etwa ein Kalender-Widget, für Bilder eine Upload-Funktion.
Auch die Ausgabe eines Feld-Inhaltes lässt sich flexibel konfigurieren. Datenbanktabellen bekommt man dabei normalerweise nicht zu sehen: Drupal legt die Daten seiner Inhalte und Felder in einem eigenen Schema ab. Inhaltskategorisierung, die sogenannten Taxonomien, sind in Drupal eingebaut.
Themes bauen in Drupal aufeinander auf
Das Theme bestimmt schließlich, in welchem HTML- und CSS-Gewand die Drupal-Site im Browser erscheint. Themes lassen sich wie Module installieren und umschalten. Ein Drupal-Theme besteht aus Template-Dateien, die das HTML-Gerüst vorgeben, CSS- und JavaScript sowie PHP-Funktionen, welche die Ausgabe der Drupal-Elemente überschreiben können.
Eine Besonderheit der Drupal-Themes: Sie können auch aufeinander aufbauen. So existieren viele Base- Themes, die es ersparen, ein komplettes Theme von Grund auf zu entwickeln. Das eigene Theme enthält dann nur Änderungen und Erweiterungen, die vom
Basis-Theme abweichen. Das beliebte Basis-Theme Omega bietet Site-Buildern viele Konfigurationsoptionen, die eigenen CSS-Code ersparen. Andere Basis-Themes implementieren das sehr populäre CSSFramework Bootstrap.

Die Template-Dateien eines Theme strukturieren das Seitenlayout in Regionen, in denen Anwender sogenannte Blöcke (Blocks) platzieren. So sind etwa Kopf- und Fußbereich sowie Sidebars als Regionen definiert. Inhalts-Blöcke können von Modulen bereitgestellt werden, man kann sie aber auch selbst mit dem Views-Modul generieren. Im Kalender-Beispiel könnte man mithilfe einer View die Veranstaltungen eines Tages als Block ausgeben. Diesen Block weist der IT-Profi anschließend einer Sidebar zu, damit sie neben dem aktuellen Artikel erscheint. Wer noch flexiblere Layouts braucht, sollte einen Blick auf das Modul Panels werfen. Mit dem Panels In-Place-Editor lassen sich Seiten vollständig per Drag & Drop konfigurieren.
Die Abstraktionsschicht bringt Synergieeffekte
Seit Version 7 kennt Drupal eine zusätzliche Abstraktionsschicht: Die Entities dienen als Basis für fast alle weiteren Drupal-Objekte, neben Inhaltstypen auch für User, Taxonomie-Begriffe, Kommentare und vieles mehr. Das bringt viele Synergieeffekte: Entities haben einheitliche Schnittstellen und Verwaltungsoberflächen, alle Dinge lassen sich nun flexibel mit Feldern ausstatten. Mittels Views kann der Benutzer jede Entity im System filtern und ausgeben.
Viele Module setzen auf das Entity-Konzept, hier ein paar prominente Beispiele: Media erweitert Drupal um eine flexible Datenbank für Bilder und andere Medien und legt sie als File-Entity ab. Drupal führt für jede hochgeladene Datei Buch darüber, mit welchen Inhalten sie verknüpft ist. Mit den Modulen der Search API-Familie lassen sich einfach mächtige Suchfunktionen umsetzen. Search API kann Drupal sogar mit Such-Systemen wie Apache Solr verknüpfen, eine Suchmaschine, die parallel auf einem eigenen Server installiert wird. Dann genügt es, in Search API zu konfigurieren, welche beliebigen Entities und Felder Drupal an den Suchdienst zum Indexieren weiterreichen soll. Das Module Commerce liefert Entity-Bausteine für ein frei konfigurierbares Shop-System. Mit Drupal Commerce können Entwickler individuelle Shops umsetzen. Beispielsweise mit konfigurierbaren Produkten, Restpostenverwaltung oder einer Einbindung in Drupals Community-Funktionen.
Mithilfe des Moduls Rules können Benutzer Regeln und Programmlogik direkt über die Oberfläche erstellen und ausführen. Rules können auf Systemereignisse reagieren, etwa E-Mails versenden, Entities erstellen und vieles mehr. Damit lassen sich etwa Workflow-Systeme erstellen, deren Logik sich jederzeit konfigurieren lässt.
Fazit: Wer die Einarbeitungszeit nicht scheut, bekommt ein flexibles System
Wer den Schritt ins Drupal-Universum wagt, sollte einige Einarbeitungszeit einplanen. Ein fitter Drupal-Entwickler kennt etwa 200 der wichtigen Module und weiß, auf welchen Wegen er nachhaltig zum Ziel kommt. Einfach heruntergeladene Module zu hacken, also ihren Code direkt zu ändern, ist in der Drupal-Community äußerst verpönt. Es gibt immer einen Weg, Module über die vorgesehenen Schnittstellen zu erweitern.
Noch besser: Man gibt seine Verbesserung gleich als Patch an das Projekt zurück. Das ist einfacher, als es klingt. Wer sich an die Best Practices hält, wird mit einem wartbaren und Update-fähigen Drupal-System belohnt, mit dem auch der nächste Entwickler gern weiterarbeitet.
Gutscheine
-
HelloFresh
Bis zu 120€ + GRATIS Versand der 1. Box mit den HelloFresh Rabattcodes Zum Gutschein
bis 31.01.2024+ bis zu 4,00€ Cashback -
Cyberport
25€ EXTRA Cyberport Gutschein im Technik-Sale Zum Gutschein
bis 27.09.2023+ bis zu 0,5% Cashback -
C&A Gutscheine und Angebote
C&A Gutschein: 10% extra Rabatt auf alle Oberteile Zum Gutschein
bis 27.09.2023+ bis zu 3,5% Cashback -
Calzedonia
20% Calzedonia Rabattcode erhalten Zum Gutschein
bis 31.12.2037+ bis zu 4,0% Cashback -
EDEKA smart
EDEKA smart Gutschein: GRATIS Artikel exklusiv als Kunde Zum Gutschein
bis 31.12.2037+ bis zu 13,00€ Cashback(statt11,00€) -
Geero
EXKLUSIVER Gutschein: 6% auf alle Geero2 E Bike Modelle Zum Gutschein
bis 27.09.2023