Methoden append (anhängen) void append mixed var void append string varname mixed var Wird verwendet, um an Template-Variablen weitere Daten anzuhängen. Sie können entweder ein Namen/Wert-Paar oder assoziative Arrays, die mehrere Namen/Wert-Paare enthalten, übergeben. append (anhängen) // Namen/Wert-Paare übergeben $smarty->append("Name","Fred"); $smarty->append("Address",$address); // assoziatives Array übergeben $smarty->append(array("city" => "Lincoln","state" => "Nebraska")); append_by_ref (via Referenz anhängen) void append_by_ref string varname mixed var Wird verwendet, um an Template-Variablen Werte via Referenz (pass by reference) anstatt via Kopie anzuhängen. Konsultieren Sie das PHP-Manual zum Thema 'variable referencing' für weitere Erklärungen. Technische Bemerkung 'append_by_ref()' ist effizienter als 'append()', da keine Kopie der Variable erzeugt, sondern auf die Variable im Speicher referenziert wird. Beachten Sie dabei, dass eine nachträgliche änderung Original-Variable auch die zugewiesene Variable ändert. PHP5 wird die Referenzierung automatisch übernehmen, diese Funktion dient als Workaround. append_by_ref (via Referenz anhängen) // Namen/Wert-Paare übergeben $smarty->append_by_ref("Name",$myname); $smarty->append_by_ref("Address",$address); assign (zuweisen) void assign mixed var void assign string varname mixed var Wird verwendet, um einem Template Werte zuzuweisen. Sie können entweder Namen/Wert-Paare oder ein assoziatives Array mit Namen/Wert-Paaren übergeben. assign // Namen/Wert-Paare übergeben $smarty->assign("Name","Fred"); $smarty->assign("Address",$address); // assoziatives Array mit Namen/Wert-Paaren übergeben $smarty->assign(array("city" => "Lincoln","state" => "Nebraska")); assign_by_ref (via Referenz zuweisen) void assign_by_ref string varname mixed var Weist einen Wert via Referenz zu, anstatt eine Kopie zu machen. Konsultieren Sie das PHP-Manual zum Thema 'variable referencing' für weitere Erklärungen. Technical Note 'assign_by_ref()' ist effizienter als 'assign()', da keine Kopie der Variable erzeugt wird, sondern auf die Variable im Speicher referenziert wird. Beachten Sie dabei, dass eine nachträgliche änderung Original-Variable auch die zugewiesene Variable ändert. PHP5 wird die Referenzierung automatisch übernehmen, diese Funktion dient als Workaround. assign_by_ref (via Referenz zuweisen) // Namen/Wert-Paare übergeben $smarty->assign_by_ref("Name",$myname); $smarty->assign_by_ref("Address",$address); clear_all_assign (alle Zuweisungen löschen) void clear_all_assign Löscht die Werte aller zugewiesenen Variablen. clear_all_assign (alle Zuweisungen löschen) // lösche alle zugewiesenen Variablen $smarty->clear_all_assign(); clear_all_cache (Cache vollständig leeren) void clear_all_cache int expire time Leert den gesamten Template-Cache. Als optionaler Parameter kann ein Mindestalter in Sekunden angegeben werden, das die einzelne Datei haben muss, bevor sie gelöscht wird. clear_all_cache (Cache vollständig leeren) // leere den gesamten cache $smarty->clear_all_cache(); clear_assign (lösche Zuweisung) void clear_assign string var Löscht den Wert einer oder mehrerer (übergabe als Array) zugewiesener Variablen. clear_assign (lösche Zuweisung) // lösche eine einzelne Variable $smarty->clear_assign("Name"); // lösche mehrere Variablen $smarty->clear_assign(array("Name","Address","Zip")); clear_cache (leere Cache) void clear_cache string template string cache id string compile id int expire time Löscht den Cache eines bestimmten Templates. Falls Sie mehrere Caches für ein Template verwenden, können Sie als zweiten Parameter die 'cache_id' des zu leerenden Caches übergeben. Als dritten Parameter können sie die 'compile_id' angeben. Sie können Templates auch gruppieren und dann als Gruppe aus dem Cache löschen. Sehen sie dazu den Abschnitt über caching. Als vierten Parameter können Sie ein Mindestalter in Sekunden angeben, das ein Cache aufweisen muss, bevor er gelöscht wird. clear_cache (Cache leeren) // Cache eines Templates leeren $smarty->clear_cache("index.tpl"); // leere den Cache einer bestimmten 'cache-id' eines mehrfach-gecachten Templates $smarty->clear_cache("index.tpl","CACHEID"); clear_compiled_tpl (kompiliertes Template löschen) void clear_compiled_tpl string tpl_file Löscht die kompilierte Version des angegebenen Templates. Falls kein Template-Name übergeben wird, werden alle kompilierten Templates gelöscht. Diese Funktion ist für fortgeschrittene Benutzer. clear_compiled_tpl (kompiliertes Template löschen) // ein bestimmtes kompiliertes Template löschen $smarty->clear_compiled_tpl("index.tpl"); // das gesamte Kompilier-Verzeichnis löschen $smarty->clear_compiled_tpl(); display (ausgeben) void display string template string cache_id string compile_id Gibt ein Template aus. Sie müssen einen gültigen Template Ressourcen-Typ inklusive Pfad angeben. Als optionalen zweiten Parameter können Sie eine 'cache_id' übergeben. Konsultieren Sie den Abschnitt über caching für weitere Informationen. Als optionalen dritten Parameter können Sie eine 'compile_id' übergeben. Dies ist wertvoll, falls Sie verschiedene Versionen eines Templates kompilieren wollen - zum Beispiel in verschiedenen Sprachen. 'compile_id' wird auch verwendet, wenn Sie mehr als ein '$template_dir' aber nur ein '$compile_dir' haben. Setzen Sie dazu für jedes Verzeichnis eine eigene 'compile_id', andernfalls werden Templates mit dem gleichen Namen überschrieben. Sie können die Variable $compile_id auch einmalig setzen, anstatt sie bei jedem Aufruf von 'display()' zu übergeben. display (ausgeben) include("Smarty.class.php"); $smarty = new Smarty; $smarty->caching = true; // Datenbank-Aufrufe nur durchführen, wenn kein Cache existiert if(!$smarty->is_cached("index.tpl")) { // Beispieldaten $address = "245 N 50th"; $db_data = array( "City" => "Lincoln", "State" => "Nebraska", "Zip" = > "68502" ); $smarty->assign("Name","Fred"); $smarty->assign("Address",$address); $smarty->assign($db_data); } // Ausgabe $smarty->display("index.tpl"); Verwenden Sie die Syntax von template resources um Dateien ausserhalb von '$template_dir' zu verwenden. Beispiele von Template-Ressourcen für 'display()' // absoluter Dateipfad $smarty->display("/usr/local/include/templates/header.tpl"); // absoluter Dateipfad (alternativ) $smarty->display("file:/usr/local/include/templates/header.tpl"); // absoluter Dateipfad unter Windows (MUSS mit 'file:'-Prefix versehen werden) $smarty->display("file:C:/www/pub/templates/header.tpl"); // aus der Template-Ressource 'db' einbinden $smarty->display("db:header.tpl"); fetch string fetch string template string cache_id string compile_id Gibt die Ausgabe des Template zurück, anstatt es direkt anzuzeigen. Übergeben Sie einen gültigen Template Ressource-Typ und -Pfad. Als optionaler zweiter Parameter kann eine 'cache_id' übergeben werden. Bitte konsultieren Sie den Abschnitt über caching für weitere Informationen. Als optionalen dritten Parameter können Sie eine 'compile_id' übergeben. Dies ist wertvoll, falls Sie verschiedene Versionen eines Templates kompilieren wollen - zum Beispiel in verschiedenen Sprachen. 'compile_id' wird auch verwendet, wenn Sie mehr als ein '$template_dir' aber nur ein '$compile_dir' haben. Setzen Sie dann für jedes Verzeichnis eine eigene 'compile_id', andernfalls werden Templates mit dem gleichen Namen überschrieben. Sie können die Variable $compile_id auch einmalig setzen, anstatt sie bei jedem Aufruf von 'fetch()' zu übergeben. fetch include("Smarty.class.php"); $smarty = new Smarty; $smarty->caching = true; // Datenbank-Aufrufe nur durchführen, wenn kein Cache existiert if(!$smarty->is_cached("index.tpl")) { // Beispieldaten $address = "245 N 50th"; $db_data = array( "City" => "Lincoln", "State" => "Nebraska", "Zip" = > "68502" ); $smarty->assign("Name","Fred"); $smarty->assign("Address",$address); $smarty->assign($db_data); } // Ausgabe abfangen $output = $smarty->fetch("index.tpl"); // Etwas mit $output anstellen echo $output; get_template_vars (Template-Variablen extrahieren) array get_template_vars Gibt ein Array der zugewiesenen Template-Variablen zurück. get_template_vars (Template-Variablen extrahieren) // alle zugewiesenen Template-Variablen extrahieren $tpl_vars = $smarty->get_template_vars(); // Anschauen var_dump($tpl_vars); is_cached (gecachte Version existiert) void is_cached string template [string cache_id] Gibt 'true' zurück, wenn ein gültiger Cache für das angegebene Template existiert. Dies funktioniert nur, wenn caching eingeschaltet ist. is_cached $smarty->caching = true; if(!$smarty->is_cached("index.tpl")) { // Datenbank-Abfragen, Variablen zuweisen... } $smarty->display("index.tpl"); Als optionalen zweiten Parameter können Sie die 'cache_id' übergeben, falls Sie mehrere Caches für ein Template verwenden. 'is_cached' bei mehreren Template-Caches $smarty->caching = true; if(!$smarty->is_cached("index.tpl", "FrontPage")) { // Datenbank Abfragen, Variablen zuweisen... } $smarty->display("index.tpl","FrontPage"); load_filter (Filter laden) void load_filter string type string name Mit dieser Funktion können Filter-Plugins geladen werden. Der erste Parameter definiert den Filter-Typ und kann einen der folgenden Werte haben: 'pre', 'post', oder 'output'. Als zweiter Parameter wird der Name des Filter-Plugins angegeben, zum Beispiel 'trim'. Filter-Plugins laden $smarty->load_filter('pre', 'trim'); // lade den 'pre'-Filter (Vor-Filter) namens 'trim' $smarty->load_filter('pre', 'datefooter'); // lade einen zweiten Vor-Filter namens 'datefooter' $smarty->load_filter('output', 'compress'); // lade den 'output'-Filter (Ausgabe-Filter) namens 'compress' register_block (Block-Funktion registrieren) void register_block string name mixed impl bool cacheable array or null cache_attrs Wird verwendet, um Block-Funktion-Plugins dynamisch zu registrieren. Übergeben Sie dazu den Namen der Block-Funktion und den Namen der PHP-Callback-Funktion, die die entsprechende Funktionalität bereitstellt. Der Parameter impl kann als (a) einen Funktionnamen oder (b) einem Array der Form array(&$object, $method), wobei &$object eine Referenz zu einem Objekt und $method der Name der Methode die aufgerufen werden soll ist, oder als Array der Form array(&$class, $method), wobei $class der Name der Klasse und $method der Name der Methode ist die aufgerufen werden soll, übergeben werden. $cacheable und $cache_attrs können in den meisten Fällen weggelassen werden. Konsultieren Sie Die Ausgabe von cachebaren Plugins Kontrollieren für weitere Informationen. register_block (Block-Funktion registrieren) /* PHP */ $smarty->register_block("translate", "do_translation"); function do_translation ($params, $content, &$smarty, &$repeat) { if (isset($content)) { $lang = $params['lang']; // übersetze den Inhalt von '$content' return $translation; } } {* template *} {translate lang="br"} Hello, world! {/translate} register_compiler_function (Compiler-Funktion registrieren) void register_compiler_function string name mixed impl bool cacheable Wird verwendet, um Compiler-Funktion-Plugins dynamisch zu registrieren. Übergeben Sie dazu den Namen der Compiler-Funktion und den Namen der PHP-Funktion, die die entsprechende Funktionalität bereitstellt. Der Parameter impl kann als (a) einen Funktionnamen oder (b) einem Array der Form array(&$object, $method), wobei &$object eine Referenz zu einem Objekt und $method der Name der Methode die aufgerufen werden soll ist, oder als Array der Form array(&$class, $method), wobei $class der Name der Klasse und $method der Name der Methode ist die aufgerufen werden soll, übergeben werden. $cacheable und $cache_attrs können in den meisten Fällen weggelassen werden. Konsultieren Sie Die Ausgabe von cachebaren Plugins Kontrollieren für weitere Informationen. register_function (Funktion registrieren) void register_function string name mixed impl bool cacheable array or null cache_attrs Wird verwendet, um Template-Funktion-Plugins dynamisch zu registrieren. Übergeben Sie dazu den Namen der Template-Funktion und den Namen der PHP-Funktion, die die entsprechende Funktionalität bereitstellt. Der Parameter impl kann als (a) einen Funktionnamen oder (b) einem Array der Form array(&$object, $method), wobei &$object eine Referenz zu einem Objekt und $method der Name der Methode die aufgerufen werden soll ist, oder als Array der Form array(&$class, $method), wobei $class der Name der Klasse und $method der Name der Methode ist die aufgerufen werden soll, übergeben werden. $cacheable und $cache_attrs können in den meisten Fällen weggelassen werden. Konsultieren Sie Die Ausgabe von cachebaren Plugins Kontrollieren für weitere Informationen. register_function (Funktion registrieren) $smarty->register_function("date_now", "print_current_date"); function print_current_date ($params) { extract($params); if(empty($format)) $format="%b %e, %Y"; return strftime($format,time()); } // Von nun an können Sie {date_now} verwenden, um das aktuelle Datum auszugeben. // Oder {date_now format="%Y/%m/%d"}, wenn Sie es formatieren wollen. register_modifier (Modifikator-Plugin registrieren) void register_modifier string name mixed impl Wird verwendet, um Modifikator-Plugins dynamisch zu registrieren. Übergeben Sie dazu den Namen der Modifikator-Funktion und den Namen der PHP-Funktion, die die entsprechende Funktionalität bereitstellt. Der Parameter impl kann als (a) einen Funktionnamen oder (b) einem Array der Form array(&$object, $method), wobei &$object eine Referenz zu einem Objekt und $method der Name der Methode die aufgerufen werden soll ist, oder als Array der Form array(&$class, $method), wobei $class der Name der Klasse und $method der Name der Methode ist die aufgerufen werden soll, übergeben werden. register_modifier (Modifikator-Plugin registrieren) // PHP's 'stripslashes()'-Funktion als Smarty Modifikator registrieren $smarty->register_modifier("sslash", "stripslashes"); // Von nun an können Sie {$var|sslash} verwenden, // um "\"-Zeichen (Backslash) aus Zeichenketten zu entfernen. ('\\' wird zu '\',...) register_object void register_object string object_name object $object array allowed methods/properties boolean format array block methods Wird verwendet um ein Objekt zu registrieren. Konsultieren Sie den Abschnitt Objekte für weitere Informationen und Beispiele. register_outputfilter (Ausgabefilter registrieren) void register_outputfilter mixed function Verwenden Sie diese Funktion um dynamisch Ausgabefilter zu registrieren, welche die Template Ausgabe verarbeiten bevor sie angezeigt wird. Konsultieren Sie den Abschnitt über Ausgabefilter für mehr Informationen. Der Parameter function kann als (a) einen Funktionnamen oder (b) einem Array der Form array(&$object, $method), wobei &$object eine Referenz zu einem Objekt und $method der Name der Methode die aufgerufen werden soll ist, oder als Array der Form array(&$class, $method), wobei $class der Name der Klasse und $method der Name der Methode ist die aufgerufen werden soll, übergeben werden. register_postfilter ('post'-Filter registrieren) void register_postfilter mixed function Wird verwendet, um 'post'-Filter dynamisch zu registrieren. 'post'-Filter werden auf das kompilierte Template angewendet. Konsultieren Sie dazu den Abschnitt template postfilters. Der Parameter function kann als (a) einen Funktionnamen oder (b) einem Array der Form array(&$object, $method), wobei &$object eine Referenz zu einem Objekt und $method der Name der Methode die aufgerufen werden soll ist, oder als Array der Form array(&$class, $method), wobei $class der Name der Klasse und $method der Name der Methode ist die aufgerufen werden soll, übergeben werden. register_prefilter ('pre'-Filter registrieren) void register_prefilter mixed function Wird verwendet, um 'pre'-Filter dynamisch zu registrieren. 'pre'-Filter werden vor der Kompilierung auf das Template angewendet. Konsultieren Sie dazu den Abschnitt 'pre'-Filter. Der Parameter function kann als (a) einen Funktionnamen oder (b) einem Array der Form array(&$object, $method), wobei &$object eine Referenz zu einem Objekt und $method der Name der Methode die aufgerufen werden soll ist, oder als Array der Form array(&$class, $method), wobei $class der Name der Klasse und $method der Name der Methode ist die aufgerufen werden soll, übergeben werden. register_resource (Ressource registrieren) void register_resource string name array resource_funcs Wird verwendet, um ein Ressource-Plugin dynamisch zu registrieren. Übergeben Sie dazu den Ressourcen-Namen und das Array mit den Namen der PHP-Funktionen, die die Funktionalität implementieren. Konsultieren Sie den Abschnitt template resources für weitere Informationen zum Thema. Technische Bemerkung Ein Ressourcename muss mindestens 2 Zeichen lang sein. Namen mit einem (1) Zeichen werden ignoriert und als Teil des Pfades verwenden, wie in $smarty->display('c:/path/to/index.tpl');. Der Parameter resource_funcs muss aus 4 oder 5 Elementen bestehen. Wenn 4 Elemente übergeben werden, werden diese als Ersatz Callback-Funktionen fü "source", "timestamp", "secure" und "trusted" verwendet. Mit 5 Elementen muss der erste Parameter eine Referenz auf das Objekt oder die Klasse sein, welche die benötigten Methoden bereitstellt. register_resource (Ressource registrieren) $smarty->register_resource("db", array("db_get_template", "db_get_timestamp", "db_get_secure", "db_get_trusted")); trigger_error (Fehler auslösen) void trigger_error string error_msg [int level] Wird verwendet, um eine Fehlermeldung via Smarty auszugeben. Der level-Parameter kann alle Werte der 'trigger_error()'-PHP-Funktion haben, zum Beispiel E_USER_NOTICE, E_USER_WARNING, usw. Voreingestellt ist E_USER_WARNING. template_exists (Template existiert) bool template_exists string template Diese Funktion prüft, ob das angegebene Template existiert. Als Parameter können entweder ein Pfad im Dateisystem oder eine Ressource übergeben werden. unregister_block (Block-Funktion deaktivieren) void unregister_block string name Wird verwendet, um registrierte Block-Funktionen auszuschalten. Übergeben Sie dazu den Namen der Block-Funktion. unregister_compiler_function (Compiler-Funktion deaktivieren) void unregister_compiler_function string name Wird verwendet, um registrierte Compiler-Funktionen auszuschalten. Übergeben Sie dazu den Funktionsnamen der Compiler-Funktion. unregister_function (Template-Funktion deaktivieren) void unregister_function string name Wird verwendet, um registrierte Template-Funktionen auszuschalten. Übergeben Sie dazu den Namen der Template-Funktion. unregister_function // Template-Designer sollen keinen Zugriff auf das Dateisystem haben $smarty->unregister_function("fetch"); unregister_modifier (Modifikator deaktivieren) void unregister_modifier string name Wird verwendet, um registrierte Variablen-Modifikatoren auszuschalten. Übergeben Sie dazu den Modifikator-Namen. unregister_modifier // Verhindern, dass Template-Designer 'strip_tags' anwenden $smarty->unregister_modifier("strip_tags"); unregister_outputfilter (Ausgabefilter deaktivieren) void unregister_outputfilter string function_name Wird verwendet, um registrierte Ausgabefilter auszuschalten. unregister_postfilter ('post'-Filter deaktivieren) void unregister_postfilter string function_name Wird verwendet, um registrierte 'post'-Filter auszuschalten. unregister_prefilter ('pre'-Filter deaktiviern) void unregister_prefilter string function_name Wird verwendet, um registrierte 'pre'-Filter auszuschalten. unregister_resource (Ressource deaktivieren) void unregister_resource string name Wird verwendet, um registrierte Ressourcen auszuschalten. Übergeben Sie dazu den Namen der Ressource. unregister_resource (Ressource deaktivieren) $smarty->unregister_resource("db");