Direkt zum Inhalt
Ivan Vidusenko
Drupal Modul Erstellung

Mit seiner modularen Gliederung von Features erlaubt Drupal, eine Webseite nach Geschmack aus einzelnen Bausteinen zusammenzusetzen. Während Plattformen wie WordPress vor allen Dingen auf die einfache Installation und Handhabung selbst in ungeschulten Händen bauen, hatte Drupal historisch schon immer eine Stärke darin, durch Entwickler ins kleinste Detail angepasst werden zu können, oder gar um weitere Module erweitert zu werden. Diese Stärke ist es, die Drupal zu einem mächtigen Werkzeug macht, um für einzigartige Herausforderungen maßgeschneiderte Lösungen zu entwickeln.

Ein wichtiger erster Schritt bei der Fortbildung vom einfachen Sitebuilder und Pfleger von Inhalten zu einem Drupalista ist dabei die Erstellung von eigenen (sogenannten “custom”) Modulen. Während Drupal es gestattet, allein mit bestehenden Modulen und Themes von der Drupal-Community (“contributed” Module, kurz “contrib”) eine robuste Webseite aufzubauen, ist die Fähigkeit, selbst die Auswahl an Modulen zu erweitern, früher oder später unerlässlich.

Dieser Artikel setzt voraus, dass der Entwickler selbst Zugriff auf eine bestehende Drupal-Installation und deren Quellcode hat. Auf der offiziellen Webseite drupal.org und auch anderen Sites wie StackOverflow finden sich Ressourcen und Anleitungen, sein eigenes Drupal aufzusetzen. Auch ist ein rudimentäres Verständnis von PHP Voraussetzung, um sein eigenes Modul zu schreiben.

Was ist ein Modul?

Um Entwicklern zu erlauben, möglichst viele Änderungen an Drupal vornehmen zu können ohne direkt in den Quellcode des Kern-Systems (“Core”) eingreifen zu müssen - wodurch es erlaubt ist, problemlos Updates auszuführen ohne sich mit Konflikten zu beschäftigen - setzt Drupal darauf, möglichst viel des Systems in sogenannten Modulen les- und veränderbar zu gestalten. Jegliche Features und Anpassungen, die über die Core-Funktionalität hinausgehen, werden in diesen Modulen abgelegt.

 

Der Drupal Core und hinzufügbare Module

An sich ist ein Modul nichts weiteres als ein neuer Ordner unter dem Pfad “modules/”. Standardmäßig legen Entwickler in dem Unterpfad “modules/contrib” Module ab, die von der Community bereitgestellt wurden, und unter “modules/custom” die eigenen Entwicklungen für die Webseite.

Drupal-Modul erstellen: Manuell

Vor allem bei dem Einstieg in die Welt der Module empfiehlt es sich, das erste Modul völlig händisch anzulegen. Detaillierte Informationen und Anweisungen dazu finden sich auf drupal.org, jedoch stellen wir hier nochmals die Grundlagen vor.

Zunächst muss der Name des Moduls entschieden werden. Zu unterscheiden ist hier zwischen dem “Maschinennamen” (kleingeschrieben, mit Unterstrichen statt Leerzeichen, ohne Sonderzeichen) und dem Titel (für Menschen lesbar). Für unser Beispiel werden wir mit dem Namen “Example Module” (example_module) arbeiten.

Jetzt, wo wir den Namen haben, erstellen wir basierend darauf unseren Modul-Ordner: “drupal/modules/custom/example_module”.

Innerhalb des Modul-Ordners müssen Informationen in einem bestimmten Format abgelegt werden, um das System über die Existenz des Moduls zu informieren. Dazu gehören unter anderem:

  • der Titel des Moduls

  • die Versionsnummer des Moduls

  • die Versionsnummer des Drupal Cores, für welchen das Modul vorgesehen ist

  • eine Kategorisierung der Funktionen (z.B. “Medien”)

  • ein kurzer Beschreibungstext

Diese Informationen legt man in einer Datei mit dem Namen “MODULENAME.info.yml” ab. “MODULENAME” stellt dabei den Namen des anzulegenden Moduls dar in diesem Beispielfall also "example_module.info.yml".

Diese Datei ist im YAML-Format gehalten. Genaue Informationen finden sich auf dieser Seite. Was folgt ist ein Beispiel-Skelett einer info.yml-Datei:

Mit diesem Ordner und dieser Datei ist die Arbeit bereits vollbracht! Obwohl das Modul keine Funktion hat, kann man es nun in der Modulliste von Drupal auswählen und einschalten.

Drupal-Modul erstellen: DrupalConsole-Generator

Während das manuelle Anlegen eines Moduls zu Lernzwecken wichtig ist, begleitet dieser Prozess einen Entwickler durch sein gesamtes Leben mit Drupal. Jedes Mal, wenn ein neues Feature oder ein neues Thema angeschnitten werden, wird dazu meist auch ein neues Modul erstellt. Auf Dauer kann das manuelle Anlegen also recht müßig werden. Doch gerade als IT-Entwickler ist man dafür ausgestattet, manuelle Prozesse zu automatisieren und zu vereinfachen. Hier kommt DrupalConsole ins Spiel.

DrupalConsole ist neben Drush eines der zwei großen Terminal-Werkzeuge eines Drupal-Entwicklers. Während Drush der bewährte Standard ist, umständliche Navigation durch das Drupal-Backend zu vermeiden und direkt Einstellungen zu ändern oder Prozesse wie den Cache-Clear einzuleiten, ist DrupalConsole erstmal als Konkurrent und “neuer Standard” für Drupal 8 erschienen, hat sich jedoch letzten Endes stattdessen zu einer Ergänzung entwickelt, deren Funktionen einen anderen Fokus haben als die von Drush.

Es sei anzumerken, dass diese Methode für eingearbeitete Entwickler geeignet ist, die sich mit der Kommandozeile (Terminal) auskennen.

Besonders wertvoll sind bei DrupalConsole die Generatoren. Diese sind eine Reihe von Befehlen, die einem Entwickler erlauben, Schablonen von Dateien, Ordnern und Klassen anzulegen und auszufüllen, um wichtige Prozesse wie das Erstellen eigener Module, Entitäten oder Services zu beschleunigen. Da große Teile dieser Arbeit immer gleich ablaufen, und sich nur Details ändern, wird dem Entwickler durch einen simplen “Wizard”-Ablauf durch eine Reihe von Fragen die Tipparbeit abgenommen.

Nachdem man DrupalConsole installiert hat und sich im Terminal seiner Wahl im Drupal-Ordner befindet, muss man das Tool nur noch mit dem Befehl “drupal generate:module” ausführen. Nach einer kurzen Ladezeit stellt DrupalConsole dann eine Reihe von Fragen, um das Modul auszufüllen. Sind diese beantwortet, findet man im Anschluss an der ausgewählten Stelle seinen brandneuen Modul-Ordner mit allem, was man für den Einstieg braucht.

Fazit

Wer das volle Potenzial von Drupal ausschöpfen will, sollte mit eigenen Code-Entwicklungen “Hand anlegen” können, um die einzigartigen Herausforderungen seiner Webpräsenz angehen zu können. Die Erstellung eines Moduls ist dabei der wichtigste erste Schritt.

Sie arbeiten noch mit einer veralteten Drupal Version? Wir bieten Ihnen einen Upgrade Service! Erfahren Sie mehr: Drupal 9 Upgrade.