Drupal als Framework für Webanwendungen

Thomas Sillmann
Thomas Sillmann

Thomas Sillmann arbeitet als Software-Entwickler bei der Bright Solutions GmbH in Darmstadt. Die Full-Service-Agentur hat sich auf die Entwicklung von Webanwendungen mit Drupal und mobile Apps spezialisiert. Mit ERPAL arbeitet das Unternehmen zudem an einer eigenen Open-Source Drupal-Distribution, die Funktionen für Projektmanagement, Rechnungsstellung, Mitarbeiterverwaltung, Dokumentenmanagement und CRM unter einer Oberfläche als Agentursoftware und ERP-System für Dienstleister zusammenfasst.

Mehr von diesem AutorArtikel als PDF laden

Drupal gehört zu den erfolgreichsten Content-Management-Systemen weltweit. Es ist ein flexibles CMS, das sich bequem für die verschiedensten Bereiche einrichten lässt. So kommt es sowohl für Communities als auch für große Themenseiten und komplexe Webanwendungen zum Einsatz. Der Beitrag von Thomas Sillmann stellt Drupal grundlegend vor und zeigt die Möglichkeiten, die dieses CMS bietet.

Joomla!, WordPress, TYPO3 ... es gibt viele Content-Management-Systeme auf Open-Source-Basis und sie alle bringen ihre individuellen Stärken und Schwächen mit. Auch die vorgesehenen Einsatzgebiete gehen mitunter weit auseinander. Während WordPress beispielsweise auf kleinere Webauftritte und vor allen Dingen Blogs spezialisiert ist, richtet sich TYPO3 vorrangig an große und Content-lastige, redaktionell gepflegte Webportale.

Neben diesen bekannten Schwergewichten gewinnt auch ein anderes CMS immer weiter an Bedeutung. Seit 2001 als Open Source verfügbar, hat sich um das Content-Management-System Drupal inzwischen eine beachtliche internationale Community aufgebaut. Und nicht nur das: Immer mehr und vor allem auch immer größere Webportale setzen auf Drupal als Basis für ihren Webauftritt. Prominentestes Beispiel ist sicherlich die Website des Weißen Hauses, die auf Drupal basiert (www.whitehouse.gov). Eine Liste verschiedener Seiten, die auf Drupal fußen, findet sich unter buytaert.net/tag/drupal-sites.

Faszination Drupal

Doch was macht Drupal so besonders? Worin bestehen der Reiz und die Vorteile gegenüber anderen CMS? Vorangestellt sei hier, dass Drupal selbst mehr ist als ein CMS. Es stellt vielmehr ein Framework zur Erstellung der unterschiedlichsten Webanwendungen dar und liefert alle Techniken, die zur Entwicklung und Erweiterung eigener Anwendungen benötigt werden. Natürlich ist auch Drupal keine eierlegende Wollmilchsau und macht andere Systeme nicht überflüssig. Es bietet aber einige Eigenschaften, die einem als Website- oder Portalbetreiber das Leben deutlich erleichtern können.

Vorzustellen ist hierbei das Modul „Views“, welches auf Platz 1 der meistgenutzten Module liegt und in fast 70 % aller Drupal-Installationen eingesetzt wird. Views ermöglicht Nicht-Entwicklern, Tabellenansichten, Blöcke, Kalender, Fotogalerien und weitere Elemente einer Webseite allein über die Weboberfläche zu erstellen und zu konfigurieren. Dabei bietet es auch Entwicklern erweiterte Funktionen, wie z. B. Caching-Einstellungen. Die Bedeutung von Views spiegelt sich auch im Verlauf der Drupal-Weiterentwicklung wider, da Views in Drupal 8 als eines der neuen Core-Module integriert wird.

Darüber hinaus wartet Drupal auch mit den typischen Funktionen auf, die man mitunter ebenso von anderen Content-Management-Systemen kennt. So bietet Drupal ein rollenbasiertes Rechtesystem, ist multisitefähig und bietet eine eingebaute Volltextsuche sowie das Erstellen von Clean-URLs und Permalinks. Ebenfalls bietet sich Drupal – dank der Unterstützung von REST-Schnittstellen – sehr gut als Framework für Backends von Mobile Apps an.

Zur Verbesserung der Performance hält Drupal verschiedene Funktionen und Mechanismen bereit. So gibt es Einstellungsmöglichkeiten zum Cachen der Datenbank, außerdem werden verschiedene Techniken zum Umwandeln von PHP-Code in Bytecode unterstützt (APC und eAccelerator). Und sollten die bereits in Drupal integrierten Einstellungsmöglichkeiten zur Performance-Verbesserung nicht ausreichen, stehen noch verschiedene zusätzliche Performance-Module zur Verfügung, mit denen die Leistung des eigenen Websystems gesteigert werden kann.

Des Weiteren darf auch nicht unerwähnt bleiben, dass Drupal über ein eigenes Security-Team verfügt, das sich in regelmäßigen Abständen darum kümmert, Patches und Sicherheitsupdates für Drupal zu veröffentlichen. Das betont nicht nur die Professionalität, mit der das Drupal-Team sich um sein CMS kümmert, sondern auch, dass sich Websitebetreiber darauf verlassen können, regelmäßig mit entsprechenden Sicherheitsupdates versorgt zu werden und damit mit einem zuverlässigen und stabilen System zu arbeiten.

Erweiterbarkeit und Flexibilität

Generell sind Module ein essenzieller Bestandteil von Drupal. Drupal selbst besteht aus einem Grundsystem – dem Core –, welches durch verschiedene Module erweitert werden kann. Dadurch ist es möglich, der eigentlichen Drupal-Installation neue Funktionen hinzuzufügen. Dieses Prinzip macht Drupal sehr flexibel und lässt es verschiedenste Aufgaben meistern, egal ob es um Funktionen für einen Blog, eine Firmen-Website oder ein Shop-System geht. Auf drupal.org sind über 23.000 Module gelistet (Stand: August 2013), die zum Download bereitstehen und individuelle Funktionen nachrüsten; ein Forum oder ein Gästebuch sind dadurch schnell eingerichtet.

Diese Erweiterbarkeit und die damit einhergehende Flexibilität ist eine der großen Stärken von Drupal. Ohne eine aktive und begeisterte Community wäre ein derartiger Umfang an Modulen kaum möglich gewesen. Die Community ist es, der Drupal einen großen Teil seines Erfolges zu verdanken hat. Allein auf drupal.org sind über 900.000 Mitglieder registriert, über 28.000 davon sind Entwickler (Stand: August 2013).

Zum Erstellen eigener Module und Themes für Drupal steht eine umfangreiche API zur Verfügung (api.drupal.org). Entwickler haben damit die Möglichkeit, die individuellen Anforderungen, die an ein Webportal gestellt werden, umzusetzen. Und nicht nur das: Die Website simplytest.me ermöglicht das schnelle und bequeme Testen von Modulen und sogar ganzer Drupal-Distributionen.

Doch viele Webanwendungen müssen gar nicht explizit programmiert werden. Dank der Flexibilität von Drupal ist es möglich, viele Konfigurationen direkt über die Oberfläche für die individuellen Wünsche vorzunehmen. Mit Modulen wie „Views“, „Rules“ und „Panels“ kann eigene Logik direkt über die Oberfläche konfiguriert, ein eigenes Layout erstellt oder eine Liste aus den Daten in der Datenbank erzeugt werden. Das Datenmodell inklusive Felder und Feldtypen lässt sich direkt über die Oberfläche konfigurieren. Auch die Anzeige der entsprechenden Datensätze (Entities) kann über sogenannte „Display Modes“ je nach Kontext individuell über die Oberfläche angepasst werden. Somit sind auch Site-Builder ohne PHP-Kenntnisse in der Lage, komplette Webauftritte per Konfiguration ohne eine Zeile PHP-Code zu erstellen.

Große Vielfalt

Wie wichtig die Community für Drupal ist, erschließt sich im Übrigen sogar direkt auf der offiziellen Website des Projekts: „Come for the software, stay for the community“, heißt es dort auf der Startseite. Aus dieser aktiven Community heraus haben sich auch viele weitere Distributionen entwickelt, die auf Drupal aufbauen. Der Sinn dahinter erscheint einleuchtend: Das Grundsystem Drupal wird um spezielle Funktionen erweitert und dieses angepasste System dann wiederum als eigenständige separate Distribution angeboten. Wer zum Beispiel ein System zur Abbildung eines Webshops einrichten möchte, muss nun nicht erst Drupal herunterladen und installieren und anschließend passende Module suchen und einrichten. Stattdessen besteht die Möglichkeit, direkt eine angepasste Webshop-Distribution auf Basis von Drupal herunterzuladen und zu installieren; der größte Teil des Konfigurationsaufwands wird damit hinfällig und die Flexibilität von Drupal bleibt für weitere Anpassungen erhalten.

Es gibt viele bekannte Distributionen, die den spezifischen Einstieg in Drupal erleichtern. „Commerce Kickstart“ ist beispielsweise eine bekannte Distribution zur Umsetzung eines Webshops. „Acquia Drupal“ enthält direkt einige nützliche Module (wie einen umfangreicheren Text-Editor) und richtet sich damit primär an Einsteiger. „Open Publish“ liefert alles Nötige, um Nachrichten zu erstellen, ansprechend zu präsentieren und zu verwalten. Funktionen zur Projekt- und Mitarbeiterverwaltung sowie zur Ressourcenplanung und zum Dokumentenmanagement liefert die Drupal-Distribution „ERPAL“. Die Harvard Universität hat ihre eigene Drupal-Distribution „OpenScholar“ entwickelt, die dort intern eingesetzt wird.

Auf drupal.org sind über 600 Drupal-Distributionen gelistet (Stand: August 2013). Diese Fülle zeigt deutlich, wie aktiv die Community hinter Drupal ist, und erklärt auch, warum sich Drupal inzwischen nicht hinter anderen großen CMS wie Joomla! oder WordPress zu verstecken braucht.

Schattenseiten

So schön die Unterstützung der Community und die Modul- und Distributions-Vielfalt für Drupal auch sind, so gibt es doch auch einen deutlichen Nachteil. Beim Erscheinen einer neuen Hauptversion von Drupal kann es mitunter vorkommen, dass bestehende Module nicht mehr mit der neuen Drupal-Version kompatibel sind und erst umprogrammiert werden müssen. Nicht nur, dass hier die Entwickler gefragt sind, ihre Module nachzurüsten, es bedeutet auch, dass einige Module nicht sofort für die aktuellste Drupal-Version zur Verfügung stehen. Was bleibt, ist entweder, diesen Umstand in Kauf zu nehmen und einige Module für die neueste Drupal-Version nicht zu nutzen oder eine Zeit lang zu warten, ehe man Drupal auf die neuste Systemversion hieven kann.

Ebenfalls sollte man darauf achten, wirklich nur die Module zu installieren, die man tatsächlich benötigt. Ein mit unzähligen Modulen konfiguriertes Drupal benötigt entsprechend Server-Ressourcen und kann mitunter sehr langsam werden. Hier ist es wichtig, nicht einfach alles zu installieren, was irgendwie sinnvoll erscheint, da ansonsten die Performance des eigenen Webauftritts maßgeblich darunter leiden kann.

Die enorme Flexibilität in Drupal erkauft man sich mit einer Steigerung der Komplexität. Nachdem der Einstieg meist sehr schnell erfolgt und erste vorzeigbare Ergebnisse liefert, ist die Lernkurve hin zu den „Best Practices“ sehr steil. Themen wir das Deployment im Team bei größeren Projekten, die Architektur der gesamten Seitenfunktionalität oder auch die Auswahl und Konfiguration der passenden Module für den gewünschten Zweck bedürfen einiger Erfahrung. Durch das baukastenartige Modulsystem benötigt man häufig mehrere Module, die dann miteinander konfiguriert den gewünschten Funktionsumfang liefern. Auch hier ist eine gehörige Portion an Erfahrung nötig.

Webanwendungen und Content-Management mit Drupal

Drupal bietet dank seiner Erweiterbarkeit, Hunderter verfügbarer Distributionen und der aktiven Community mannigfaltige Möglichkeiten zur Erstellung, Wartung und zum Ausbau des eigenen Webauftritts. Drupal ist ein sicheres und stabiles System, das stetig weiterentwickelt wird; Version 8 steht bereits in den Startlöchern und verspricht viele Neuerungen und Verbesserungen.

Wer bisher noch keine Erfahrungen mit Drupal gesammelt hat, sollte dem CMS einmal eine Chance geben und es sich näher ansehen. Auch wenn es für einfache Blogs oder Ein-Personen-Websites überdimensioniert sein mag, so spielt es spätestens bei relativ komplexen Webauftritten mit unterschiedlichen Funktionen und Erweiterungen seine vollen Stärken aus.