Templates, Module, Themes

Drupal - Websites aus Bausteinen

29.10.2014 von Redaktion pcmagazin

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.

ca. 5:35 Min
Business-it
VG Wort Pixel
CMS
CMS
© Archiv

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.

Distribution Open Atrium
Die Distribution Open Atrium ist eine Groupware, die auf Standard-Drupal- Modulen basiert. Jede Benutzergruppe erhält einen geschlossenen Bereich mit eigenem Blog, Kalender und Aufgabenverwaltung.
© Archiv

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.

Query-Generator Views
Die Kombination aus frei konfigurierbaren Inhaltstypen und dem Query- Generator Views macht Drupal sehr flexibel. DBAnwendungen sind ähnlich simpel wie MS Access.
© Archiv

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.

Weiter zur Startseite  

Mehr zum Thema

Mit Outlook 2010 haben Sie alle Kontakte übersichtlich im Blick.

Import, Export, Freigabe & Co.

Outlook 2010: Kontakte richtig organisieren - 10 Tipps

Mit uns bekommen Sie Outlook 2010 in den Griff. Lesen Sie alles über Kontakte und das Management von Visitenkarten und mehr.

ELV Time Master Small Business: Screenshot und Produktfoto

Zeiterfassungs-Software

ELV Time Master Small Business im Test

Lohn wird in der Regel nach geleisteter Arbeitszeit abgerechnet. Eine unkomplizierte Zeiterfassung ist ELV Time Master Small Business. Wir haben den…

Powerpoint-Präsentation

Anleitung

9 Tipps für die perfekte Powerpoint-Präsentation

Für eine gute Powerpoint-Präsentation gilt es einiges zu beachten - vom Design über Gliederung bis hin zu Vorlagen. Wir erklären die Grundlagen.

Screenshot: Lexware Financial Office 2015

Kaufmännisches Komplettpaket

Lexware Financial Office 2015 im Test

Wir haben Lexware Financial Office 2015 im Test: Im Kerngeschäft überzeugt die kaufmännische Software mit durchdachten Prozessen.

Lexware Warenwirtschaft Premium 2015 - Packshot

Mobiler Postschalter

Lexware Warenwirtschaft Premium 2015 im Test

Bei Warenwirtschaft Premium 2015 arbeitet Lexware weiter fleißig daran, klassische Systembrüche zu beseitigen. Wir haben den Test.