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.