Templates

Aus phpMyForum Dokumentation

Wechseln zu: Navigation, Suche

Mit Templates können wir das Design des Forums vollständig an unsere Wünsche anpassen.

Inhaltsverzeichnis

Grundlagen

Auf den folgenden Seiten werden wir in Beispielen zeigen, wie Templates funktionieren und was mit der Template-Engine des phpMyForums alles möglich ist.

Syntax

Die Templates bestehen grundlegend aus xHTML und CSS.

Der folgenden Code ist z.B. eine einfache Tabelle wie sie öfters in den Tamplates auftaucht.

<table cellpadding="3" cellspacing="1" width="100%" class="defaultTable">
    <tr>
        <td width="100%" class="defaultTr">
            Titel
        </td>
    </tr>
    <tr>
        <td class="catOne">
            Inhalt
        </td>
    </tr>
</table>

Includes

Mit Includes kann man andere Templates in das aktuelle einbinden, dabei ist die Syntax wie folgt um das Template test einzubinden:

<#tpl_test#>

Sehen wir uns dazu noch ein Beispiel an in dem das eben Besprochene deutlicher wird.
Der folgende Code zeigt den Inhalt vom Template test in dem wir das Template testinclude einbinden wollen.

<p>Ein Absatz ...</p>

<#tpl_testinclude#>

<p>noch ein Absatz ...</p>

Der Inhalt des Templates testinclude welches wir hier einbinden ist der folgende:

<b>Inhalt aus Template <i>testinclude</i></b>

Wenn die Seite mit dem Template test später vom Forum ausgegeben wird, sieht der HTML-Code wie folgt aus:

<p>Ein Absatz ...</p>

<b>Inhalt aus Template <i>testinclude</i></b>

<p>noch ein Absatz ...</p>

Variablen

Um dynamische Inhalte ausgeben zu können, gibt es Vaiablen.
Variablen beginnen immer mit einem $ gefolgt von einigen Buchstaben, Unterstrichen oder Zahlen, im folgenden Template sind 2 Variablen in 2 Tabellenzeilen eingefügt, die eine Liste von Namen und eMail-Adressen ausgibt.

<tr>
    <td>Name:</td>
    <td>$Daten[name]</td>
</tr>
<tr>
    <td>eMail:</td>
    <td>$Daten[email]</td>
</tr>

spezielle Variablen

Die folgenden Variablen sollten in allen Templates verfügbar sein:

$_cfg[...] 
Variablen aus der config.inc.php
$_config[...] 
Variablen aus den Einstellungen im Admin
$_user[...] 
Benutzerdaten der aktuell Eingeloggten Person

Um z.B. den Benutzernamen des eingeloggten Benutzer auszugeben, machen wir folgendes:

<strong>$_user[name]</strong>

Rechteverwaltung

Mit Rechte sind an dieser Stelle nur Template-Rechte gemeint. Mit diesen kann man den Zugriff auf einzelne Teile des Forums für Benutzer einschränken und für andere wie z.B. Administratoren erweitern.
Das folgende Bild zeigt diese 3 Optionen zur Rechtevergabe und zusätzlich die Option "site.php".

Template Optionen
Template Optionen

externer Zugriff auf Templates (site.php)

Über die Option "site.php" können wir Templates direkt aufrufen, somit lässt sich z.B. das Template css wie folgt aufrufen:

http://www.example.com/phpmyforum/site.php?template=css

Der wichtigste Teil der Addresse ist der folgende in 2 möglichen Schreibweisen:

/site.php?template=css
/site.php?css

Content-Type

Wenn wir CSS oder JavaScript wie oben beschrieben in ein extra Template auslagern wollen, müssen wir noch einen Content-Type mit ausgeben. Dies geschieht z.B. wie folgt für CSS:

/site.php?template=css&type=text/css

Login

Mit dieser 2. Option können wir Templates erstellen, die nur Benutzer angezeigt bekommen die:

ja 
eingeloggt
nein 
ausgeloggt
egal 
beides

sind. Somit können wir z.B. 2 verschiedene Willkommens-Meldungen auf der Startseite erstellen: eine für ausgeloggte Benutzer und eine andere für bereits eingeloggte Benutzer.

Moderator

Dieses Recht fragt ab, ob der aktuell angemeldete Benutzer ein Moderations-Recht besitzt.

ja 
hat Moderations-Rechte (egal wie viele)
nein 
hat keine Moderations-Rechte
egal 
beides

Administrator

Die letzte Option ist funktioniert genauso wie die der Moderatoren-Rechte, nur dass es jetzt um die des Administrators geht.

ja 
hat Admin-Rechte (egal wie viele)
nein 
hat keine Admin-Rechte
egal 
beides

Bedingungen

Bedingungen ermöglichen es uns, Teile von Templates / Template-Includes nur bei einer bestimmten Bedingung anzeigen zu lassen.

if

<if( $a == 1 )>
    Text der erscheint, wenn $a den Wert 1 hat.
</if>

else

<if( $a == 1 )>
    Text der erscheint, wenn $a den Wert 1 hat.
<else>
    Text der erscheint, wenn $a nicht den Wert 1 hat.
</if>

elseif

<if( $a == 1 )>
    Text der erscheint, wenn $a den Wert 1 hat.
<elseif( $a == 1 || $a == 2 )>
    Text der erscheint, wenn $a den Wert 1 oder 2 hat.
<else>
    Text der erscheint, wenn $a nicht den Wert 1 und nicht den Wert 2 hat.
</if>

Beispiel

Wenn wir z.B. den Benutzer mit seinem Benutzernamen begrüßen wollen, geht das wie folgt.

<if( $_user[id] )>
    Hallo $_user[name], schön dass du wieder hier bist.
<else>
    Hallo Gast
</if>

PHP-Code

Die Template-Engine vom phpMyForum erlaubt es uns, beliebigen PHP-Code in Templates auszuführen. Somit sind uns keine Grenzen bei der Umsetzung eigener Erweiterungen gesetzt, und das alles über Templates.

Bei Ausgaben im eigenen PHP-Code erscheinen diese direkt an der Stelle wo <php> ... </php> stand.

Syntax

<php>
    echo 'an dieser Stelle kann eigener PHP-Code ausgeführt und ausgegeben werden';
</php>

Beispiel

Zur Vereinfachung benutzen wir hier das gleiche Beispiel wie bei den Bedingungen im vorherigen Abschnitt, nur diesmal mit den PHP-Tags.
Wir fragen also wieder ab, ob der Benutzer eingeloggt ist und begrüßen ihn mit seinem Benutzernamen oder alternativ bei einem Gast mit einer anderen Meldung.

<php>
    global $_user;

    if ( $_user['id'] ) {
        echo 'Hallo '.$_user['name'].', schön dass du wieder hier bist.';
    } else {
        echo 'Hallo Gast';
    }
</php>
Alle Variablen die wir in den <php>-Tags benutzen wollen, müssen wir mit folgender Zeile verfügbar machen.
global $_user;

importieren & exportieren

Mit dem Template import / export ist es uns möglich, Templates zu sichern oder mit anderen Nutzern der Wikipedia:Community zu tauschen.

Import

Der Import dient dem Wiederherstellen eines Template-Backups und dem Importieren von z.B. Templates anderer Benutzer.
Wir haben 2 Möglichkeiten Templates zu importieren:

upload

Diese Variante funktioniert nur mit Template-Backups die kleiner als das Upload-Limit des Servers sind.

Datei vom Server

Sollte der normale Upload - wie oben beschrieben - nicht funktionieren, benutzen wir einfach diese Variante.
Damit die Datei in dem <acronym title="Auswahlliste">Dropdown</acronym>-Feld erscheint, müssen wir diese in den Upload-Ordner des phpMyForums mit einem FTP-Client hochladen.

Bereits vorhandene Templates in dem Template-Set werden ohne Nachfrage überschrieben !

Export

Über die Export-Funktion haben wir die Möglichkeit, ein Backup einzelner / aller Templates eines Template-Sets herunterzuladen.

  • als erstes wählen wir das Template-Set im Dropdown-Feld aus, aus welchen wir das Backup erstellen wollen
  • danach werden alle Templates dieses Template-Sets aufgelistet, aus denen wir uns die gewünschten auswählen

suchen & ersetzen

Suchen & Ersetzen in Templates ermöglicht uns bestimmte Teile aus den HTML-Code zu suchen & ersetzen.

Suchen

Die Suche in Templates können wir auf Templates mit einem bestimmten Namen einschränken, diese Angabe muss ein Regulärer Ausdruck sein.

Im Feld Suchbegriff kann jede beliebige Zeichenkette eingetragen werden.

Suchen & Ersetzen

Diese Funktion ist mit der Suchen-Funktion identisch. Nur, dass nicht nur nach dem Suchbegriff gesucht, sondern dieser gleich durch den Text in Ersetzung ersetzt wird.

Es werden alle Ersetzungen ohne Nachfrage sofort vorgenommen !
Persönliche Werkzeuge