phpBB3 - Update des Styles und der Forensoftware

Warum muss man das eigene Style manuell upgraden, nachdem das automatische Update durchgeführt wurde

Die Betreiber einer phpBB3-Software stehen regelmäßig vor der ehrenvollen Aufgabe, ein neues Update einzuspielen. Im ersten Augenblick ist es vielleicht etwas nervig, da der phpBB3-Betreiber sicherlich viele andere Aufgaben zu erfüllen hat, anstatt sich um die (mühevolle) Update-Routine quälen zu müssen. Auf der anderen Seite bringen die phpBB3-Updates auch zahlreiche neue Funktionen mit sich und diverse Fehler werden korrigiert.

Es lohnt sich also, phpBB3-Updates regelmäßig einzuspielen. In diesem Artikel wird verständlich erklärt, was ein solches Update macht und worauf man achten sollte. Hierbei liegt der Fokus hauptsächlich auf dem manuellen Upgrade des individuellen phpBB3-Styles, da das Update der Forensoftware an sich voll automatisch abläuft.

Was macht ein phpBB3-Update überhaupt?

Bei einem phpBB3-Update werden in der Regel bestimmte Passagen im Quellcode und den Template-Dateien editiert, ergänzt oder sogar entfernt. Man kann sich dies in etwa so vorstellen, wenn man nach Abgabe seiner Diplomarbeit nachträglich Rechtschreibfehler korrigiert oder Inhalte überarbeitet. So ähnlich kann man sich die Arbeit der phpBB3-Entwickler vorstellen: wenn Sie beispielsweise einen Programmierfehler finden, bearbeiten sie die entsprechende Codezeile.

Wenn die phpBB3-Entwickler eine gewisse Anzahl an Änderungen vorgenommen haben, wird es Zeit für eine neues phpBB3-Update, so dass diese Änderungen für alle phpBB3-Installationen verfügbar sind. Da die Betreiber einer phpBB3-Forensoftware in der Regel keine Web-Entwickler sind, müssen die Änderungen automatisch eingepflegt werden.

Diese Aufgabe übernimmt der automatische Updater von phpBB3. Dieser geht von einer Standard-phpBB3-Installation aus, in der keine manuellen Änderungen vorgenommen wurden. D.h. alle Dateien und Templates entsprechen dem Original-Zustand von phpBB3!

phpBB3 Update - der automatische Updater arbeitet vollkommen autark

Die vorgehensweise des automatischen Updater sind relativ einfach, denn dieser ersetzt die geänderten Codezeilen nach dem Motto "Öffne die Datei ucp_register.php => Gehe zu Zeile 100 => Ersetze $user mit $benutzer". Diese strikte Vorgehensweise setzt wie bereits beschrieben voraus, dass die Dateien nicht manipuliert wurden.

Welche Bereiche der phpBB3-Forensoftware werden automatisch aktualisiert, welche müssen manuell angepasst werden

Die Verzeichnisstruktur einer phpBB3-Installation ist übersichtlich. Die Dateien, welche die Funktionalität gewährleisten, liegen entweder direkt im Stammverzeichnis oder in den Ordnern adm, include oder language. Diese Dateien beinhalten also die Funktionen und die gesamte Logik der phpBB3-Forensoftware. Sofern man diese Dateien nicht modifiziert hat, beispielsweise durch die Installation von Erweiterungen (phpBB3-Mods), werden diese Dateien problemlos von dem automatischen Updater editiert. Hier ist also kein Eingriff erforderlich.

phpBB§ - Verzeichnisstruktur

Ein weiteres besonderes Verzeichnis ist styles. Hier liegen die Templates für das phpBB3-Forum. Die beiden Haupt-Styles heißen prosilver und subsilver2. Dieses Styles werden standardmäßig mitgeliefert und sollten nicht editiert werden.

Wichtig:Auch das Style ist für die Funktionalität verantwortlich. Da die Templates bestimmte Platzhalter (bsp. {USER_LOGGEDIN}) beinhalten, können auch Templates Fehler verursachen, welche nicht nur die Optik betreffen!

Warum muss man nach dem Automatischen Updater das eigene Style manuell upgraden

Natürlich möchte jeder phpBB3-Betreiber ein individuelles und einzigartiges Design haben. Daher gehört es zu einen der ersten Aufgaben, ein Design zu suchen und dieses an seine persönlichen Wünsche anzupassen. Das eigene individuelle Design ist mit hoher Wahrscheinlichkeit der Bereich in der phpBB3-Installation, der manuelle Modifikationen (sprich eigene CSS-Klassen, Änderungen an der HTML-Struktur usw.) beinhaltet.

Das ist auch der Grund dafür, warum der automatische Updater nur die Standard-Styles (prosilver, subsilver2) aktualisiert und die individuellen Styles unberührt lässt. Letztendlich möchte man nicht das mühevoll erstellte Design überschreiben. Und woher soll der automatische Updater wissen, welche individuellen Änderungen keine Fehler, sondern gewollte Anpassungen des Betreibers sind.

Wie bereits erwähnt besitzen Templates bestimmte Platzhalter, welche mit Inhalt gefüllt werden. Werfen wir einen Blick in eine solche Datei:

# Auszug \styles\MEINDESIGN\template\viewforum_body.html 

<!-- IF S_FORUM_RULES -->
<div class="rules">
   <div class="inner"><span class="corners-top"><span></span></span>
<!-- IF U_FORUM_RULES -->
   <a href="{U_FORUM_RULES}">{L_FORUM_RULES}</a>
<!-- ELSE -->
    <strong>{L_FORUM_RULES}</strong><br />
            {FORUM_RULES}
<!-- ENDIF -->
    <span class="corners-bottom"><span></span></span></div>
</div>
<!-- ENDIF -->

Man sieht neben den HTML-Tags sehr schön HTML-Kommentare (<!-- TEXT -->) und Platzhalter ({TEXT}). Diese Bereiche werden mit bestimmten Inhalten gefüllt. Obwohl es Templates und hauptsächlich für die Optik zuständig sind, sind diese auch für die Funktionalität verantwortlich. Fehlt beispielsweise ein Platzhalter wie {L_FORUM_RULES}, bleibt dieser Bereich einfach leer und man wundert sich über eine weiße Fläche.

DAS BEDEUTET: wenn man phpBB3 über den automatischen Updater aktualisiert, muss man sein individuelles Design manuell aktualisieren! Viele vergessen diesen wichtigen Schritt und wundern sich, warum die neuen Funktionen fehlen oder bestimmte Bereiche fehlerhaft sind.

Wie aktualisiere ich mein Style?

Manuelles Aktualisieren bedeutet, dass man "im Text Suchen und Ersetzen nach Anleitung" spielt. Die Herausforderung dabei besteht, die modifizierten Passagen in den Template-Dateien ausfindig zu machen. Schließlich hat man die Template-Dateien individuell angepasst. Ein einfaches Suches und Ersetzen im Texteditor ist in diesem Fall nicht möglich und verursacht sehr wahrscheinlich Fehler.

Zuerst besorgt man sich die Anleitung, welche Dateien wie bearbeitet werden sollen. Diese Anleitung findet man in den code changes. Entweder man besucht die Seite phpBB3 code changes, auf der alle geänderten Dateien aufgelistet werden, oder man lädt sich die code changes von dem phpBB3 code archive herunter (in diesem Fall bitte das gepackte File phpbb-3.0.X_to_3.0.X-codechanges.tar.bz2 wählen). In beiden Fällen wird gezeigt, welche Dateien an welchen Stellen editiert werden müssen.

Es ist ratsam, phpBB3 Schritt für Schritt zu aktualisieren. Das Überspringen von Versionen wie ein Update von 3.0.0 auf 3.0.8 ist nicht zu empfehlen!

Welche style code changes soll ich nehmen

In den code changes werden alle geänderten Dateien aufgelistet. Wir beziehen uns nur auf den Style-Ordner (alle anderen Dateien wurden durch den automatischen Updater bereits aktualisiert). Aber auch hier finden sich in den code changes zwei Ordner:

  • prosilver
  • subsilver2

Nun muss man herausfinden, auf welches der beiden Designs das eigene Design basiert. Alle im WWW erhältlichen phpBB3-Styles basieren entweder auf prosilver oder subsilver2. Es handelt sich hierbei also um Modifikationen von den beiden Default-Styles.

Hierfür gibt es zwei Möglichkeit: entweder findet man die Information auf der Download-Seite des Styles oder man vergleicht, wem das eigene Style am ähnlichsten ist.

Dateien aktualisieren

Kurze Zusammenfassung: wir haben die code changes vor Augen und wissen, ob unser Style auf prosilver oder subsilver2 basiert. Dann wird es Zeit, die Dateien zu modifizieren.

Betrachten wir uns die Anleitung der code changes einmal beispielhaft an. Dort findet man Anweisungen, die wie folgt aussehen:

#  
#-----[ OPEN ]---------------------------------------------
#
styles/prosilver/template/ucp_pm_history.html

#
#-----[ FIND ]---------------------------------------------
#
Around Line 7

<div class="postbody" id="pr{history_row.U_MSG_ID}">

#
#-----[ REPLACE WITH ]---------------------------------------------
#
<div class="postbody" id="pr{history_row.MSG_ID}">

Hierbei handelt es sich um eine exakte Anweisung:

  1. Öffne die Datei styles/prosilver/template/ucp_pm_history.html
  2. Gehe in die Nähe von Zeile 7 (Around Line 7). Die Zeilennummerierung ist nicht exakt.
  3. Finde den Codeschnipsel "<div class="postbody" id="pr{history_row.U_MSG_ID}">"
  4. Ersetze diesen durch "<div class="postbody" id="pr{history_row.MSG_ID}">"

Nach diesem Schema überarbeitet man nun sämtliche Dateien im entsprechenden Styles-Ordner und lädt diese anschließend hoch. That's it!

Optional: Diff - Dateien abschließend vergleichen

Die Erfahrung zeigt, dass manuelles Editieren ziemlich fehleranfällig ist. Aus diesem Grund kann man Diff-Tools wie WinMerge (Windows) oder meld (Linux) verwenden, um Dateien zu vergleichen.

Mit diesen Tools kann man nun die manuelle editierten Dateien des eigenen Styles mit dem entsprechenden Default (prosilver, subsilver2) vergleichen. Zwar unterscheiden sich die Dateien des eigenen und des Default-Styles (deswegen müssen wir manuell aktualisieren), aber 99% der Inhalte sind identisch. Nun kann man die restlichen 1% etwas genauer analysieren und etwaige Fehler ausfindige machen. Oftmals wurden Änderungen vergessen oder fehlerhaft durchgeführt (bsp. Zeichen am Ende vergessen).

phpbb3 - Dateien mit einem Diff-Tool wie meld vergleichen und Fehler finden
phpbb3 - Dateien mit einem Diff-Tool wie meld vergleichen und Fehler finden

Natürlich ist hier ein geschultes Auge Voraussetzung und man sollte nicht einfach ohne Nachdenken die vermeintlichen Unterschiede ändern. Zum einen hat man eigene Anpassungen eingebaut und zum anderen erfordern phpBB3-Erweiterungen auch Änderungen am Template. Diese zu Überschreiben würde deren Funktionalität zerstören.

Der Vergleich der Dateien stellt eine abschließende Kontrolle dar.

Natürlich darf man nicht vergessen, den Cache des Forums zu leeren, damit die Änderungen auch aktiv werden:

phpBB3 - Cacher leeren