
Wir sehen uns an, wie wir Drupal mittels DDEV auf unserer lokalen Entwicklungsumgebung installieren. Hier erfahren wir, wie wir also Drupal unter den gängigen PC-Betriebssystemen wie macOS, Linux und Windows so installieren, dass das Setup unserem späteren Setup auf der Betriebsumgebung ähnelt.
Dank der guten Anleitungen von DDEV, ist es ein überschaubarer Aufwand, Drupal mittels DDEV und der WSL2 unter Windows 11 zu installieren. Damit können wir unsere Drupal Website unter Windows ähnlich komfortabel entwickeln, wie unter MacOS und Linux.
Falls ihr die WSL2 auf eurem Windows-PC noch nicht installiert habt, dann findet ihr auf YouTube eine gute Anleitung dazu. Daraufhin könnt ihr DDEV installieren. Hier ist der Link zum Video: https://www.youtube.com/watch?v=zFoJXxJwqaQ
Wichtiger Hinweis: Damit WSL2 unter Windows 11 läuft, muss die CPU Virtualisierung unterstützen.
Unter https://gitlab.com/peter.majmesku/drupal-11-kurs-udemy findest du in einem öffentlichen Git Repository den Programmcode zum Kurs. Hier stehen dir also die Konfigurationsexporte, die composer.json Datei und die erarbeiteten Codebeispiele zur Verfügung. Ebenso findest du hier den gesamten Datenbankexport als SQL-Dump.
Wir installieren die Sprachmodule und laden die Übersetzungen für die deutsche Sprache herunter. Damit ist dann unsere Seite und unser Administrationsbereich auf Deutsch.
Wir sehen uns Dokumentationsseiten auf Drupal.org an und verschaffen uns einen Überblick. Zudem grenzen wir alte Dokumentation zu Drupal 7 von aktueller Dokumentation ab. Auch erkennen wir, dass wir an der Dokumentation selbst mitarbeiten können. Wir entdecken die Dokumentationsseiten zu den Drupal Coding Standards usw.
Damit wir möglichst nicht mit aktiviertem Zwischenspeicher entwickeln, schalten wir auf unserer Entwicklungsumgebung Caches aus, setzen das Config-Verzeichnis und aktivieren das Twig-Debugging.
Hier legen wir unser eigenes Drupal Modul initial an und installieren es. Dies tun wir sowohl über die Kommandozeile mit Drush alsauch über die Browser UI im Administrationsbereich. Auch deinstallieren wir unser Modul.
Wir lernen Event Subscriber kennen, verstehen wie wir auf Events in Drupal reagieren können und implementieren einen eigenen Event Subscriber in unser Modul.
Wir schauen uns das Hooksystem in Drupal an und nutzen es, indem wir mittels Hook in unserem eigenen Modul auf die Benutzeranmeldung reagieren.
Seit Drupal 11.1 können Hooks in Drupal auf objektorientiertem Wege implementiert werden. Wir schauen uns dazu die Beschreibung mittels Change Record auf Drupal.org an. Daraufhin schreiben wir beispielhaft eine Klasse, welche die neue Variante der Hooks nutzt.
Damit wird nicht immer den Kontext zwischen unserer "MODULNAME.services.yml" Datei und unserer PHP-Datei, in welcher wir unser Programm entwickeln, hin- und her wechseln müssen, machen wir uns das Services Autowiring in Drupal zunutze. Hierzu nutzen wir die Symfony Component für das Services Autowiring. Zudem erkennen wir, dass wir einen Alias für die Klasse in unserer "MODULNAME.services.yml" Datei schreiben müssen, um einen Service mit Hilfe des Autowire-Attributs in unsere Klassen zu injecten.
Wir erstellen eine Route für unseren REST-API Endpunkt. Dieser wird eine JSON-Response zurückgeben und verschiedene Merkmale bezgl. des Cachings besitzen.
Wir lernen die Coding Standards von Drupal kennen und beheben Abweichungen vom Coding Standard automatisch mit PHPCS. Drupal Coding Standards: https://www.drupal.org/docs/develop/standards/php/php-coding-standards
Wir schauen uns an, wie automatische Tests in Drupal angelegt sind und wo wir Dokumentationen finden. Beispielhaft führen wir Tests aus einem Contrib-Modul aus. Eine Muster-Konfigurationsdatei für PHPUnit (phpunit.xml.dist) findet ihr im Programmcode des Projektes zu diesem Kurs.
Als Grundlage für unser Frontend legen wir ein Drupal Custom Theme an. Dieses wird auf einem Contrib Theme basieren, welches uns eine gute Grundlage bietet. Wir installieren das Theme und sprechen über Stolpersteine, die uns beim Anlegen des eigenen Themes begegnen können.
Wir sehen uns die verfügbaren Einstellungen an, die uns das Bootstrap5 Basistheme anbietet. Zudem schauen wir uns anhand der Dokumentation auf Drupal.org an, wie wir eigene Theme Settings anlegen können.
Nach der Installation unseres Themes werden in der Datenbank verschiedene Konfigurationen angelegt. Diese können wir einfach ins Dateisystem exportieren und per Git versionieren. Das hilft uns sehr, wenn wir die Konfiguration später auf ein Zielsystem deployen wollen. Z.B. auf unsere Live-Website oder ein Staging-System für Tests.
Wir lernen die Datei kennen, wo die Verarbeitung der Variablen des Themes stattfindet. Hier erkennen wir, dass dies eine einfache PHP-Datei mit Funktionen ist.
Wir zeigen mittels eigener Template Datei und eigener Template Variable ein Bild im Frontend an. So lernen wir das Überschreiben von Template Dateien aus dem Basis Theme und die Theme Hooks näher kennen.
Umfangreiche Drupal Frontends werden oft Komponenten basiert umgesetzt. In Drupal gibt es hierzu Single Directory Components, die ihr mit dem Storybook Komponenten Katalog verbinden könnt. Ich gebe euch hier einen Einblick und zeige euch, wo ihr dazu eine Anleitung und Dokumentation findet.
Wir installieren exemplarisch ein Drupal Modul und verschaffen uns auf der Modulseiten einen Überblick.
Wir installieren das moderne Gin Theme, um in unserem Administratonsbereich einen modernen und möglichst barrierefreien Look zu erzielen. Wir sehen hier die vielfältigen Einstellmöglichkeiten, die uns der Administrationsbereich von Drupal bietet und wie wir diese auf das Gin Theme anwenden können.
In Drupal können wir einzelne Inhaltsblöcke mittels der Funktionalität vom Blocklayout darstellen. Wir legen einen eigenen Block an und legen dafür die Anzeigeeinstellungen fest.
Wir lernen wir wir Strukturen für Inhalte in Drupal anlegen können. Inhaltstypen sind oft die zentralen Strukturen in Drupal, welche die Bestandteile unserer Inhalte auf Feldebene beschreiben.
Wir konfigurieren ein Testmenü mit den Bordmitteln vom Drupal Core. Die Konfiguration von Menüs wird vorgestellt und das exemplarisch ein Menü im Frontend der Website platziert.
Hier wird die Funktionalität der Core Menüs erweitert. Das Menu Item Extras Modul erlaubt es uns, Menüelemente mit Feldern auszustatten. So können wir z.B. Menüelemente mit Bildern ausstatten.
Wir schauen uns an, was wir mit der No-Code Lösung als Sitebuilder über die Installation meines Drupal Recipes erreichen können: https://www.drupal.org/project/quiz_questions_by_eca_and_ai
Hier wird über ein Beispiel deutlich, dass wir ein umfangreiches Setup für eine AI Content Generation Plattform in wenigen Minuten, statt vieler Stunden, installieren und nutzen können. Basieren wird das auf der KI-Engine der bekannten OpenAI-Platform. Der aktuell leistungsfähigsten KI.
Wir verschaffen uns einen Überblick über die einzelnen Drupal Module, welche Bestandteil unserer Lösung sein werden.
Hier werden wir nun mittels der Kommandozeile das notwendige No-Code Setup umsetzen. Es sind keine Programmierarbeiten notwendig. Es geht rein um das befolgen einzelner Kommandozeilenbefehle, was wirklich sehr einfach ist.
Hier sehen wir uns das ECA-Model im Detail an und begreifen den Ablauf der AI-Content-Generation-Pipeline.
Falls wir einmal unseren OpenAI Platform Key ändern wollen, können wir dies hiermit erreichen.
Drupal ist ein weltweit verbreitetes Content-Management-System mit einer großen Community. Es überzeugt durch seine vielfältigen Möglichkeiten zur Erweiterung, Konfiguration und Skalierung. Zugleich ist Drupal ein komplexes System und bietet zahlreiche Wege, um unterschiedliche Ziele zu erreichen. In diesem Guide stelle ich dir anhand meiner Erfahrungen praxisnahe Lösungen vor: Von bewährten Komponenten für die Entwicklung eigener Drupal-Module über die Konfiguration deiner Website im Bereich Sitebuilding bis hin zur Anpassung des Frontends.
Drupal gehört zu den bekanntesten Open-Source-Content-Management-Systemen und wird weltweit von Millionen Nutzerinnen und Nutzern eingesetzt. Die Software eignet sich für kleine Blogs ebenso wie für große Unternehmensportale, Universitäten, NGOs und Regierungsorganisationen. Die Community ist lebendig und entwickelt das System stetig weiter – neue Funktionen, Module und Designs werden laufend bereitgestellt.
Die Architektur von Drupal ist so gestaltet, dass sich viele Anforderungen flexibel umsetzen lassen. Ob individuelle Workflows, Mehrsprachigkeit, Benutzerrechte oder individuelle Inhaltstypen – all diese Features sind mit Bordmitteln oder passenden Erweiterungen möglich. Gerade die Erweiterbarkeit und Anpassungsfähigkeit machen Drupal zur beliebten Wahl bei komplexen Webprojekten.
Mit meinen Videos begleite ich dich etwa beim Setup deiner Entwicklungsumgebung, zeige dir, wir du die deutsche Sprache installierst und wo du den Quellcode zum Kurs laden kannst. Auch wirst du verstehen lernen, wann Drupal das richtige Tool ist und wann du vielleicht besser eine andere Lösung für dein Projekt verwendest. Wir werden uns modernen Drupal Programmcode ansehen und damit ein eigenes Modul entwickeln. Wir werden auch den Grundstein für dein individuelles Drupal Theme legen.