Variablen$template_dir
Definiert das Standard-Template Verzeichnis. Wenn
sie beim Einbinden von Templates keinen Ressourcen-Typ übergeben,
werden sie in diesem Pfad gesucht. Normalerweise lautet er './templates'.
Das heisst, Smarty erwartet das Template-Verzeichnis im selben Verzeichnis
wie das ausgeführte PHP-Skript.
Technische Bemerkung
Dieses Verzeichnis sollte ausserhalb der DocumentRoot
des Webservers liegen.
$compile_dir
Definiert das Verzeichnis, in das die kompilierten Templates geschrieben
werden. Normalerweise lautet es './templates_c'.
Das heisst, Smarty erwartet das Kompilier-Verzeichnis im selben Verzeichnis
wie das ausgeführte PHP-Skript.
Technische Bemerkung
Diese Einstellung kann als relativer oder als absoluter Pfad
angegeben werden. 'include_path' wird nicht verwendet.
Technische Bemerkung
Dieses Verzeichnis sollte ausserhalb der DocumentRoot
des Webservers liegen.
$config_dir
Dieses Verzeichnis definiert den Ort, an dem die von den
Templates verwendeten Konfigurationsdateien abgelegt sind. Normalerweise
ist dies './configs'. Das bedeutet, Smarty erwartet das
Konfigurations-Verzeichnis im selben Verzeichnis wie das ausgeführte
PHP-Skript.
Technische Bemerkung
Dieses Verzeichnis sollte ausserhalb der DocumentRoot
des Webservers liegen.
$plugins_dir
Definiert das Verzeichnis in welchem Smarty die zu ladenden Plugins sucht.
Normalerweise ist dies 'plugins' im SMARTY_DIR Pfad. Wenn Sie einen relativen
Pfad angeben, wird Smarty zuerst versuchen das Plugin von SMARTY_DIR aus zu erreichen,
danach relativ zum aktuellen Verzeichnis (mit 'cwd' - current working directory)
und zum Schluss in jedem Eintrag des PHP-'include_path'.
Technische Bemerkung
Für optimale Performance ist es sinnvoll, 'plugins_dir'
absolut oder relativ zu SMARTY_DIR bzw. dem aktuellen Verzeichnis zu definieren.
Von der Definition des Verzeichnisses im PHP-'include_path' wird abgeraten.
$debugging
Aktiviert die Debugging Konsole.
Die Konsole besteht aus einem Javascript-Fenster, welches Informationen zum
momentan geladenen Template und den zugewiesenen Variablen enthält.
$debug_tpl
Definiert den Namen des für die Debugging Konsole verwendeten Template. Normalerweise
lautet er 'debug.tpl' und befindet sich im SMARTY_DIR Verzeichnis.
$debugging_ctrl
Definiert Alternativen zur Aktivierung der Debugging Konsole.
NONE verbietet alternative Methoden. URL aktiviert ds Debugging,
wenn das Schlüsselwort 'SMARTY_DEBUG' im QUERY_STRING gefunden wird.
Wenn '$debugging' auf 'true' gesetzt ist, wird dieser Wert ignoriert.
$global_assign
Definiert eine Liste von Variablen die jedem Template automatisch
zugewiesen werden. Dies ist nützlich falls man globale beziehungsweise Server-Variablen,
zuweisen will, ohne dies von Hand zu tun. Jedes Element in '$global_assign' sollte
entweder den Namen der zuzuweisenden Variablen enthalten, oder Schlüssel/Wert-Paare,
bei welchen der Schlüssel den Namen des globalen Arrays definiert und der
Wert den Array mit den zuzuweisenden Werten. '$SCRIPT_NAME' wird immer zugewiesen und
aus '$HTTP_SERVER_VARS' bezogen.
Technische Bemerkung
Server-Variablen können über die '$smarty'-Variable
erreicht werden, zum Beispiel: {$smarty.server.SCRIPT_NAME}.
Konsultieren sie den Abschnitt zu $smarty
für weiterführende Informationen.
$undefined
Definiert den Wert von '$undefined' für Smarty. Normalerweise ist
dieser Wert 'null'. Momentan wird er nur verwendet, um nicht definierten
Elementen aus '$global_assign' einen Standardwert zuzuweisen.
$autoload_filters
Filter die Sie zu jedem Template laden möchten, können Sie mit Hilfe
dieser Variable festlegen. Smarty wird sie danach automatisch laden. Die Variable
enthält ein assoziatives Array, in dem der Schlüssel den Filter-Typ
und der Wert den Filter-Namen definiert. Zum Beispiel:
$smarty->autoload_filters = array('pre' => array('trim', 'stamp'),
'output' => array('convert'));
$compile_check
Bei jedem Aufruf der PHP-Applikation überprüft Smarty,
ob sich das zugrundeliegende Template seit dem letzten Aufruf
geändert hat. Falls es eine Änderung feststellt,
wird das Template neu kompiliert. Seit Smarty 1.4.0 wird
das Template - falls es nicht existiert - kompiliert, unabhängig
davon welcher Wert '$compile_check' hat. Normalerweise ist der
Wert dieser Variable 'true'. Wenn eine Applikation produktiv
eingesetzt wird (die Templates ändern sich nicht mehr), kann
der 'compile_check'-Schritt entfallen. Setzen Sie dann
'$compile_check' auf 'false', um die Performance zu steigern.
Achtung: Wenn Sie '$compile_check' auf 'false' setzen und anschliessend
ein Template ändern, wird diese Änderung *nicht* angezeigt.
Wenn caching und 'compile_check' eingeschaltet sind, werden die
gecachten Skripts neu kompiliert, sobald eine Änderung an
einem der eingebundenen Templates festgestellt wird.
Siehe auch $force_compile
und clear_compiled_tpl.
$force_compile
Veranlasst Smarty dazu die Templates bei jedem Aufruf neu
zu kompilieren. Diese Einstellung überschreibt '$compile_check'.
Normalerweise ist dies ausgeschaltet, kann jedoch für die Fehlersuche
nützlich sein. In einem Produktiven-Umfeld sollte auf
die Verwendung verzichtet werden. Wenn caching eingeschaltet ist,
werden die gecachten Dateien bei jedem Aufruf neu kompiliert.
$caching
Definiert ob Smarty die Template-Ausgabe cachen soll. Normalerweise ist dies
ausgeschaltet (disabled, Wert: 0). Falls Ihre Templates redundante Inhalte erzeugen,
ist es empfehlenswert caching einzuschalten. Die Performance wird signifikant verbessert.
Sie können auch mehrere Caches für ein Template haben. Die Werte 1 und 2 aktivieren
caching. Bei 1 verwendet Smarty die Variable '$cache_lifetime', um zu berechnen
ob ein Template neu kompiliert werden soll. Der Wert 2 weist Smarty an, den Wert von
'cache_lifetime' zur Zeit der Erzeugung des Cache zu verwenden. Damit können Sie 'cache_lifetime'
setzen, bevor Sie das Template einbinden und haben so eine feine Kontrolle darüber,
wann ein bestimmter Cache abläuft. Konsultieren Sie dazu auch: is_cached.
Wenn '$compile_check' aktiviert ist, wird der Cache regeneriert sobald ein Template
oder eine Konfigurations-Variable geändert wurde. Wenn '$force_compile' aktiviert ist,
werden die gecachten Inhalte bei jedem Aufruf neu generiert.
$cache_dir
Definiert den Namen des Verzeichnisses in dem die Template-Caches
angelegt werden. Normalerweise ist dies './cache', was Smarty veranlasst
das Cache-Verzeichnis im aktuellen Verzeichnis zu suchen. Sie können
auch einen eigenen Cache-Handler zur Kontrolle der Cache-Dateien
definieren, der diese Einstellung ignoriert.
Technische Bemerkung
Die Angabe muss entweder relativ oder absolut angegeben werden. 'include_path'
wird nicht verwendet.
Technische Bemerkung
Es wird empfohlen ein Verzeichnis ausserhalb der DocumentRoot zu verwenden.
$cache_lifetime
Definiert die Zeitspanne (in Sekunden) die ein Cache gültig
bleibt. Ist die Zeit abgelaufen, wird der Cache neu generiert. '$caching'
muss eingeschaltet (true) sein, damit '$cache_lifetime' Sinn macht. Der
Wert -1 bewirkt, dass der Cache nie abläuft. Der Wert 0 bewirkt, dass
der Inhalt immer neu generiert wird (nur sinnvoll für Tests, eine
effizientere Methode wäre $caching
auf 'false' zu setzen).
Wenn $force_compile
gesetzt ist, wird der Cache immer neu generiert (was einem Ausschalten
von caching gleichkommt). Mit der clear_all_cache()
Funktion können Sie alle Cache-Dateien auf einmal entfernen. Mit der
clear_cache() Funktion können Sie
einzelne Cache-Dateien (oder Gruppen) entfernen.
Technische Bemerkung
Falls Sie bestimmten Templates eine eigene Cache-Lifetime geben wollen,
können Sie dies tun indem Sie $caching
auf 2 stellen und '$cache_lifetime' einen einmaligen Wert zuweisen, bevor Sie
'display()' oder 'fetch()' aufrufen.
$cache_handler_func
Sie können auch eine eigene Cache-Handler Funktion definieren.
Siehe Abschnitt zur custom cache handler Funktion.
$cache_modified_check
Wenn auf 1 gesetzt, verwendet Smarty den If-Modified-Since
Header des Clients. Falls sich der Timestamp der Cache-Datei
seit dem letzten Besuch nicht geändert hat, wird der
Header '304 Not Modified' anstatt des Inhalts ausgegeben. Dies
funktioniert nur mit gecachten Inhalten die keine insert
Tags enthalten.
$default_template_handler_func
Diese Funktion wird aufgerufen, wenn ein Template nicht aus der
vorgegebenen Quelle geladen werden kann.
$php_handling
Definiert wie Smarty mit PHP-Code innerhalb von Templates umgehen soll.
Es gibt 4 verschiedene Einstellungen. Normalerweise wird
SMARTY_PHP_PASSTHRU verwendet. Achtung: '$php_handling' wirkt sich NICHT
auf PHP-Code aus, der zwischen {php}{/php}
Tags steht.
SMARTY_PHP_PASSTHRU - Smarty gibt die Tags aus.SMARTY_PHP_QUOTE - Smarty maskiert die Tags als HTML-Entities.SMARTY_PHP_REMOVE - Smarty entfernt die Tags.SMARTY_PHP_ALLOW - Smarty führt den Code als PHP-Code aus.
ACHTUNG: Es wird davon abgeraten, PHP-Code in Templates einzubetten.
Bitte verwenden Sie stattdessen custom functions
oder Variablen-Modifikatoren.
$security
'$security' ein-/ausschalten. Normalerweise 'false' (ausgeschaltet).
Die Sicherheitseinstellung ist wertvoll, wenn nicht vertrauenswürdigen
Parteien Zugriff auf die Templates gegeben wird (zum Beispiel via FTP).
Mit aktivierter '$security' kann verhindert werden, dass diese das System
via Template-Engine kompromittieren. Die '$security' einzuschalten halt folgende
Auswirkungen auf die Template-Language (ausser sie werden mit '$security_settings'
überschrieben):
Wenn '$php_handling' auf SMARTY_PHP_ALLOW geschaltet ist, wird der Wert auf SMARTY_PHP_PASSTHRU geändert.Ausser den in '$security_settings' definierten, sind keine Funktionen in IF-Statements aufrufbar.Templates können nur aus den im '$secure_dir'-Array definierten Verzeichnissen geladen werden.'fetch()' kann nur verwendet werden um Dateien aus '$secure_dir' zu laden.{php}{/php}-Tags sind nicht erlaubt.Ausser den in '$security_settings' definierten, sind keine PHP-Funktionen direkt als Variablen-Modifikatoren aufrufbar.$secure_dir
Definiert die als 'sicher' geltenden Verzeichnisse als Array.
{include} und {fetch} verwenden diese Verzeichnisse, wenn '$security'
eingeschaltet ist.
$security_settings
Wird verwendet um spezifische Sicherheits-Einstellungen zu
ändern, wenn '$security' eingeschaltet ist.
PHP_HANDLING - true/false. Wenn auf 'true' gesetzt wird '$php_handling' ignoriert.IF_FUNCS - Ist ein Array aller erlaubter Funktionen in IF-Statements.INCLUDE_ANY - true/false. Wenn 'true', kann jedes Template geladen werden, auch ausserhalb der '$secure_dir'-Liste.PHP_TAGS - true/false. Wenn 'true', sind keine {php}{/php}-Tags erlaubt.MODIFIER_FUNCS - Ist ein Array aller Funktionen die als Variablen-Modifikatoren verwendet werden dürfen.$trusted_dir
'$trusted_dir' wird nur verwendet wenn die Sicherheit eingeschaltet ist. Der Wert
ist ein Array aller Verzeichnisse, die als vertrauenswürdig gelten.
In diesen Verzeichnissen können PHP-Skripte, die man direkt aus einem Template
mit {include_php} aufruft,
abgelegt werden.
$left_delimiter
Das zu verwendende linke Trennzeichen der Template-Sprache.
Normalerweise '{'.
$right_delimiter
Das zu verwendende rechte Trennzeichen der Template-Sprache.
Normalerweise '}'.
$show_info_header
Gibt am Anfang der HTML-Seite die Smarty Version und das Kompilier-Datum des Templates
als Kommentar aus. Normalerweise 'false'.
$show_info_include
Gibt am Anfang und am Ende jedes eingebundenen Templates einen HTML-Kommentar aus.
Normalerweise 'false'.
$compiler_class
Definiert den Namen der Compiler-Klasse, die Smarty zum kompilieren
der Templates verwenden soll. Normalerweise 'Smarty_Compiler'. Nur
für fortgeschrittene Anwender.
$request_vars_order
Die Reihenfolge in welcher die Request-Variblen zugewiesen werden.
Verhält sich wie 'variables_order' in der php.ini.
$request_use_auto_globals
Definiert ob Smarty php's $HTTP_*_VARS[] ($request_use_auto_globals=false welches
der Standardwert ist) oder $_*[] ($request_use_auto_globals=true) verwenden soll.
Dies betrifft Templates die {$smarty.request.*}, {$smarty.get.*}, etc... verwenden.
Achtung: wenn $request_use_auto_globals auf TRUE gesetzt ist, hat variable.request.vars.order
keine Auswirkungen, da php's Konfigurationswert gpc_order verwendet wird.
$compile_id
Persistenter 'compile-identifier'. Anstatt jedem Funktionsaufruf die selbe 'compile_id'
zu übergeben, kann eine individuelle 'compile_id' gesetzt werden. Das ist z. B.
sinnvoll, um in Kombination mit einem 'prefilter' verschiedene Sprach-Versionen eines Template
kompilieren.
$use_sub_dirs
Wenn Sie Smarty in einer Umgebung einsetzen, die das Erstellen von Unterverzeichnissen
nicht erlaubt, können Sie diesen Wert auf 'false' setzen. Unterverzeichnisse
sind jedoch effizienter und sollten deshalb möglichst verwendet werden.
$default_modifiers
Definiert ein Array von Variablen-Modifikatoren, die auf jeder Variable anzuwenden sind.
Wenn Sie zum Beispiel alle Variablen standardmässig HTML-Maskieren wollen,
können Sie array('escape:"htmlall"'); verwenden. Um eine Variable von dieser
Behandlung auszuschliessen, können Sie ihr den Parameter 'smarty' mit dem Modifikator 'nodefaults'
übergeben. Als Beispiel: {$var|smarty:nodefaults}.
Zum Beispiel: {$var|nodefaults}.
$default_resource_type
Definiert den Ressourcentyp der von Smarty implizitverwendet werden soll. Standartwert
ist 'file', was dazu führt dass $smarty->display('index.tpl'); und
$smarty->display('file:index.tpl'); identisch sind. Konsultieren Sie das
Resource Kapitel für weitere Informationen.