It's possible to customize the frontend independently from OTRS releases. How? It's quite simply. The magic key is dtl (Dynamic Template Language). All frontend masks are located under ~otrs/Kernel/Output/HTML/<THEME>/*.dtl. Default is the "Standard" Theme.
So you have the power to customize each OTRS site the way you want to! You may even create completely new themes.
Comment
Comment is a simple '#'.
# -- # this is a comment # -- |
Set a variable
<dtl set $Data{"Test1"} = "German"> |
Note: $Data{"xyz"} only exists in the current dtl file, whereas $Env{"xyz"} exists throughout all dtl files. New: $Config{"xyz"} is not only just read anymore, but exists throughout the whole program! (2002-05-22 / 0.5 BETA5)
Print a variable
To print a variable on the screen, simply use:
$Data{"xyz"} or $Env{"xyz"} |
Text translations
$Text{"This should be translated"} |
Take care that the translation exists in the "$HOME_OTRS/Kernel/Language/*.pm" files. If there isn't a translation, the text will be shown as given.
Condition
<dtl if ($Text{"Lock"} eq "Lock") { $Data{"FrontendLanguage"} = "English"; }> |
It's only possible to store things into $Data{"xyz"} and $Env{"xyz"}.
Get a config option - $Config{}
$Config{"Sendmail"} |
Common environment variables - $Env{}
$Env{"SessionID"} --> the current session id
$Env{"Time"} --> the current time e. g. 'Thu Dec 27 16:00:55 2001'
$Env{"CGIHandle"} --> the current CGI handle e. g. 'index.pl'
$Env{"UserCharset"} --> the current site charset e. g. 'iso-8859-1'
$Env{"Baselink"} --> the baselink --> index.pl?SessionID=...
$Env{"UserFirstname"} --> e. g. Dirk
$Env{"UserLastname"} --> e. g. Hohndel
$Env{"UserLogin"} --> e. g. mgg@x11.org
$Env{"UserIsGroup[users]"} = Yes --> user groups (useful for own links)
$Env{"UserIsGroup[admin]"} = Yes
$Env{"Action"} --> the current action
$Env{"Subaction"} --> the current subaction |
System calls
To get the output of a system command use:
# execute system call
<dtl system-call $Data{"uptime"} = "uptime">
# print
$Data{"uptime"} |
# execute system call
<dtl system-call $Data{"procinfo"} = "procinfo | head -n1 ">
# print
$Data{"procinfo"} |
Examples
# 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"} |
# translation test
Lock: $Text{"Lock"}
# config options
Sendmail: $Config{"Sendmail"} |