Chapter 17. Anpassung des Front-End

Table of Contents
Die dtl-Syntax
Beispiele für dtl-Dateien
Erstellen eines neuen Motivs

OTRS macht es möglich, das Erscheinungsbild des Systems (Front-End) an die eingenen Bedürfnisse anzupassen. Das Zauberwort lautet: dtl (Dynamic Template Language). Alle Front-End Masken befinden sich im Verzeichnis: ~otrs/Kernel/Output/HTML/<THEME>/*.dtl. Standardmäßig ist das "Standard" Motiv ausgewählt.

Sie haben also die Möglichkeit, Ihr OTRS so anzupassen, wie Sie es möchten. Sie können aber auch ein gegenes Motiv entwerfen.

Die dtl-Syntax

Kommentar

Ein Kommentar wird durch ein einfaches "#"-Zeichen eingeleitet.
#  --
#  das ist ein Kommentar
#  --

Eine Variable setzen

<dtl set $Data{"Test1"} = "German">

Note: $Data{"xyz"} existiert nur in diesem dtl-Datei wobei $Env{"xyz"} in allen dtl-Dateien existiert. Neu: $Config{"xyz"} ist eine nicht nur "read only" und existiert im gesamten Programm! (2002-05-22 / 0.5 BETA5)

Ausgabe einer Variablen

Um eine Variable auf dem Monitor auzugeben, verwenden Sie einfach:
$Data{"xyz"} oderr $Env{"xyz"}

Text Übersetzung

$Text{"Das wird übersetzt"}

Achten Sie darauf, dass die Übersetzung in den entsprchenden Übersetzungsdateien unter "$HOME_OTRS/Kernel/Language/*.pm" existiert. Wenn diese nicht existiert, wird der gegebene Text angezeigt.

Bedingungen

<dtl if ($Text{"Lock"} eq "Lock") { $Data{"FrontendLanguage"} = "English"; }>

Es gibt lediglich die Möglichkeit etwas in $Data{"xyz"} und $Env{"xyz"} zu speichern.

Auf eine Konfigurationsoption zugreifen - $Config{}

$Config{"Sendmail"}

Gemeinsame Umgebungsvariablen - $Env{}

    $Env{"SessionID"} --> Die aktuelle Session ID
    $Env{"Time"} --> Die aktuelle Zeit z.B. 'Thu Dec 27 16:00:55 2001'
    $Env{"CGIHandle"} --> Die aktuelle CGI-Datei z.B. 'index.pl'
    $Env{"UserCharset"} --> Der akturelle Zeichensatz z.B. 'iso-8859-1'
    $Env{"Baselink"} --> Der Basislink --> index.pl?SessionID=...
    $Env{"UserFirstname"} --> z.B. Dirk
    $Env{"UserLastname"} --> z.B. Hohndel
    $Env{"UserLogin"} --> z.B. mgg@x11.org
    $Env{"UserIsGroup[users]"} = Yes --> Benutzergruppen (useful for own links) 
    $Env{"UserIsGroup[admin]"} = Yes 
    $Env{"Action"} --> Die aktuelle Aktion
    $Env{"Subaction"} --> Die aktuelle Subaktion

System-Aufruf

Um den Output eines Systemkommandos zu bekommen, verwenden Sie:
# execute system call
<dtl system-call $Data{"uptime"} = "uptime">

# print
$Data{"uptime"}
oder
# execute system call
<dtl system-call $Data{"procinfo"} = "procinfo | head -n1 ">

# print
$Data{"procinfo"}

Beispiele

# set variable
<dtl set $Data{"Test1"} = "English">

# print variable
Echo: $Data{"Test1"} 

# condition
<dtl if ($Text{"Lock"} ne "Lock") { $Data{"Test2"} = "Not English!"; }>

# print result
Result: $Data{"Test1"}
oder
# translation test
Lock: $Text{"Lock"}

# config options
Sendmail: $Config{"Sendmail"}