2004-03-28 15:20:52 +00:00
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<chapter id= "api.functions" >
<title > Methoden</title>
<sect1 id= "api.append" >
<title > append (anhä ngen)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > append</function> </funcdef>
<paramdef > mixed <parameter > var</parameter> </paramdef>
</funcprototype>
<funcprototype >
<funcdef > void <function > append</function> </funcdef>
<paramdef > string <parameter > varname</parameter> </paramdef>
<paramdef > mixed <parameter > var</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
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.
</para>
<example >
<title > append (anhä ngen)</title>
<programlisting >
// Namen/Wert-Paare ü bergeben
$smarty->append("Name","Fred");
$smarty->append("Address",$address);
// assoziatives Array ü bergeben
$smarty->append(array("city" => "Lincoln","state" => "Nebraska"));</programlisting>
</example>
</sect1>
<sect1 id= "api.append.by.ref" >
<title > append_by_ref (via Referenz anhä ngen)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > append_by_ref</function> </funcdef>
<paramdef > string <parameter > varname</parameter> </paramdef>
<paramdef > mixed <parameter > var</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
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.
</para>
<note >
<title > Technische Bemerkung</title>
<para >
'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.
</para>
</note>
<example >
<title > append_by_ref (via Referenz anhä ngen)</title>
<programlisting >
// Namen/Wert-Paare ü bergeben
$smarty->append_by_ref("Name",$myname);
$smarty->append_by_ref("Address",$address);</programlisting>
</example>
</sect1>
<sect1 id= "api.assign" >
<title > assign (zuweisen)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > assign</function> </funcdef>
<paramdef > mixed <parameter > var</parameter> </paramdef>
</funcprototype>
<funcprototype >
<funcdef > void <function > assign</function> </funcdef>
<paramdef > string <parameter > varname</parameter> </paramdef>
<paramdef > mixed <parameter > var</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Wird verwendet, um einem Template Werte zuzuweisen. Sie kö nnen
entweder Namen/Wert-Paare oder ein assoziatives Array
mit Namen/Wert-Paaren ü bergeben.
</para>
<example >
<title > assign</title>
<programlisting >
// 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"));</programlisting>
</example>
</sect1>
<sect1 id= "api.assign.by.ref" >
<title > assign_by_ref (via Referenz zuweisen)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > assign_by_ref</function> </funcdef>
<paramdef > string <parameter > varname</parameter> </paramdef>
<paramdef > mixed <parameter > var</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
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.
</para>
<note >
<title > Technical Note</title>
<para >
'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.
</para>
</note>
<example >
<title > assign_by_ref (via Referenz zuweisen)</title>
<programlisting >
// Namen/Wert-Paare ü bergeben
$smarty->assign_by_ref("Name",$myname);
$smarty->assign_by_ref("Address",$address);</programlisting>
</example>
</sect1>
<sect1 id= "api.clear.all.assign" >
<title > clear_all_assign (alle Zuweisungen lö schen)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > clear_all_assign</function> </funcdef>
<paramdef > <parameter > </parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Lö scht die Werte aller zugewiesenen Variablen.
</para>
<example >
<title > clear_all_assign (alle Zuweisungen lö schen)</title>
<programlisting >
// lö sche alle zugewiesenen Variablen
$smarty->clear_all_assign();</programlisting>
</example>
</sect1>
<sect1 id= "api.clear.all.cache" >
<title > clear_all_cache (Cache vollstä ndig leeren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > clear_all_cache</function> </funcdef>
<paramdef > int <parameter > expire time</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
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.
</para>
<example >
<title > clear_all_cache (Cache vollstä ndig leeren)</title>
<programlisting >
// leere den gesamten cache
$smarty->clear_all_cache();</programlisting>
</example>
</sect1>
<sect1 id= "api.clear.assign" >
<title > clear_assign (lö sche Zuweisung)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > clear_assign</function> </funcdef>
<paramdef > string <parameter > var</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Lö scht den Wert einer oder mehrerer (ü bergabe als Array) zugewiesener Variablen.
</para>
<example >
<title > clear_assign (lö sche Zuweisung)</title>
<programlisting >
// lö sche eine einzelne Variable
$smarty->clear_assign("Name");
// lö sche mehrere Variablen
$smarty->clear_assign(array("Name","Address","Zip"));</programlisting>
</example>
</sect1>
<sect1 id= "api.clear.cache" >
<title > clear_cache (leere Cache)</title>
2004-03-28 15:45:40 +00:00
<methodsynopsis >
<type > void</type> <methodname > clear_cache</methodname>
<methodparam choice= "opt" > <type > string</type> <parameter > template</parameter> </methodparam>
<methodparam choice= "opt" > <type > string</type> <parameter > cache id</parameter> </methodparam>
<methodparam choice= "opt" > <type > string</type> <parameter > compile id</parameter> </methodparam>
2004-03-31 17:02:11 +00:00
<methodparam choice= "opt" > <type > int</type> <parameter > expire time</parameter> </methodparam>
2004-03-28 15:45:40 +00:00
</methodsynopsis>
2004-03-28 15:20:52 +00:00
<para >
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
<link linkend= "caching" > caching</link> . Als vierten Parameter kö nnen Sie
ein Mindestalter in Sekunden angeben, das ein Cache aufweisen muss,
bevor er gelö scht wird.
</para>
<example >
<title > clear_cache (Cache leeren)</title>
<programlisting >
// 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");</programlisting>
</example>
</sect1>
<sect1 id= "api.clear.compiled.tpl" >
<title > clear_compiled_tpl (kompiliertes Template lö schen)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > clear_compiled_tpl</function> </funcdef>
<paramdef > string <parameter > tpl_file</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
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.
</para>
<example >
<title > clear_compiled_tpl (kompiliertes Template lö schen)</title>
<programlisting >
// ein bestimmtes kompiliertes Template lö schen
$smarty->clear_compiled_tpl("index.tpl");
// das gesamte Kompilier-Verzeichnis lö schen
$smarty->clear_compiled_tpl();</programlisting>
</example>
</sect1>
<sect1 id= "api.display" >
<title > display (ausgeben)</title>
2004-03-28 15:45:40 +00:00
<methodsynopsis >
<type > void</type> <methodname > display</methodname>
<methodparam > <type > string</type> <parameter > template</parameter> </methodparam>
<methodparam choice= "opt" > <type > string</type> <parameter > cache_id</parameter> </methodparam>
<methodparam choice= "opt" > <type > string</type> <parameter > compile_id</parameter> </methodparam>
</methodsynopsis>
2004-03-28 15:20:52 +00:00
<para >
Gibt ein Template aus. Sie mü ssen einen gü ltigen
<link linkend= "template.resources" > Template Ressourcen</link> -Typ
inklusive Pfad angeben. Als optionalen zweiten Parameter kö nnen
Sie eine 'cache_id' ü bergeben. Konsultieren
Sie den Abschnitt ü ber <link linkend= "caching" > caching</link> fü r weitere Informationen.
</para>
<para >
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 <link linkend= "variable.compile.id" > $compile_id</link>
auch einmalig setzen, anstatt sie bei jedem Aufruf von 'display()' zu ü bergeben.
</para>
<example >
<title > display (ausgeben)</title>
<programlisting >
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");</programlisting>
</example>
<para >
Verwenden Sie die Syntax von <link linkend= "template.resources" > template resources</link>
um Dateien ausserhalb von '$template_dir' zu verwenden.
</para>
<example >
<title > Beispiele von Template-Ressourcen fü r 'display()'</title>
<programlisting >
// 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");</programlisting>
</example>
</sect1>
<sect1 id= "api.fetch" >
<title > fetch</title>
2004-03-28 15:45:40 +00:00
<methodsynopsis >
<type > string</type> <methodname > fetch</methodname>
<methodparam > <type > string</type> <parameter > template</parameter> </methodparam>
<methodparam choice= "opt" > <type > string</type> <parameter > cache_id</parameter> </methodparam>
<methodparam choice= "opt" > <type > string</type> <parameter > compile_id</parameter> </methodparam>
</methodsynopsis>
2004-03-28 15:20:52 +00:00
<para >
Gibt die Ausgabe des Template zurü ck, anstatt es direkt anzuzeigen. Ü bergeben Sie
einen gü ltigen <link linkend= "template.resources" > Template Ressource</link> -Typ
und -Pfad. Als optionaler zweiter Parameter kann eine 'cache_id' ü bergeben werden.
Bitte konsultieren Sie den Abschnitt ü ber <link linkend= "caching" > caching </link>
fü r weitere Informationen.
</para>
<para >
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 <link linkend= "variable.compile.id" > $compile_id</link>
auch einmalig setzen, anstatt sie bei jedem Aufruf von 'fetch()' zu ü bergeben.
</para>
<example >
<title > fetch</title>
<programlisting >
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;</programlisting>
</example>
</sect1>
<sect1 id= "api.get.template.vars" >
<title > get_template_vars (Template-Variablen extrahieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > array <function > get_template_vars</function> </funcdef>
<paramdef > <parameter > </parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Gibt ein Array der zugewiesenen Template-Variablen zurü ck.
</para>
<example >
<title > get_template_vars (Template-Variablen extrahieren)</title>
<programlisting >
// alle zugewiesenen Template-Variablen extrahieren
$tpl_vars = $smarty->get_template_vars();
// Anschauen
var_dump($tpl_vars);</programlisting>
</example>
</sect1>
<sect1 id= "api.is.cached" >
<title > is_cached (gecachte Version existiert)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > is_cached</function> </funcdef>
<paramdef > string <parameter > template</parameter> </paramdef>
<paramdef > [string <parameter > cache_id</parameter> ]</paramdef>
</funcprototype>
</funcsynopsis>
<para >
Gibt 'true' zurü ck, wenn ein gü ltiger Cache fü r das angegebene Template existiert.
Dies funktioniert nur, wenn <link linkend= "variable.caching" > caching</link> eingeschaltet ist.
</para>
<example >
<title > is_cached</title>
<programlisting >
$smarty->caching = true;
if(!$smarty->is_cached("index.tpl")) {
// Datenbank-Abfragen, Variablen zuweisen...
}
$smarty->display("index.tpl");</programlisting>
</example>
<para >
Als optionalen zweiten Parameter kö nnen Sie die 'cache_id' ü bergeben,
falls Sie mehrere Caches fü r ein Template verwenden.
</para>
<example >
<title > 'is_cached' bei mehreren Template-Caches</title>
<programlisting >
$smarty->caching = true;
if(!$smarty->is_cached("index.tpl", "FrontPage")) {
// Datenbank Abfragen, Variablen zuweisen...
}
$smarty->display("index.tpl","FrontPage");</programlisting>
</example>
</sect1>
<sect1 id= "api.load.filter" >
<title > load_filter (Filter laden)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > load_filter</function> </funcdef>
<paramdef > string <parameter > type</parameter> </paramdef>
<paramdef > string <parameter > name</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
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'.
</para>
<example >
<title > Filter-Plugins laden</title>
<programlisting >
$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'</programlisting>
</example>
</sect1>
<sect1 id= "api.register.block" >
<title > register_block (Block-Funktion registrieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > register_block</function> </funcdef>
<paramdef > string <parameter > name</parameter> </paramdef>
<paramdef > mixed <parameter > impl</parameter> </paramdef>
<paramdef > bool <parameter > cacheable</parameter> </paramdef>
<paramdef > array or null <parameter > cache_attrs</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
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.
</para>
<para >
Der Parameter <parameter > impl</parameter> kann als (a) einen Funktionnamen oder (b) einem Array der Form <literal > array(& $object, $method)</literal> ,
wobei <literal > & $object</literal> eine Referenz zu einem Objekt und <literal > $method</literal> der Name der Methode die aufgerufen werden soll ist,
oder als Array der Form <literal > array(& $class, $method)</literal> , wobei <literal > $class</literal> der Name der Klasse und <literal > $method</literal>
der Name der Methode ist die aufgerufen werden soll, ü bergeben werden.
</para>
<para >
<parameter > $cacheable</parameter> und <parameter > $cache_attrs</parameter> kö nnen in den meisten Fä llen weggelassen werden. Konsultieren Sie <link linkend= "caching.cacheable" > Die Ausgabe von cachebaren Plugins Kontrollieren</link> fü r weitere Informationen.
</para>
<example >
<title > register_block (Block-Funktion registrieren)</title>
<programlisting >
/* 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}</programlisting>
</example>
</sect1>
<sect1 id= "api.register.compiler.function" >
<title > register_compiler_function (Compiler-Funktion registrieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > register_compiler_function</function> </funcdef>
<paramdef > string <parameter > name</parameter> </paramdef>
<paramdef > mixed <parameter > impl</parameter> </paramdef>
<paramdef > bool <parameter > cacheable</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
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.
</para>
<para >
Der Parameter <parameter > impl</parameter> kann als (a) einen Funktionnamen oder (b) einem Array der Form <literal > array(& $object, $method)</literal> ,
wobei <literal > & $object</literal> eine Referenz zu einem Objekt und <literal > $method</literal> der Name der Methode die aufgerufen werden soll ist,
oder als Array der Form <literal > array(& $class, $method)</literal> , wobei <literal > $class</literal> der Name der Klasse und <literal > $method</literal>
der Name der Methode ist die aufgerufen werden soll, ü bergeben werden.
</para>
<para >
<parameter > $cacheable</parameter> und <parameter > $cache_attrs</parameter> kö nnen in den meisten Fä llen weggelassen werden. Konsultieren Sie <link linkend= "caching.cacheable" > Die Ausgabe von cachebaren Plugins Kontrollieren</link> fü r weitere Informationen.
</para>
</sect1>
<sect1 id= "api.register.function" >
<title > register_function (Funktion registrieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > register_function</function> </funcdef>
<paramdef > string <parameter > name</parameter> </paramdef>
<paramdef > mixed <parameter > impl</parameter> </paramdef>
<paramdef > bool <parameter > cacheable</parameter> </paramdef>
<paramdef > array or null <parameter > cache_attrs</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
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.
</para>
<para >
Der Parameter <parameter > impl</parameter> kann als (a) einen Funktionnamen oder (b) einem Array der Form <literal > array(& $object, $method)</literal> ,
wobei <literal > & $object</literal> eine Referenz zu einem Objekt und <literal > $method</literal> der Name der Methode die aufgerufen werden soll ist,
oder als Array der Form <literal > array(& $class, $method)</literal> , wobei <literal > $class</literal> der Name der Klasse und <literal > $method</literal>
der Name der Methode ist die aufgerufen werden soll, ü bergeben werden.
</para>
<para >
<parameter > $cacheable</parameter> und <parameter > $cache_attrs</parameter> kö nnen in den meisten Fä llen weggelassen werden. Konsultieren Sie <link linkend= "caching.cacheable" > Die Ausgabe von cachebaren Plugins Kontrollieren</link> fü r weitere Informationen.
</para>
<example >
<title > register_function (Funktion registrieren)</title>
<programlisting >
$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.</programlisting>
</example>
</sect1>
<sect1 id= "api.register.modifier" >
<title > register_modifier (Modifikator-Plugin registrieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > register_modifier</function> </funcdef>
<paramdef > string <parameter > name</parameter> </paramdef>
<paramdef > mixed <parameter > impl</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
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.
</para>
<para >
Der Parameter <parameter > impl</parameter> kann als (a) einen Funktionnamen oder (b) einem Array der Form <literal > array(& $object, $method)</literal> ,
wobei <literal > & $object</literal> eine Referenz zu einem Objekt und <literal > $method</literal> der Name der Methode die aufgerufen werden soll ist,
oder als Array der Form <literal > array(& $class, $method)</literal> , wobei <literal > $class</literal> der Name der Klasse und <literal > $method</literal>
der Name der Methode ist die aufgerufen werden soll, ü bergeben werden.
</para>
<example >
<title > register_modifier (Modifikator-Plugin registrieren)</title>
<programlisting >
// 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 '\',...)</programlisting>
</example>
</sect1>
<sect1 id= "api.register.object" >
<title > register_object</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > register_object</function> </funcdef>
<paramdef > string <parameter > object_name</parameter> </paramdef>
<paramdef > object <parameter > $object</parameter> </paramdef>
<paramdef > array <parameter > allowed methods/properties</parameter> </paramdef>
<paramdef > boolean <parameter > format</parameter> </paramdef>
<paramdef > array <parameter > block methods</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Wird verwendet um ein Objekt zu registrieren. Konsultieren Sie den Abschnitt <link linkend= "advanced.features.objects" > Objekte</link>
fü r weitere Informationen und Beispiele.
</para>
</sect1>
<sect1 id= "api.register.outputfilter" >
<title > register_outputfilter (Ausgabefilter registrieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > register_outputfilter</function> </funcdef>
<paramdef > mixed <parameter > function</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Verwenden Sie diese Funktion um dynamisch Ausgabefilter zu registrieren, welche
die Template Ausgabe verarbeiten bevor sie angezeigt wird. Konsultieren Sie
den Abschnitt ü ber <link linkend= "advanced.features.outputfilters" > Ausgabefilter</link>
fü r mehr Informationen.
</para>
<para >
Der Parameter <parameter > function</parameter> kann als (a) einen Funktionnamen oder (b) einem Array der Form <literal > array(& $object, $method)</literal> ,
wobei <literal > & $object</literal> eine Referenz zu einem Objekt und <literal > $method</literal> der Name der Methode die aufgerufen werden soll ist,
oder als Array der Form <literal > array(& $class, $method)</literal> , wobei <literal > $class</literal> der Name der Klasse und <literal > $method</literal>
der Name der Methode ist die aufgerufen werden soll, ü bergeben werden.
</para>
</sect1>
<sect1 id= "api.register.postfilter" >
<title > register_postfilter ('post'-Filter registrieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > register_postfilter</function> </funcdef>
<paramdef > mixed <parameter > function</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Wird verwendet, um 'post'-Filter dynamisch zu registrieren. 'post'-Filter werden
auf das kompilierte Template angewendet. Konsultieren Sie dazu den
Abschnitt <link linkend= "advanced.features.postfilters" > template postfilters</link> .
</para>
<para >
Der Parameter <parameter > function</parameter> kann als (a) einen Funktionnamen oder (b) einem Array der Form <literal > array(& $object, $method)</literal> ,
wobei <literal > & $object</literal> eine Referenz zu einem Objekt und <literal > $method</literal> der Name der Methode die aufgerufen werden soll ist,
oder als Array der Form <literal > array(& $class, $method)</literal> , wobei <literal > $class</literal> der Name der Klasse und <literal > $method</literal>
der Name der Methode ist die aufgerufen werden soll, ü bergeben werden.
</para>
</sect1>
<sect1 id= "api.register.prefilter" >
<title > register_prefilter ('pre'-Filter registrieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > register_prefilter</function> </funcdef>
<paramdef > mixed <parameter > function</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Wird verwendet, um 'pre'-Filter dynamisch zu registrieren. 'pre'-Filter werden
vor der Kompilierung auf das Template angewendet. Konsultieren Sie dazu den
Abschnitt <link linkend= "advanced.features.prefilters" > 'pre'-Filter</link> .
</para>
<para >
Der Parameter <parameter > function</parameter> kann als (a) einen Funktionnamen oder (b) einem Array der Form <literal > array(& $object, $method)</literal> ,
wobei <literal > & $object</literal> eine Referenz zu einem Objekt und <literal > $method</literal> der Name der Methode die aufgerufen werden soll ist,
oder als Array der Form <literal > array(& $class, $method)</literal> , wobei <literal > $class</literal> der Name der Klasse und <literal > $method</literal>
der Name der Methode ist die aufgerufen werden soll, ü bergeben werden.
</para>
</sect1>
<sect1 id= "api.register.resource" >
<title > register_resource (Ressource registrieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > register_resource</function> </funcdef>
<paramdef > string <parameter > name</parameter> </paramdef>
<paramdef > array <parameter > resource_funcs</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
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 <link linkend= "template.resources" > template resources</link>
fü r weitere Informationen zum Thema.
</para>
<note >
<title > Technische Bemerkung</title>
<para >
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');.
</para>
</note>
<para >
Der Parameter <parameter > resource_funcs</parameter> 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.
</para>
<example >
<title > register_resource (Ressource registrieren)</title>
<programlisting >
$smarty->register_resource("db", array("db_get_template",
"db_get_timestamp",
"db_get_secure",
"db_get_trusted"));</programlisting>
</example>
</sect1>
<sect1 id= "api.trigger.error" >
<title > trigger_error (Fehler auslö sen)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > trigger_error</function> </funcdef>
<paramdef > string <parameter > error_msg</parameter> </paramdef>
<paramdef > [int <parameter > level</parameter> ]</paramdef>
</funcprototype>
</funcsynopsis>
<para >
Wird verwendet, um eine Fehlermeldung via Smarty auszugeben.
Der <parameter > level</parameter> -Parameter kann alle
Werte der 'trigger_error()'-PHP-Funktion haben,
zum Beispiel E_USER_NOTICE, E_USER_WARNING, usw.
Voreingestellt ist E_USER_WARNING.
</para>
</sect1>
<sect1 id= "api.template.exists" >
<title > template_exists (Template existiert)</title>
<funcsynopsis >
<funcprototype >
<funcdef > bool <function > template_exists</function> </funcdef>
<paramdef > string <parameter > template</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Diese Funktion prü ft, ob das angegebene Template existiert. Als Parameter
kö nnen entweder ein Pfad im Dateisystem oder eine Ressource ü bergeben werden.
</para>
</sect1>
<sect1 id= "api.unregister.block" >
<title > unregister_block (Block-Funktion deaktivieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > unregister_block</function> </funcdef>
<paramdef > string <parameter > name</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Wird verwendet, um registrierte Block-Funktionen auszuschalten.
Ü bergeben Sie dazu den Namen der Block-Funktion.
</para>
</sect1>
<sect1 id= "api.unregister.compiler.function" >
<title > unregister_compiler_function (Compiler-Funktion deaktivieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > unregister_compiler_function</function> </funcdef>
<paramdef > string <parameter > name</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Wird verwendet, um registrierte Compiler-Funktionen auszuschalten.
Ü bergeben Sie dazu den Funktionsnamen der Compiler-Funktion.
</para>
</sect1>
<sect1 id= "api.unregister.function" >
<title > unregister_function (Template-Funktion deaktivieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > unregister_function</function> </funcdef>
<paramdef > string <parameter > name</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Wird verwendet, um registrierte Template-Funktionen auszuschalten.
Ü bergeben Sie dazu den Namen der Template-Funktion.
</para>
<example >
<title > unregister_function</title>
<programlisting >
// Template-Designer sollen keinen Zugriff auf das Dateisystem haben
$smarty->unregister_function("fetch");</programlisting>
</example>
</sect1>
<sect1 id= "api.unregister.modifier" >
<title > unregister_modifier (Modifikator deaktivieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > unregister_modifier</function> </funcdef>
<paramdef > string <parameter > name</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Wird verwendet, um registrierte Variablen-Modifikatoren auszuschalten.
Ü bergeben Sie dazu den Modifikator-Namen.
</para>
<example >
<title > unregister_modifier</title>
<programlisting >
// Verhindern, dass Template-Designer 'strip_tags' anwenden
$smarty->unregister_modifier("strip_tags");</programlisting>
</example>
</sect1>
<sect1 id= "api.unregister.outputfilter" >
<title > unregister_outputfilter (Ausgabefilter deaktivieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > unregister_outputfilter</function> </funcdef>
<paramdef > string <parameter > function_name</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Wird verwendet, um registrierte Ausgabefilter auszuschalten.
</para>
</sect1>
<sect1 id= "api.unregister.postfilter" >
<title > unregister_postfilter ('post'-Filter deaktivieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > unregister_postfilter</function> </funcdef>
<paramdef > string <parameter > function_name</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Wird verwendet, um registrierte 'post'-Filter auszuschalten.
</para>
</sect1>
<sect1 id= "api.unregister.prefilter" >
<title > unregister_prefilter ('pre'-Filter deaktiviern)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > unregister_prefilter</function> </funcdef>
<paramdef > string <parameter > function_name</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Wird verwendet, um registrierte 'pre'-Filter auszuschalten.
</para>
</sect1>
<sect1 id= "api.unregister.resource" >
<title > unregister_resource (Ressource deaktivieren)</title>
<funcsynopsis >
<funcprototype >
<funcdef > void <function > unregister_resource</function> </funcdef>
<paramdef > string <parameter > name</parameter> </paramdef>
</funcprototype>
</funcsynopsis>
<para >
Wird verwendet, um registrierte Ressourcen auszuschalten.
Ü bergeben Sie dazu den Namen der Ressource.
</para>
<example >
<title > unregister_resource (Ressource deaktivieren)</title>
<programlisting >
$smarty->unregister_resource("db");</programlisting>
</example>
</sect1>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
2004-03-28 15:45:40 +00:00
-->