Methodenappend (anhängen)void appendmixed varvoid appendstring varnamemixed 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_refstring varnamemixed 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 assignmixed varvoid assignstring varnamemixed 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_refstring varnamemixed 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_cacheint 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_assignstring 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_cachestring templatestring cache idstring compile idint 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_tplstring 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 displaystring templatestring cache_idstring 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");fetchstring fetchstring templatestring cache_idstring 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_cachedstring 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_filterstring typestring 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_blockstring namemixed implbool cacheablearray 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_functionstring namemixed implbool 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_functionstring namemixed implbool cacheablearray 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_modifierstring namemixed 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_objectvoid register_objectstring object_nameobject $objectarray allowed methods/propertiesboolean formatarray 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_outputfiltermixed 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_postfiltermixed 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_prefiltermixed 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_resourcestring namearray 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_errorstring 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_existsstring 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_blockstring 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_functionstring name
Wird verwendet, um registrierte Compiler-Funktionen auszuschalten.
Übergeben Sie dazu den Funktionsnamen der Compiler-Funktion.
unregister_function (Template-Funktion deaktivieren)void unregister_functionstring 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_modifierstring 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_outputfilterstring function_name
Wird verwendet, um registrierte Ausgabefilter auszuschalten.
unregister_postfilter ('post'-Filter deaktivieren)void unregister_postfilterstring function_name
Wird verwendet, um registrierte 'post'-Filter auszuschalten.
unregister_prefilter ('pre'-Filter deaktiviern)void unregister_prefilterstring function_name
Wird verwendet, um registrierte 'pre'-Filter auszuschalten.
unregister_resource (Ressource deaktivieren)void unregister_resourcestring name
Wird verwendet, um registrierte Ressourcen auszuschalten.
Übergeben Sie dazu den Namen der Ressource.
unregister_resource (Ressource deaktivieren)
$smarty->unregister_resource("db");