PHP-Code in phpBB-Templates einfügen


Das hier ist ein kleines Workaround für alle, die PHP-Code in Templates für das freie Forum phpBB einfügen wollen.

Die Templates im Ordner \forum\styles\<Name des Templates>\template folgen einer eigenen Syntax und werden als HTML-Dateien gespeichert. Die Verwendung von PHP-Code ist hier nicht möglich. Stattdessen muss man Variablen in der Form {VARIABLENNAME} dimensionieren und befüllen.

Schritt 1: Eine Variable erzeugen

Barbeiten Sie dazu eine der Dateien, die vor Aufrufen des Templates geladen wird, am besten \index.php auf der untersten Ebene des Systems. Variablen, deren Inhalte im Template eingeblendet werden sollen, erzeugen Sie in der Form:

$template->assign_var(‘VARIABLENNAME’, ‘Inhalt der Variable’);

In meinem Fall wollte ich eine Warnmeldung einblenden lassen, wenn der Besucher des Forums eine veraltete Internet Explorer-Version verwendet. (Mehr zu diesem Thema) Dazu wird vorher noch eine IF-Schleife verwendet, sodass die Variable nur bei Erfüllung der Bedingung erzeugt wird. Am Ende sieht das so aus:

if ((strpos($_SERVER[‚HTTP_USER_AGENT‘], ‚MSIE 5‘) or (strpos($_SERVER[‚HTTP_USER_AGENT‘], ‚MSIE 6‘))) !== FALSE) {
    $template->assign_var(‚KILLIE6‘, ‚Sie verwenden eine veraltete Version von Internet Explorer.
‚);
}

Diese Zeilen können Sie ober- oder unterhalb der vorhandenen Variablen einfügen, etwa in Zeile 104. Orientieren Sie sich an den bestehenden Zeilen, in denen Variablen benannt werden! Ihr Code sollte sich noch oberhalb der Zeile

$template->set_filenames(array(
    ‚body‘ => ‚index_body.html‘)
);

befinden.

Stellen Sie sicher, dass der neue Code fehlerfrei ist und laden Sie die Datei in das unterste Verzeichnis der Forensoftware hoch.

Schritt 2: Die Variable im Template aufrufen

Templates werden von phpBB normalerweise kompiliert zwischengespeichert, um die Ausgabeseite schneller generieren zu können. Das Hochladen einer veränderten Template-Datei wird zunächst keine Wirkung zeigen, weil die zwischengespeicherte Version bevorzugt wird. Um das Problem zu umgehen, deaktivieren Sie vorübergehend das Caching oder verwenden Sie einfach den Template-Editor aus dem Administrationsbereich: Wechseln Sie dazu zu Styles, Templates und wählen Sie neben dem Standardtheme “ändern”. Wählen Sie jetzt die Datei, die Sie bearbeiten möchten – in meinem Fall war es “overall_header.html”.


imageMeine Variable heißt KILLIE6 und soll im BODY-Bereich des HTML-Codes eingeblendet werden, die Ausgabe soll ganz oben im Dokument erfolgen. Im Template steht der Aufruf für die Variable direkt unter <body>:

<body class=“{S_CONTENT_DIRECTION}“>

{KILLIE6}

Klicken Sie auf “Absenden”, um die Datei zu speichern. Wenn der PHP-Code fehlerfrei und die Variable richtig benannt wurden, können Sie das Ergebnis jetzt bei Aufruf der jeweiligen Seite sehen. Änderungen an “overall_header.html” sind auf allen Seiten des Forums sichtbar.