Zum Inhalt springen

Aufgabe 01 - Erweiterungspunkte finden

Zu Zen-Modus wechseln

Sie untersuchen ein installiertes Content Management System auf seine Erweiterungspunkte und entscheiden für konkrete Anforderungen, an welcher Stelle und auf welcher Stufe man eingreift (siehe Kapitel CMS und Backend-Systeme erweitern). Nicht das Programmieren steht im Mittelpunkt, sondern die Entscheidung davor - die im Berufsleben teurer ist als der Code, der ihr folgt.

  • Kapitel CMS und Backend-Systeme erweitern, vollständig.
  • Ein installiertes CMS in der eigenen Umgebung (Stand aus der 4. Klasse) mit Zugriff auf das Dateisystem.
  • Sie ordnen eine Anforderung dem passenden Erweiterungspunkt zu.
  • Sie wählen zwischen Konfigurieren, Erweitern, Überschreiben und Forken und begründen die Wahl mit dem Wartungsaufwand.
  • Sie beurteilen, ob eine bestehende Erweiterung update-sicher gebaut ist.
  • Reproduktion: Erweiterungspunkte des Systems benennen und im Dateisystem auffinden (Teil A).
  • Reorganisation und Transfer: Anforderungen den Erweiterungspunkten zuordnen und die Stufe bestimmen (Teil B).
  • Reflexion, Problemlösung und Urteilsbildung: fremden Code auf Update-Sicherheit prüfen und die Entscheidung begründen (Teile C und D).

Die Übung ist auf etwa zwei Stunden ausgelegt. Teil D ist der Expertenteil.

  1. Erstellen Sie eine Übersicht Ihres CMS: Version, Verzeichnis des Kerns, Verzeichnis der Erweiterungen, Verzeichnis der Themes/Templates, Ort der Konfiguration.
  2. Listen Sie die installierten Erweiterungen mit Version und Zweck auf. Markieren Sie, welche davon aktuell tatsächlich gebraucht werden.
  3. Finden Sie in der Dokumentation Ihres Systems für jeden der vier Erweiterungspunkte (Inhaltsmodell, Hooks/Events, Templates, Schnittstellen) die zuständige Stelle und notieren Sie den Link.
  4. Ermitteln Sie, welche Dateien des Kerns bei einem Update ersetzt werden. Prüfen Sie mit einem Vergleich gegen eine unveränderte Kopie der gleichen Version, ob in Ihrer Installation Kern-Dateien verändert wurden.

Ordnen Sie jede der folgenden Anforderungen einem Erweiterungspunkt zu, bestimmen Sie die niedrigste ausreichende Stufe (konfigurieren / erweitern / überschreiben / forken) und begründen Sie beides in je zwei Sätzen:

  1. Auf der Startseite sollen die drei neuesten Projekte statt der neuesten Beiträge erscheinen.
  2. Jeder Beitrag braucht ein Feld „Auftraggeber”, das in der Übersicht filterbar ist.
  3. Beim Veröffentlichen eines Beitrags soll eine Nachricht an einen Chat-Kanal gehen.
  4. Ein Formular soll Eingaben zusätzlich gegen eine eigene Regel prüfen (Projektnummer im Format P-2026-001).
  5. Eine mobile App soll die Projektliste als JSON abrufen können.
  6. Autorinnen und Autoren dürfen Beiträge einreichen, aber nicht veröffentlichen.
  7. Die Schriftgröße der Überschriften im gekauften Theme ist zu klein.
  1. Finden Sie in Ihrem CMS einen Filter und eine Aktion und beschreiben Sie beide: Wann werden sie aufgerufen, was bekommen sie, was erwartet das System zurück?
  2. Hängen Sie sich mit einer minimalen eigenen Erweiterung (eigenes Verzeichnis, Metadaten, Präfix) an eine Aktion beim Speichern von Inhalten und schreiben Sie einen Eintrag ins Log. Belegen Sie das Ergebnis mit dem Logauszug.
  3. Bauen Sie absichtlich den typischen Filter-Fehler ein: etwas tun, aber nichts zurückgeben. Beschreiben Sie, was passiert und warum es keine Fehlermeldung gibt.
  4. Beantworten Sie in drei Sätzen: Warum gehört eine Bildkonvertierung nicht in eine Aktion, die beim Speichern läuft, und wohin dann?

Teil D - Expertenteil: Update-Sicherheit beurteilen

Abschnitt betitelt „Teil D - Expertenteil: Update-Sicherheit beurteilen“
  1. Wählen Sie eine installierte Erweiterung eines Drittanbieters aus, die im Quellcode vorliegt.
  2. Prüfen Sie sie anhand von fünf Kriterien und belegen Sie jedes mit einer Codestelle: eigene Präfixe, keine Änderungen am Kern, Ausgaben maskiert, Berechtigungsprüfung serverseitig, Aufräumen bei Deinstallation.
  3. Ermitteln Sie Lizenz und Herkunft der Erweiterung. Beantworten Sie: Dürften Sie sie ändern und die geänderte Fassung weitergeben? Woran erkennen Sie das?
  4. Verfassen Sie ein Kurzgutachten von etwa 15 Zeilen: Würden Sie diese Erweiterung in einem Kundenprojekt einsetzen? Falls ja, unter welchen Bedingungen; falls nein, welche Alternative und welcher Mehraufwand.
  5. Beschreiben Sie in vier bis fünf Sätzen, wie Sie das nächste CMS-Update einspielen würden, ohne den laufenden Webauftritt zu gefährden.
  1. Warum ist eine geänderte Kern-Datei nicht nur ein Wartungs-, sondern ein Sicherheitsproblem?
  2. Was unterscheidet eine Aktion von einem Filter?
  3. Warum gewinnt ein Child-Theme gegen das Theme, und warum ist das kein Zufall, sondern Absicht?
  4. Warum reicht „einmal am Eingang säubern” bei Ausgaben nicht aus?
  5. Warum ist ein ausgeblendeter Menüpunkt keine Berechtigung?
  6. Was ist die Rangfolge Konfigurieren - Erweitern - Überschreiben - Forken, und wonach richtet sie sich?
  7. Wozu braucht man eine Testumgebung, um Updates zeitnah einspielen zu können?

Eine Datei erweiterungspunkte.md mit den Teilen A bis C sowie gutachten.md mit Teil D. Die minimale Erweiterung aus Teil C liegt als eigenes Verzeichnis im Repository.