german docs: change fileencoding from iso-8859-1 to utf-8

This commit is contained in:
Martin.Filser
2009-01-05 14:17:23 +00:00
parent 2a7cba6b10
commit de34b6b038
49 changed files with 425 additions and 425 deletions

View File

@@ -8,12 +8,12 @@
<sect1 id="tips.blank.var.handling"> <sect1 id="tips.blank.var.handling">
<title>Handhabung unangewiesener Variablen</title> <title>Handhabung unangewiesener Variablen</title>
<para> <para>
Manchmal m<EFBFBD>chten Sie vielleicht, dass anstatt einer Leerstelle ein Manchmal möchten Sie vielleicht, dass anstatt einer Leerstelle ein
Standardwert ausgegeben wird - zum Beispiel um im Standardwert ausgegeben wird - zum Beispiel um im
Tabellenhintergrund "&amp;nbsp;" auszugeben, damit er korrekt Tabellenhintergrund "&amp;nbsp;" auszugeben, damit er korrekt
angezeigt wird. Damit daf<EFBFBD>r keine <link angezeigt wird. Damit dafür keine <link
linkend="language.function.if">{if}</link> Anweisung verwendet linkend="language.function.if">{if}</link> Anweisung verwendet
werden muss, gibt es in Smarty eine Abk<EFBFBD>rzung: die Verwendung des werden muss, gibt es in Smarty eine Abkürzung: die Verwendung des
<emphasis>default</emphasis> Variablen-Modifikators. <emphasis>default</emphasis> Variablen-Modifikators.
</para> </para>
<example> <example>
@@ -28,7 +28,7 @@
{/if} {/if}
{* k<EFBFBD>rzer: *} {* kürzer: *}
{$titel|default:"&nbsp;"} {$titel|default:"&nbsp;"}
]]> ]]>
</programlisting> </programlisting>
@@ -44,10 +44,10 @@
<sect1 id="tips.default.var.handling"> <sect1 id="tips.default.var.handling">
<title>Handhabung von Standardwerten</title> <title>Handhabung von Standardwerten</title>
<para> <para>
Wenn eine Variable in einem Template h<EFBFBD>ufig zum Einsatz kommt, Wenn eine Variable in einem Template häufig zum Einsatz kommt,
kann es ein bisschen st<EFBFBD>rend wirken, den <link kann es ein bisschen störend wirken, den <link
linkend="language.modifier.default"><emphasis>default</emphasis></link>-Modifikator linkend="language.modifier.default"><emphasis>default</emphasis></link>-Modifikator
jedes mal anzuwenden. Sie k<EFBFBD>nnen dies umgehen, indem Sie der jedes mal anzuwenden. Sie können dies umgehen, indem Sie der
Variable mit der <link Variable mit der <link
linkend="language.function.assign">{assign}</link> Funktion einen linkend="language.function.assign">{assign}</link> Funktion einen
Standardwert zuweisen. Standardwert zuweisen.
@@ -59,7 +59,7 @@
{* schreiben sie dieses statement an den Anfang des Templates *} {* schreiben sie dieses statement an den Anfang des Templates *}
{assign var="titel" value=$titel|default:"kein Titel"} {assign var="titel" value=$titel|default:"kein Titel"}
{* falls 'titel' bei der Anweisung leer war, enth<EFBFBD>lt es nun den Wert {* falls 'titel' bei der Anweisung leer war, enthält es nun den Wert
'kein Titel' wenn Sie es ausgeben *} 'kein Titel' wenn Sie es ausgeben *}
{$titel} {$titel}
]]> ]]>
@@ -81,17 +81,17 @@
bindet diese mit<link bindet diese mit<link
linkend="language.function.include">{include}</link> ein. Was linkend="language.function.include">{include}</link> ein. Was
geschieht aber wenn der Header einen seitenspezifischen Titel geschieht aber wenn der Header einen seitenspezifischen Titel
haben soll? Smarty bietet die M<EFBFBD>glichkeit, dem eingebundenen haben soll? Smarty bietet die Möglichkeit, dem eingebundenen
Template, Variablen als <link Template, Variablen als <link
linkend="language.syntax.attributes">Attribute</link> zu linkend="language.syntax.attributes">Attribute</link> zu
<EFBFBD>bergeben. übergeben.
</para> </para>
<example> <example>
<title>Die Titel-Variable dem Header-Template zuweisen</title> <title>Die Titel-Variable dem Header-Template zuweisen</title>
<para> <para>
<filename>mainpage.tpl</filename> - Beim Aufbau der Hauptseite <filename>mainpage.tpl</filename> - Beim Aufbau der Hauptseite
wird der Titel "Hauptseite" an <filename>header.tpl</filename> wird der Titel "Hauptseite" an <filename>header.tpl</filename>
<EFBFBD>bergeben und dort verwendet. übergeben und dort verwendet.
</para> </para>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
@@ -114,7 +114,7 @@
</programlisting> </programlisting>
<para> <para>
<filename>header.tpl</filename> - Zur Info: wenn kein $titel <filename>header.tpl</filename> - Zur Info: wenn kein $titel
<EFBFBD>bergeben wurde wird hier mittels des <link übergeben wurde wird hier mittels des <link
linkend="language.modifier.default">default</link>-Modifikator der linkend="language.modifier.default">default</link>-Modifikator der
Titel "Nachrichten" verwendet. Titel "Nachrichten" verwendet.
</para> </para>
@@ -141,17 +141,17 @@
<sect1 id="tips.dates"> <sect1 id="tips.dates">
<title>Zeitangaben</title> <title>Zeitangaben</title>
<para> <para>
Um dem Template Designer h<EFBFBD>chstm<EFBFBD>gliche Kontrolle <EFBFBD>ber die Ausgabe Um dem Template Designer höchstmögliche Kontrolle über die Ausgabe
von Zeitangaben/Daten zu erm<EFBFBD>glichen, ist es empfehlenswert Daten von Zeitangaben/Daten zu ermöglichen, ist es empfehlenswert Daten
immer als <ulink url="&url.php-manual;time">Timestamp</ulink> zu immer als <ulink url="&url.php-manual;time">Timestamp</ulink> zu
<EFBFBD>bergeben. Der Designer kann danach die Funktion <link übergeben. Der Designer kann danach die Funktion <link
linkend="language.modifier.date.format">date_format</link> f<EFBFBD>r die linkend="language.modifier.date.format">date_format</link> für die
Formatierung verwenden. Formatierung verwenden.
</para> </para>
<para> <para>
Bemerkung: Seit Smarty 1.4.0 ist es m<EFBFBD>glich jede Timestamp zu Bemerkung: Seit Smarty 1.4.0 ist es möglich jede Timestamp zu
<EFBFBD>bergeben, welche mit strtotime() ausgewertet werden kann. Dazu übergeben, welche mit strtotime() ausgewertet werden kann. Dazu
geh<EFBFBD>ren Unix-Timestamps und MySQL-Timestamps. gehören Unix-Timestamps und MySQL-Timestamps.
</para> </para>
<example> <example>
<title>Die Verwendung von date_format</title> <title>Die Verwendung von date_format</title>
@@ -193,8 +193,8 @@ AUSGABE:
Falls <link Falls <link
linkend="language.function.html.select.date">{html_select_date}</link> linkend="language.function.html.select.date">{html_select_date}</link>
in einem Template verwendet wird, hat der Programmierer die in einem Template verwendet wird, hat der Programmierer die
M<EFBFBD>glichkeit den Wert wieder in ein Timestamp-Format zu Möglichkeit den Wert wieder in ein Timestamp-Format zu
<EFBFBD>ndern. Dies kann zum Beispiel wie folgt gemacht werden: ändern. Dies kann zum Beispiel wie folgt gemacht werden:
</para> </para>
<example> <example>
<title>Formular Datum-Elemente nach Timestamp konvertieren</title> <title>Formular Datum-Elemente nach Timestamp konvertieren</title>
@@ -236,10 +236,10 @@ function makeTimeStamp($year="",$month="",$day="")
<title>WAP/WML</title> <title>WAP/WML</title>
<para> <para>
WAP/WML Templates verlangen, dass ein Content-Type Header im WAP/WML Templates verlangen, dass ein Content-Type Header im
Template angegeben wird. Der einfachste Weg um dies zu tun, w<EFBFBD>re, Template angegeben wird. Der einfachste Weg um dies zu tun, wäre,
eine Funktion zu schreiben, welche den Header ausgibt. Falls sie eine Funktion zu schreiben, welche den Header ausgibt. Falls sie
den Caching Mechanismus verwenden, sollten Sie auf das den Caching Mechanismus verwenden, sollten Sie auf das
'insert'-Tag zur<EFBFBD>ckgreifen ('insert'-Tags werden nicht gecached), 'insert'-Tag zurückgreifen ('insert'-Tags werden nicht gecached),
um ein optimales Ergebnis zu erzielen. Achten Sie darauf, dass vor um ein optimales Ergebnis zu erzielen. Achten Sie darauf, dass vor
der Ausgabe des Headers keine Daten an den Client gesendet werden, der Ausgabe des Headers keine Daten an den Client gesendet werden,
da die gesendeten Header-Daten ansonsten von Client verworfen da die gesendeten Header-Daten ansonsten von Client verworfen
@@ -309,24 +309,24 @@ function insert_header($params)
Instanz von Smarty, weisen die Variablen mit <link Instanz von Smarty, weisen die Variablen mit <link
linkend="api.assign">assign()</link> zu und geben das Template mit linkend="api.assign">assign()</link> zu und geben das Template mit
<link linkend="api.display">display()</link> aus. Wenn wir also <link linkend="api.display">display()</link> aus. Wenn wir also
zum Beispiel einen B<EFBFBD>rsenticker in unserem Template haben, stellen zum Beispiel einen Börsenticker in unserem Template haben, stellen
wir die Kursinformationen in unserer Anwendung zusammen, weisen wir die Kursinformationen in unserer Anwendung zusammen, weisen
Sie dem Template zu und geben es aus. W<EFBFBD>re es jedoch nicht nett Sie dem Template zu und geben es aus. Wäre es jedoch nicht nett
diesen B<EFBFBD>rsenticker einfach in ein Template einer anderen diesen Börsenticker einfach in ein Template einer anderen
Applikation einbinden zu k<EFBFBD>nnen ohne deren Programmcode zu <EFBFBD>ndern? Applikation einbinden zu können ohne deren Programmcode zu ändern?
</para> </para>
<para> <para>
Sie k<EFBFBD>nnen PHP-Code mit {php}{/php} in Ihre Templates einbetten. Sie können PHP-Code mit {php}{/php} in Ihre Templates einbetten.
So k<EFBFBD>nnen Sie Templates erstellen, welche die Datenstrukturen zur So können Sie Templates erstellen, welche die Datenstrukturen zur
Anweisung der eigenen Variablen enthalten. Durch die Bindung von Anweisung der eigenen Variablen enthalten. Durch die Bindung von
Template und Logik entsteht so eine eigenst<EFBFBD>ndig lauff<EFBFBD>hige Template und Logik entsteht so eine eigenständig lauffähige
Komponente. Komponente.
</para> </para>
<example> <example>
<title>Template/Script Komponenten</title> <title>Template/Script Komponenten</title>
<para> <para>
<filename>function.load_ticker.php</filename> - <filename>function.load_ticker.php</filename> -
Diese Datei geh<EFBFBD>rt ins <link Diese Datei gehört ins <link
linkend="variable.plugins.dir">$plugins directory</link> linkend="variable.plugins.dir">$plugins directory</link>
</para> </para>
<programlisting role="php"> <programlisting role="php">
@@ -369,8 +369,8 @@ Stock Name: {$ticker.name} Stock Price: {$ticker.price}
<para> <para>
Haben Sie sich auch schon gewundert, wie Ihre E-mail Adresse auf Haben Sie sich auch schon gewundert, wie Ihre E-mail Adresse auf
so viele Spam-Mailinglisten kommt? Ein Weg, wie Spammer E-mail so viele Spam-Mailinglisten kommt? Ein Weg, wie Spammer E-mail
Adressen sammeln, ist <EFBFBD>ber Webseiten. Um dieses Problem zu Adressen sammeln, ist über Webseiten. Um dieses Problem zu
bek<EFBFBD>mpfen, k<EFBFBD>nnen sie den 'mailto'-Plugin verwenden. Er <EFBFBD>ndert bekämpfen, können sie den 'mailto'-Plugin verwenden. Er ändert
die Zeichenfolge mit Javascript so, dass sie im HTML Quellcode die Zeichenfolge mit Javascript so, dass sie im HTML Quellcode
nicht lesbar ist, jedoch von jedem Browser wieder zusammengesetzt nicht lesbar ist, jedoch von jedem Browser wieder zusammengesetzt
werden kann. Den <link werden kann. Den <link
@@ -392,8 +392,8 @@ senden
<title>Technische Details</title> <title>Technische Details</title>
<para> <para>
Die Codierung mit Javascript ist nicht sehr sicher, da ein Die Codierung mit Javascript ist nicht sehr sicher, da ein
m<EFBFBD>glicher Spammer die Decodierung in sein Sammelprogramm möglicher Spammer die Decodierung in sein Sammelprogramm
einbauen k<EFBFBD>nnte. Es wird jedoch damit gerechnet, dass, da einbauen könnte. Es wird jedoch damit gerechnet, dass, da
Aufwand und Ertrag sich nicht decken, dies nicht oft der Fall Aufwand und Ertrag sich nicht decken, dies nicht oft der Fall
ist. ist.
</para> </para>

View File

@@ -5,29 +5,29 @@
<title>Debugging Konsole</title> <title>Debugging Konsole</title>
<para> <para>
Smarty wird mit einer eingebauten Debugging Konsole Smarty wird mit einer eingebauten Debugging Konsole
ausgeliefert. Diese Konsole informiert <EFBFBD>ber die im aufgerufenen ausgeliefert. Diese Konsole informiert über die im aufgerufenen
Template <link Template <link
linkend="language.function.include">eingebundenen</link> Templates, linkend="language.function.include">eingebundenen</link> Templates,
die <link linkend="api.assign">zugewiesenen</link> Variablen und die die <link linkend="api.assign">zugewiesenen</link> Variablen und die
<link <link
linkend="language.config.variables">Konfigurations-Variablen</link>. linkend="language.config.variables">Konfigurations-Variablen</link>.
Die Formatierung der Konsole wird <EFBFBD>ber das Template <link Die Formatierung der Konsole wird über das Template <link
linkend="variable.debug.tpl">debug.tpl</link> gesteuert. Um linkend="variable.debug.tpl">debug.tpl</link> gesteuert. Um
debugging zu aktivieren, setzten Sie <link debugging zu aktivieren, setzten Sie <link
linkend="variable.debugging">$debugging</link> auf 'true' und (falls linkend="variable.debugging">$debugging</link> auf 'true' und (falls
n<EFBFBD>tig) <EFBFBD>bergeben in <link nötig) übergeben in <link
linkend="variable.debug.tpl">$debug_tpl</link> den Pfad zum linkend="variable.debug.tpl">$debug_tpl</link> den Pfad zum
Debugtemplate (normalerweise <link Debugtemplate (normalerweise <link
linkend="constant.smarty.dir">SMARTY_DIR</link>debug.tpl). Wenn Sie linkend="constant.smarty.dir">SMARTY_DIR</link>debug.tpl). Wenn Sie
danach eine Seite laden, sollte ein Javascript-Fenster ge<EFBFBD>ffnet danach eine Seite laden, sollte ein Javascript-Fenster geöffnet
werden in welchem Sie alle Informationen zur aufgerufenen Seite werden in welchem Sie alle Informationen zur aufgerufenen Seite
finden. Falls Sie die Variablen eines bestimmten Templates ausgeben finden. Falls Sie die Variablen eines bestimmten Templates ausgeben
wollen, k<EFBFBD>nnen Sie dazu die Funktion <link wollen, können Sie dazu die Funktion <link
linkend="language.function.debug">{debug}</link> verwenden. Um linkend="language.function.debug">{debug}</link> verwenden. Um
debugging auszuschalten, k<EFBFBD>nnen Sie <link debugging auszuschalten, können Sie <link
linkend="variable.debugging">$debugging</link> auf 'false' setzen. linkend="variable.debugging">$debugging</link> auf 'false' setzen.
Sie k<EFBFBD>nnen debugging auch tempor<EFBFBD>r aktivieren, in dem Sie der Sie können debugging auch temporär aktivieren, in dem Sie der
aufgerufenen URL SMARTY_DEBUG mit <EFBFBD>bergeben, dies muss jedoch aufgerufenen URL SMARTY_DEBUG mit übergeben, dies muss jedoch
zuerst mit <link zuerst mit <link
linkend="variable.debugging.ctrl">$debugging_ctrl</link> aktiviert linkend="variable.debugging.ctrl">$debugging_ctrl</link> aktiviert
werden. werden.
@@ -35,12 +35,12 @@
<note> <note>
<title>Technische Bemerkung</title> <title>Technische Bemerkung</title>
<para> <para>
Die Debugging Konsole funktioniert nicht f<EFBFBD>r Daten die via <link Die Debugging Konsole funktioniert nicht für Daten die via <link
linkend="api.fetch">fetch()</link> geladen wurden, sondern nur linkend="api.fetch">fetch()</link> geladen wurden, sondern nur
f<EFBFBD>r Daten die via <link linkend="api.display">display()</link> für Daten die via <link linkend="api.display">display()</link>
ausgegeben werden. Die Konsole besteht aus ein paar Zeilen ausgegeben werden. Die Konsole besteht aus ein paar Zeilen
Javascript welche am Ende jeder Seite eingef<EFBFBD>gt werden. Wenn Javascript welche am Ende jeder Seite eingefügt werden. Wenn
Sie Javascript nicht m<EFBFBD>gen, k<EFBFBD>nnen Sie die Ausgabe in Sie Javascript nicht mögen, können Sie die Ausgabe in
'debug.tpl' selbst definieren. Debug-Ausgaben werden nicht gecached 'debug.tpl' selbst definieren. Debug-Ausgaben werden nicht gecached
und Informationen zu 'debug.tpl' selbst werden nicht ausgegeben. und Informationen zu 'debug.tpl' selbst werden nicht ausgegeben.
</para> </para>

View File

@@ -7,10 +7,10 @@
Konfigurationsdateien sind ein praktischer Weg um Template-Variablen Konfigurationsdateien sind ein praktischer Weg um Template-Variablen
aus einer gemeinsamen Datei zu lesen. Ein Beispiel sind die aus einer gemeinsamen Datei zu lesen. Ein Beispiel sind die
Template-Farben. Wenn Sie die Farben einer Applikation anpassen Template-Farben. Wenn Sie die Farben einer Applikation anpassen
wollen, m<EFBFBD>ssen Sie normalerweise alle Templates durcharbeiten, wollen, müssen Sie normalerweise alle Templates durcharbeiten,
und die entsprechenden Werte <EFBFBD>ndern. Mit einer und die entsprechenden Werte ändern. Mit einer
Konfigurationsdatei k<EFBFBD>nnen Sie alle Definitionen in einer Konfigurationsdatei können Sie alle Definitionen in einer
einzigen Datei vornehmen, und somit auch einfach <EFBFBD>ndern. einzigen Datei vornehmen, und somit auch einfach ändern.
</para> </para>
<example> <example>
<title>Beispiel der Konfigurationsdatei-Syntax</title> <title>Beispiel der Konfigurationsdatei-Syntax</title>
@@ -28,9 +28,9 @@ pageTitle = "Customer Info"
[Login] [Login]
pageTitle = "Login" pageTitle = "Login"
focus = "username" focus = "username"
Intro = """Diese Zeile erstreckt sich <EFBFBD>ber Intro = """Diese Zeile erstreckt sich über
mehrere Zeilen, und muss deswegen mehrere Zeilen, und muss deswegen
mit dreifachen Anf<EFBFBD>hrungszeichen mit dreifachen Anführungszeichen
umschlossen werden.""" umschlossen werden."""
# hidden section # hidden section
@@ -43,17 +43,17 @@ pass=foobar
</example> </example>
<para> <para>
<link linkend="language.config.variables">Die Werte in einer <link linkend="language.config.variables">Die Werte in einer
Konfigurationsdatei</link> k<EFBFBD>nnen in einfachen/doppelten Konfigurationsdatei</link> können in einfachen/doppelten
Anf<EFBFBD>hrungszeichen notiert werden. Falls Sie einen Wert haben der Anführungszeichen notiert werden. Falls Sie einen Wert haben der
sich <EFBFBD>ber mehrere Zeilen ausbreitet muss dieser Wert in sich über mehrere Zeilen ausbreitet muss dieser Wert in
dreifachen Anf<EFBFBD>hrungszeichen (""") eingebettet werden. Die dreifachen Anführungszeichen (""") eingebettet werden. Die
Kommentar-Syntax kann frei gew<EFBFBD>hlt werden, solange sie nicht der Kommentar-Syntax kann frei gewählt werden, solange sie nicht der
normalen Syntax entsprechen. Wir empfehlen die Verwendung von normalen Syntax entsprechen. Wir empfehlen die Verwendung von
<literal>#</literal> (Raute) am Anfang jeder Kommentar-Zeile. <literal>#</literal> (Raute) am Anfang jeder Kommentar-Zeile.
</para> </para>
<para> <para>
Dieses Beispiel hat 2 'sections'. 'section'-Namen werden von Dieses Beispiel hat 2 'sections'. 'section'-Namen werden von
[]-Zeichen umschlossen und k<EFBFBD>nnen alle Zeichen ausser []-Zeichen umschlossen und können alle Zeichen ausser
<literal>[</literal> und <literal>]</literal> enthalten. Die vier <literal>[</literal> und <literal>]</literal> enthalten. Die vier
Variablen welche am Anfang der Datei definiert werden sind globale Variablen welche am Anfang der Datei definiert werden sind globale
Variablen. Diese Variablen werden immer geladen. Wenn eine Variablen. Diese Variablen werden immer geladen. Wenn eine
@@ -71,13 +71,13 @@ pass=foobar
geladen. geladen.
</para> </para>
<para> <para>
Sie k<EFBFBD>nnen Variablen oder auch ganze 'sections' verstecken indem Sie können Variablen oder auch ganze 'sections' verstecken indem
Sie dem Namen ein '.' voranstellen. Dies ist besonders wertvoll wenn Sie dem Namen ein '.' voranstellen. Dies ist besonders wertvoll wenn
Ihre Applikation sensitive Informationen aus der Konfigurationsdatei Ihre Applikation sensitive Informationen aus der Konfigurationsdatei
liest welche von der Template-Engine nicht verwendet werden. Falls liest welche von der Template-Engine nicht verwendet werden. Falls
eine Drittpartei eine <EFBFBD>nderung an der Konfigurationsdatei eine Drittpartei eine Änderung an der Konfigurationsdatei
vornimmt k<EFBFBD>nnen Sie so sicherstellen, dass die sensitiven Daten vornimmt können Sie so sicherstellen, dass die sensitiven Daten
nicht in deren Template geladen werden k<EFBFBD>nnen. nicht in deren Template geladen werden können.
</para> </para>
<para> <para>
Siehe auch: <link Siehe auch: <link

View File

@@ -5,15 +5,15 @@
<title>Grundlegende Syntax</title> <title>Grundlegende Syntax</title>
<para> <para>
Alle Smarty Template-Tags werden mit Trennzeichen umschlossen. Normalerweise Alle Smarty Template-Tags werden mit Trennzeichen umschlossen. Normalerweise
sind dies: <literal>{</literal> und <literal>}</literal>, sie k<EFBFBD>nnen aber sind dies: <literal>{</literal> und <literal>}</literal>, sie können aber
auch <link linkend="variable.left.delimiter">ver<EFBFBD>ndert</link> werden. auch <link linkend="variable.left.delimiter">verändert</link> werden.
</para> </para>
<para> <para>
F<EFBFBD>r die folgenden Beispiele wird davon ausgegangen, dass Sie die Für die folgenden Beispiele wird davon ausgegangen, dass Sie die
Standard-Trennzeichen verwenden. Smarty erachtet alle Inhalte ausserhalb Standard-Trennzeichen verwenden. Smarty erachtet alle Inhalte ausserhalb
der Trennzeichen als statisch und unver<EFBFBD>nderbar. Sobald Smarty der Trennzeichen als statisch und unveränderbar. Sobald Smarty
auf Template-Tags st<EFBFBD>sst, versucht es diese zu interpretieren und die auf Template-Tags stösst, versucht es diese zu interpretieren und die
entsprechenden Ausgaben an deren Stelle einzuf<EFBFBD>gen. entsprechenden Ausgaben an deren Stelle einzufügen.
</para> </para>
&designers.language-basic-syntax.language-syntax-comments; &designers.language-basic-syntax.language-syntax-comments;

View File

@@ -4,7 +4,7 @@
<sect1 id="language.escaping"> <sect1 id="language.escaping">
<title>Smarty Parsing umgehen</title> <title>Smarty Parsing umgehen</title>
<para> <para>
Manchmal ist es w<EFBFBD>nschenswert, dass Smarty Teile eines Manchmal ist es wünschenswert, dass Smarty Teile eines
Templates nicht parst. Dies ist zum Beispiel der Fall, wenn Templates nicht parst. Dies ist zum Beispiel der Fall, wenn
Javascript oder CSS im Template eingebettet werden. Da diese Javascript oder CSS im Template eingebettet werden. Da diese
Sprachen selbst { und } nutzen, erkennt Smarty diese als Start- Sprachen selbst { und } nutzen, erkennt Smarty diese als Start-
@@ -17,10 +17,10 @@
</para> </para>
<para> <para>
Um solche Inhalte trotzdem im gleichen Template einzubetten, k<EFBFBD>nnen Um solche Inhalte trotzdem im gleichen Template einzubetten, können
Sie <link linkend="language.function.literal">{literal} Sie <link linkend="language.function.literal">{literal}
.. {/literal}</link> Bl<EFBFBD>cke verwenden. Die aktuell benutzten .. {/literal}</link> Blöcke verwenden. Die aktuell benutzten
Trennzeichen k<EFBFBD>nnen Sie mit <link Trennzeichen können Sie mit <link
linkend="language.function.ldelim">{ldelim}</link>, <link linkend="language.function.ldelim">{ldelim}</link>, <link
linkend="language.function.ldelim">{rdelim}</link>, <link linkend="language.function.ldelim">{rdelim}</link>, <link
linkend="language.variables.smarty.ldelim">{$smarty.ldelim}</link> linkend="language.variables.smarty.ldelim">{$smarty.ldelim}</link>
@@ -29,7 +29,7 @@
</para> </para>
<para> <para>
Manchmal ist es auch einfacher, die Trennzeichen selbst zu <EFBFBD>ndern: Manchmal ist es auch einfacher, die Trennzeichen selbst zu ändern:
<link linkend="variable.left.delimiter">$left_delimiter</link> und <link linkend="variable.left.delimiter">$left_delimiter</link> und
<link linkend="variable.right.delimiter">$right_delimiter</link> <link linkend="variable.right.delimiter">$right_delimiter</link>
definieren diese. definieren diese.
@@ -51,7 +51,7 @@ $smarty->display('example.tpl');
]]> ]]>
</programlisting> </programlisting>
<para> <para>
example.tpl w<EFBFBD>rde somit wie folgt aussehen: example.tpl würde somit wie folgt aussehen:
</para> </para>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[

View File

@@ -29,7 +29,7 @@
<para> <para>
Siehe auch die <link linkend="language.function.math">{math}-Funktion</link> Siehe auch die <link linkend="language.function.math">{math}-Funktion</link>
f<EFBFBD>r komplexere Berechnungen. für komplexere Berechnungen.
</para> </para>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file

View File

@@ -10,8 +10,8 @@
Beispiel: {* das ist ein Kommentar *} Smarty-Kommentare werden in Beispiel: {* das ist ein Kommentar *} Smarty-Kommentare werden in
der Ausgabe nicht dargestellt und vor allem dazu verwendet, die der Ausgabe nicht dargestellt und vor allem dazu verwendet, die
Templates verst&auml;ndlicher aufzubauen. Smarty Kommentare werden Templates verst&auml;ndlicher aufzubauen. Smarty Kommentare werden
sind in der eng<EFBFBD>ltigen Ausgabe NICHT dargestellt. (im Gegensatz zu sind in der engültigen Ausgabe NICHT dargestellt. (im Gegensatz zu
&lt;!-- HTML Kommentaren --&gt;). Sie sind n<EFBFBD>tzlich um in den &lt;!-- HTML Kommentaren --&gt;). Sie sind nützlich um in den
Templates interne Anmerkungen zu hinterlassen. Templates interne Anmerkungen zu hinterlassen.
</para> </para>
<example> <example>
@@ -36,7 +36,7 @@
{include file=#includeFile#} {include file=#includeFile#}
{* Ausgabe der drop-down Liste *} {* Ausgabe der drop-down Liste *}
{* Dieser <select> Block ist <EFBFBD>berfl<EFBFBD>ssig *} {* Dieser <select> Block ist überflüssig *}
{* {*
<select name=firma> <select name=firma>
{html_options options=$vals selected=$selected} {html_options options=$vals selected=$selected}

View File

@@ -41,13 +41,13 @@
linkend="language.function.if">if</link>, <link linkend="language.function.if">if</link>, <link
linkend="language.function.section">section</link> und <link linkend="language.function.section">section</link> und <link
linkend="language.function.strip">strip</link>. Diese Funktionen linkend="language.function.strip">strip</link>. Diese Funktionen
k<EFBFBD>nnen nicht ver<EFBFBD>ndert werden. können nicht verändert werden.
</para> </para>
<para> <para>
Individuelle Funktionen die die F<EFBFBD>higkeiten von Smarty erweitern Individuelle Funktionen die die Fähigkeiten von Smarty erweitern
werden als Plugins implementiert. Diese Funktionen k<EFBFBD>nnen von Ihnen werden als Plugins implementiert. Diese Funktionen können von Ihnen
angepasst werden, oder Sie k<EFBFBD>nnen selbst neue Plugins angepasst werden, oder Sie können selbst neue Plugins
hinzuf<EFBFBD>gen. <link hinzufügen. <link
linkend="language.function.html.options">{html_options}</link> und linkend="language.function.html.options">{html_options}</link> und
<link <link
linkend="language.function.html.select.date">{html_select_date}</link> linkend="language.function.html.select.date">{html_select_date}</link>

View File

@@ -2,17 +2,17 @@
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.6 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.6 Maintainer: andreas Status: ready -->
<sect1 id="language.syntax.quotes"> <sect1 id="language.syntax.quotes">
<title>Variablen mit Doppelten Anf<EFBFBD>hrungszeichen</title> <title>Variablen mit Doppelten Anführungszeichen</title>
<para> <para>
Smarty erkennt <link linkend="api.assign">zugewiesene</link> <link Smarty erkennt <link linkend="api.assign">zugewiesene</link> <link
linkend="language.syntax.variables">Variablen</link> mit doppelten linkend="language.syntax.variables">Variablen</link> mit doppelten
Anf<EFBFBD>hrungszeichen solange die Variablen nur Zahlen, Buchstaben, Anführungszeichen solange die Variablen nur Zahlen, Buchstaben,
Understriche oder Klammern [] enthalten. Mit allen anderen Zeichen Understriche oder Klammern [] enthalten. Mit allen anderen Zeichen
wie Punkt, Objekt Referenzen, etc muss die Vairable mit Backticks wie Punkt, Objekt Referenzen, etc muss die Vairable mit Backticks
(``) umschlossen sein. (``) umschlossen sein.
</para> </para>
<example> <example>
<title>Syntax von eingebetteten Anf<EFBFBD>rungszeichen</title> <title>Syntax von eingebetteten Anfürungszeichen</title>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
SYNTAX BEISPIELE: SYNTAX BEISPIELE:
@@ -22,7 +22,7 @@ SYNTAX BEISPIELE:
{func var="test $foo[bar] test"} &lt;-- sieht $foo[bar] {func var="test $foo[bar] test"} &lt;-- sieht $foo[bar]
{func var="test $foo.bar test"} &lt;-- sieht $foo (nicht $foo.bar) {func var="test $foo.bar test"} &lt;-- sieht $foo (nicht $foo.bar)
{func var="test `$foo.bar` test"} &lt;-- sieht $foo.bar {func var="test `$foo.bar` test"} &lt;-- sieht $foo.bar
{func var="test `$foo.bar` test"|escape} <-- Modifikatoren ausserhalb der Anf<EFBFBD>hrungsz.! {func var="test `$foo.bar` test"|escape} <-- Modifikatoren ausserhalb der Anführungsz.!
PRAKTISCHE BEISPIELE: PRAKTISCHE BEISPIELE:
{include file="subdir/$tpl_name.tpl"} &lt;-- ersetzt $tpl_name durch wert {include file="subdir/$tpl_name.tpl"} &lt;-- ersetzt $tpl_name durch wert

View File

@@ -5,16 +5,16 @@
<title>Variablen</title> <title>Variablen</title>
<para> <para>
Templatevariablennamen beginnen mit einem $dollar-Zeichen. Sie Templatevariablennamen beginnen mit einem $dollar-Zeichen. Sie
k<EFBFBD>nnen Ziffer, Buchstaben und Unterstriche ('_') enthalten, sehr können Ziffer, Buchstaben und Unterstriche ('_') enthalten, sehr
<EFBFBD>hnlich den <ulink ähnlich den <ulink
url="&url.php-manual;language.variables">Variablen in PHP</ulink>. url="&url.php-manual;language.variables">Variablen in PHP</ulink>.
Numerische Arrayindizes k<EFBFBD>nnen referenziert werden und auch Numerische Arrayindizes können referenziert werden und auch
Nichtnumerische. Zugriff auf Objekteigenschaften und -methoden ist Nichtnumerische. Zugriff auf Objekteigenschaften und -methoden ist
auch m<EFBFBD>glich. auch möglich.
<link <link
linkend="language.config.variables">Konfigurationsvariablen</link> linkend="language.config.variables">Konfigurationsvariablen</link>
sind einer Ausname was die Dollarzeichen-Syntax angeht. Diese werden sind einer Ausname was die Dollarzeichen-Syntax angeht. Diese werden
durch umgebende #Doppelkreuze# oder <EFBFBD>ber die Varible <link durch umgebende #Doppelkreuze# oder über die Varible <link
linkend="language.variables.smarty.config">$smarty.config</link> linkend="language.variables.smarty.config">$smarty.config</link>
referenziert. referenziert.
</para> </para>
@@ -24,12 +24,12 @@
<![CDATA[ <![CDATA[
{$foo} <-- Zeigt einfache Variable an (kein Array oder Objekt) {$foo} <-- Zeigt einfache Variable an (kein Array oder Objekt)
{$foo[4]} <-- Zeigt 5. Element von einem Array an, deren Schlussel bei 0 beginnen {$foo[4]} <-- Zeigt 5. Element von einem Array an, deren Schlussel bei 0 beginnen
{$foo.bar} <-- Zeigt das Element zum Schl<EFBFBD>ssel "bar" des Arrays an (wie PHPs $foo['bar']) {$foo.bar} <-- Zeigt das Element zum Schlüssel "bar" des Arrays an (wie PHPs $foo['bar'])
{$foo.$bar} <-- Zeigt das Element eines variablen Schl<EFBFBD>ssels an (wie PHPs $foo[$bar]) {$foo.$bar} <-- Zeigt das Element eines variablen Schlüssels an (wie PHPs $foo[$bar])
{$foo->bar} <-- Zeigt eine Eigenschaft "bar" des Objekts $foo an {$foo->bar} <-- Zeigt eine Eigenschaft "bar" des Objekts $foo an
{$foo->bar()} <-- Zeigt den R<EFBFBD>ckgabewert der Objectmethode "bar" an {$foo->bar()} <-- Zeigt den Rückgabewert der Objectmethode "bar" an
{#foo#} <-- Zeift die Konfigurationsvariable "foo" an {#foo#} <-- Zeift die Konfigurationsvariable "foo" an
{$smarty.config.foo} <-- Synonym f<EFBFBD>r {#foo#} {$smarty.config.foo} <-- Synonym für {#foo#}
{$foo[bar]} <-- Syntax zum zugriff auf Element in einer Section-Schleife, siehe {section} {$foo[bar]} <-- Syntax zum zugriff auf Element in einer Section-Schleife, siehe {section}
{assign var=foo value="baa"}{$foo} <-- Gibt "baa" aus, siehe {assign} {assign var=foo value="baa"}{$foo} <-- Gibt "baa" aus, siehe {assign}
@@ -40,7 +40,7 @@ Viele weitere Kombinationen sind erlaubt
{$foo[4].baz} {$foo[4].baz}
{$foo[4].$baz} {$foo[4].$baz}
{$foo.bar.baz[4]} {$foo.bar.baz[4]}
{$foo->bar($baz,2,$bar)} <-- Parameter <EFBFBD>bergeben {$foo->bar($baz,2,$bar)} <-- Parameter übergeben
{"foo"} <-- Statische (konstante) Werte sind auch erlaubt {"foo"} <-- Statische (konstante) Werte sind auch erlaubt
]]> ]]>
</programlisting> </programlisting>

View File

@@ -7,12 +7,12 @@
{capture} wird verwendet, um die Template-Ausgabe abzufangen und in {capture} wird verwendet, um die Template-Ausgabe abzufangen und in
einer Variable zu speichern. Der Inhalt zwischen {capture einer Variable zu speichern. Der Inhalt zwischen {capture
name="foo"} und {/capture} wird unter der im 'name' Attribut name="foo"} und {/capture} wird unter der im 'name' Attribut
angegebenen Capture-Variablen abgelegt und kann <EFBFBD>ber <link angegebenen Capture-Variablen abgelegt und kann über <link
linkend="language.variables.smarty.capture">$smarty.capture.foo</link> linkend="language.variables.smarty.capture">$smarty.capture.foo</link>
angesprochen werden. Falls kein 'name'-Attribut <EFBFBD>bergeben wurde, angesprochen werden. Falls kein 'name'-Attribut übergeben wurde,
wird der Inhalt in 'default' (also $smarty.capture.default) wird der Inhalt in 'default' (also $smarty.capture.default)
abgelegt. Jede {capture} Sektion muss mit {/capture} beendet abgelegt. Jede {capture} Sektion muss mit {/capture} beendet
werden. {capture}-Bl<EFBFBD>cke k<EFBFBD>nnen verschachtelt sein. werden. {capture}-Blöcke können verschachtelt sein.
</para> </para>
<informaltable frame="all"> <informaltable frame="all">
<tgroup cols="5"> <tgroup cols="5">
@@ -25,7 +25,7 @@
<row> <row>
<entry>Attribut Name</entry> <entry>Attribut Name</entry>
<entry>Typ</entry> <entry>Typ</entry>
<entry>Ben<EFBFBD>tigt</entry> <entry>Benötigt</entry>
<entry>Standardwert</entry> <entry>Standardwert</entry>
<entry>Beschreibung</entry> <entry>Beschreibung</entry>
</row> </row>

View File

@@ -8,7 +8,7 @@
linkend="language.config.variables">Variablen aus einer linkend="language.config.variables">Variablen aus einer
Konfigurationsdatei</link> in das Template zu laden. Sehen sie Konfigurationsdatei</link> in das Template zu laden. Sehen sie
<link linkend="config.files">Config Files <link linkend="config.files">Config Files
(Konfigurationsdateien)</link> f<EFBFBD>r weitere Informationen. (Konfigurationsdateien)</link> für weitere Informationen.
</para> </para>
<informaltable frame="all"> <informaltable frame="all">
<tgroup cols="5"> <tgroup cols="5">
@@ -53,7 +53,7 @@
geladen werden. 'parent' bedeutet, dass die Variablen sowohl in geladen werden. 'parent' bedeutet, dass die Variablen sowohl in
den lokalen Context, als auch in den Context des aufrufenden den lokalen Context, als auch in den Context des aufrufenden
Templates eingebunden werden. 'global' bedeutet, dass die Templates eingebunden werden. 'global' bedeutet, dass die
Variablen von allen Templates zug<EFBFBD>nglich sind. Variablen von allen Templates zugänglich sind.
</entry> </entry>
</row> </row>
<row> <row>
@@ -62,9 +62,9 @@
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>No</emphasis></entry> <entry><emphasis>No</emphasis></entry>
<entry> <entry>
Definiert, ob die Variablen von allen Templates aus zug<EFBFBD>nglich Definiert, ob die Variablen von allen Templates aus zugänglich
sind. WICHTIG: Dieses Attribut wird von 'scope' abgel<EFBFBD>st und sind. WICHTIG: Dieses Attribut wird von 'scope' abgelöst und
sollte nicht mehr verwendet werden. Falls 'scope' <EFBFBD>bergeben sollte nicht mehr verwendet werden. Falls 'scope' übergeben
wurde, wird 'global' ignoriert. wurde, wird 'global' ignoriert.
</entry> </entry>
</row> </row>
@@ -81,7 +81,7 @@
#Dies ist ein Konfigurationsdateikommentar #Dies ist ein Konfigurationsdateikommentar
# globale Variablen # globale Variablen
seitenTitel = "Hauptmen<EFBFBD>" seitenTitel = "Hauptmenü"
bodyHintergrundFarbe = #000000 bodyHintergrundFarbe = #000000
tabelleHintergrundFarbe = #000000 tabelleHintergrundFarbe = #000000
reiheHintergrundFarbe = #00ff00 reiheHintergrundFarbe = #00ff00
@@ -112,9 +112,9 @@ seitenTitel = "Kundeninfo"
</programlisting> </programlisting>
</example> </example>
<para> <para>
<link linkend="config.files">Konfigurationsdateien</link> k<EFBFBD>nnen <link linkend="config.files">Konfigurationsdateien</link> können
Abschnitte enthalten. Um Variablen aus einem Abschnitt zu laden, Abschnitte enthalten. Um Variablen aus einem Abschnitt zu laden,
k<EFBFBD>nnen Sie das Attribut <emphasis>section</emphasis> <EFBFBD>bergeben. können Sie das Attribut <emphasis>section</emphasis> übergeben.
</para> </para>
<para> <para>
Bemerkung: <emphasis>Konfigurationdatei-Abschnitte Bemerkung: <emphasis>Konfigurationdatei-Abschnitte
@@ -146,7 +146,7 @@ seitenTitel = "Kundeninfo"
<para> <para>
Siehe <link Siehe <link
linkend="variable.config.overwrite">$config_overwrite</link> linkend="variable.config.overwrite">$config_overwrite</link>
bez<EFBFBD>glich Arrays von Konfigurationsvariablen. bezüglich Arrays von Konfigurationsvariablen.
</para> </para>
<para> <para>
Siehe auch <link Siehe auch <link

View File

@@ -11,18 +11,18 @@
Array zu durchlaufen. Die Syntax von Array zu durchlaufen. Die Syntax von
<emphasis>foreach</emphasis>-Schleifen ist viel einfacher als die <emphasis>foreach</emphasis>-Schleifen ist viel einfacher als die
von <emphasis>section</emphasis>. <emphasis>{foreach}</emphasis> von <emphasis>section</emphasis>. <emphasis>{foreach}</emphasis>
Tags m<EFBFBD>ssen mit <emphasis>{/foreach}</emphasis> tags kombiniert Tags müssen mit <emphasis>{/foreach}</emphasis> tags kombiniert
werden. Erforderliche Parameter sind: <emphasis>from</emphasis> und werden. Erforderliche Parameter sind: <emphasis>from</emphasis> und
<emphasis>item</emphasis>. Der Name der {foreach}-Schleife kann <emphasis>item</emphasis>. Der Name der {foreach}-Schleife kann
frei vergeben werden und sowohl Buchstaben, Zahlen als auch frei vergeben werden und sowohl Buchstaben, Zahlen als auch
Unterstriche enthalten. <emphasis>foreach</emphasis>-Schleifen Unterstriche enthalten. <emphasis>foreach</emphasis>-Schleifen
k<EFBFBD>nnen verschachtelt werden, dabei ist zu beachten, dass sich die können verschachtelt werden, dabei ist zu beachten, dass sich die
definierten Namen voneinander unterscheiden. Die definierten Namen voneinander unterscheiden. Die
<emphasis>from</emphasis> Variable (normalerweise ein assoziatives <emphasis>from</emphasis> Variable (normalerweise ein assoziatives
Array) definiert die Anzahl der von <emphasis>foreach</emphasis> zu Array) definiert die Anzahl der von <emphasis>foreach</emphasis> zu
durchlaufenen Iterationen. <emphasis>foreachelse</emphasis> wird durchlaufenen Iterationen. <emphasis>foreachelse</emphasis> wird
ausgef<EFBFBD>hrt wenn keine Werte in der <emphasis>from</emphasis> ausgeführt wenn keine Werte in der <emphasis>from</emphasis>
Variable <EFBFBD>bergeben wurden. Variable übergeben wurden.
</para> </para>
<informaltable frame="all"> <informaltable frame="all">
<tgroup cols="5"> <tgroup cols="5">
@@ -53,21 +53,21 @@
<entry>string</entry> <entry>string</entry>
<entry>Ja</entry> <entry>Ja</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>Name f<EFBFBD>r das aktuelle Element.</entry> <entry>Name für das aktuelle Element.</entry>
</row> </row>
<row> <row>
<entry>key</entry> <entry>key</entry>
<entry>string</entry> <entry>string</entry>
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>Name f<EFBFBD>r den aktuellen Schl<EFBFBD>ssel.</entry> <entry>Name für den aktuellen Schlüssel.</entry>
</row> </row>
<row> <row>
<entry>name</entry> <entry>name</entry>
<entry>string</entry> <entry>string</entry>
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>Name der 'foreach'-Schleife, f<EFBFBD>r die Abfrage der 'foreach'-Eigenschaften.</entry> <entry>Name der 'foreach'-Schleife, für die Abfrage der 'foreach'-Eigenschaften.</entry>
</row> </row>
</tbody> </tbody>
</tgroup> </tgroup>
@@ -107,7 +107,7 @@ id: 1002<br>
<title>{foreach} - item und key</title> <title>{foreach} - item und key</title>
<programlisting role="php"> <programlisting role="php">
<![CDATA[ <![CDATA[
// Der Schl<EFBFBD>ssel enth<EFBFBD>lt den Schl<EFBFBD>ssel des jeweils iterierten Wertes // Der Schlüssel enthält den Schlüssel des jeweils iterierten Wertes
// die Zuweisung sieht wie folgt aus: // die Zuweisung sieht wie folgt aus:
<?php <?php
$smarty->assign('kontakte', array( $smarty->assign('kontakte', array(
@@ -170,7 +170,7 @@ id: 1002<br>
Foreach-Loops haben auch eigene Variablen welche die Foreach Foreach-Loops haben auch eigene Variablen welche die Foreach
Eigenschaften enthalten. Diese werden wie folgt ausgewiesen: Eigenschaften enthalten. Diese werden wie folgt ausgewiesen:
{$smarty.foreach.foreachname.varname}. foreachname ist der Name der {$smarty.foreach.foreachname.varname}. foreachname ist der Name der
als <emphasis>name</emphasis> Attribut von Foreach <EFBFBD>bergeben wurden. als <emphasis>name</emphasis> Attribut von Foreach übergeben wurden.
</para> </para>
<sect2 id="foreach.property.iteration"> <sect2 id="foreach.property.iteration">
@@ -209,7 +209,7 @@ id: 1002<br>
<title>total</title> <title>total</title>
<para> <para>
<emphasis>total</emphasis> gibt die Anzahl Iterationen des Foreach <emphasis>total</emphasis> gibt die Anzahl Iterationen des Foreach
Loops aus und kann in- oder nach- Foreach Bl<EFBFBD>cken verwendet werden. Loops aus und kann in- oder nach- Foreach Blöcken verwendet werden.
</para> </para>
</sect2> </sect2>
</sect1> </sect1>

View File

@@ -5,7 +5,7 @@
<title>{if},{elseif},{else}</title> <title>{if},{elseif},{else}</title>
<para> <para>
<emphasis>{if}</emphasis>-Statements in Smarty erlauben die selbe <emphasis>{if}</emphasis>-Statements in Smarty erlauben die selbe
Flexibilit<EFBFBD>t wie in PHP, bis auf ein paar Erweiterungen f<EFBFBD>r die Flexibilität wie in PHP, bis auf ein paar Erweiterungen für die
Template-Engine. Jedes <emphasis>{if}</emphasis> muss mit einem Template-Engine. Jedes <emphasis>{if}</emphasis> muss mit einem
<emphasis>{/if}</emphasis> kombiniert <emphasis>{/if}</emphasis> kombiniert
sein. <emphasis>{else}</emphasis> und <emphasis>{elseif}</emphasis> sein. <emphasis>{else}</emphasis> und <emphasis>{elseif}</emphasis>
@@ -16,15 +16,15 @@
</para> </para>
<para> <para>
Wenn <link linkend="variable.security">$security</link> angeschaltet Wenn <link linkend="variable.security">$security</link> angeschaltet
wurde, dann m<EFBFBD>ssen alle verwendeten PHP-Funktionen im wurde, dann müssen alle verwendeten PHP-Funktionen im
<emphasis>IF_FUNCS</emphasis>-Array in dem <link <emphasis>IF_FUNCS</emphasis>-Array in dem <link
linkend="variable.security.settings">$security_settings</link>-Array linkend="variable.security.settings">$security_settings</link>-Array
deklariert werden. deklariert werden.
</para> </para>
<para> <para>
Hier eine Liste der erlaubten Operatoren. Bedingungsoperatoren Hier eine Liste der erlaubten Operatoren. Bedingungsoperatoren
m<EFBFBD>ssen von umgebenden Elementen mit Leerzeichen abgetrennt werden. müssen von umgebenden Elementen mit Leerzeichen abgetrennt werden.
PHP-<EFBFBD>quivalente sind, sofern vorhanden, angeben. PHP-Äquivalente sind, sofern vorhanden, angeben.
</para> </para>
<informaltable frame="all"> <informaltable frame="all">
<tgroup cols="5"> <tgroup cols="5">
@@ -32,14 +32,14 @@
<colspec colname="Alternativen" align="center" /> <colspec colname="Alternativen" align="center" />
<colspec colname="Syntax Beispiel" /> <colspec colname="Syntax Beispiel" />
<colspec colname="Bedeutung" /> <colspec colname="Bedeutung" />
<colspec colname="PHP <EFBFBD>quivalent" /> <colspec colname="PHP Äquivalent" />
<thead> <thead>
<row> <row>
<entry>Operator</entry> <entry>Operator</entry>
<entry>Alternativen</entry> <entry>Alternativen</entry>
<entry>Syntax Beispiel</entry> <entry>Syntax Beispiel</entry>
<entry>Bedeutung</entry> <entry>Bedeutung</entry>
<entry>PHP <EFBFBD>quivalent</entry> <entry>PHP Äquivalent</entry>
</row> </row>
</thead> </thead>
<tbody> <tbody>
@@ -61,7 +61,7 @@
<entry>&gt;</entry> <entry>&gt;</entry>
<entry>gt</entry> <entry>gt</entry>
<entry>$a gt $b</entry> <entry>$a gt $b</entry>
<entry>gr<EFBFBD><EFBFBD>er als</entry> <entry>größer als</entry>
<entry>&gt;</entry> <entry>&gt;</entry>
</row> </row>
<row> <row>
@@ -75,7 +75,7 @@
<entry>&gt;=</entry> <entry>&gt;=</entry>
<entry>gte, ge</entry> <entry>gte, ge</entry>
<entry>$a ge $b</entry> <entry>$a ge $b</entry>
<entry>gr<EFBFBD><EFBFBD>er oder gleich</entry> <entry>größer oder gleich</entry>
<entry>&gt;=</entry> <entry>&gt;=</entry>
</row> </row>
<row> <row>
@@ -182,17 +182,17 @@
{/if} {/if}
{* einbetten von php Funktionsaufrufen ('gt' steht f<EFBFBD>r 'gr<EFBFBD>sser als') *} {* einbetten von php Funktionsaufrufen ('gt' steht für 'grösser als') *}
{if count($var) gt 0} {if count($var) gt 0}
... ...
{/if} {/if}
{* Auf "ist array" <EFBFBD>berpr<EFBFBD>fen. *} {* Auf "ist array" überprüfen. *}
{if is_array($foo) } {if is_array($foo) }
..... .....
{/if} {/if}
{* Auf "ist nicht null" <EFBFBD>berpr<EFBFBD>fen. *} {* Auf "ist nicht null" überprüfen. *}
{if isset($foo) } {if isset($foo) }
..... .....
{/if} {/if}

View File

@@ -5,7 +5,7 @@
<title>include_php (PHP-Code einbinden)</title> <title>include_php (PHP-Code einbinden)</title>
<para> <para>
Die Verwendung von {include_php} wird nicht mehr empfohlen, die Die Verwendung von {include_php} wird nicht mehr empfohlen, die
gleiche funktionalit<EFBFBD>t kann auch mit <link gleiche funktionalität kann auch mit <link
linkend="tips.componentized.templates">Template/Script linkend="tips.componentized.templates">Template/Script
Komponenten</link> erreicht werden. Komponenten</link> erreicht werden.
</para> </para>
@@ -54,26 +54,26 @@
Falls <link linkend="variable.security">Sicherheit</link> aktiviert Falls <link linkend="variable.security">Sicherheit</link> aktiviert
ist, muss das einzubindende Skript im <link ist, muss das einzubindende Skript im <link
linkend="variable.trusted.dir">$trusted_dir</link> Pfad linkend="variable.trusted.dir">$trusted_dir</link> Pfad
liegen. {include_php} muss das Attribut 'file' <EFBFBD>bergeben werden, das liegen. {include_php} muss das Attribut 'file' übergeben werden, das
den Pfad - entweder relativ zu <link den Pfad - entweder relativ zu <link
linkend="variable.trusted.dir">$trusted_dir</link> oder absolut - linkend="variable.trusted.dir">$trusted_dir</link> oder absolut -
zum Skript enth<EFBFBD>lt. zum Skript enthält.
</para> </para>
<para> <para>
Normalerweise wird ein PHP-Skript nur einmal pro Aufruf geladen, Normalerweise wird ein PHP-Skript nur einmal pro Aufruf geladen,
selbst wenn es mehrfach eingebunden wird. Sie k<EFBFBD>nnen dieses selbst wenn es mehrfach eingebunden wird. Sie können dieses
Verhalten durch die Verwendung des <emphasis>once</emphasis> Verhalten durch die Verwendung des <emphasis>once</emphasis>
Attributs steuern. Wenn Sie 'once' auf 'false' setzen, wird die Attributs steuern. Wenn Sie 'once' auf 'false' setzen, wird die
Datei immer wenn sie eingebunden wird auch neu geladen. Datei immer wenn sie eingebunden wird auch neu geladen.
</para> </para>
<para> <para>
Optional kann das <emphasis>assign</emphasis> Attribut <EFBFBD>bergeben Optional kann das <emphasis>assign</emphasis> Attribut übergeben
werden. Die Ausgabe von <emphasis>include_php</emphasis> wird dann werden. Die Ausgabe von <emphasis>include_php</emphasis> wird dann
nicht direkt eingef<EFBFBD>gt, sondern in der durch assign benannten nicht direkt eingefügt, sondern in der durch assign benannten
Template-Variable abgelegt. Template-Variable abgelegt.
</para> </para>
<para> <para>
Das Objekt '$smarty' kann in dem eingebundenen PHP-Script <EFBFBD>ber Das Objekt '$smarty' kann in dem eingebundenen PHP-Script über
'$this' angesprochen werden. '$this' angesprochen werden.
</para> </para>
<example> <example>

View File

@@ -6,7 +6,7 @@
<para> <para>
{include}-Tags werden verwendet, um andere Templates in das aktuelle {include}-Tags werden verwendet, um andere Templates in das aktuelle
Template einzubinden. Alle Variablen des aktuellen Templates sind Template einzubinden. Alle Variablen des aktuellen Templates sind
auch im eingebundenen Template verf<EFBFBD>gbar. Das {include}-Tag muss ein auch im eingebundenen Template verfügbar. Das {include}-Tag muss ein
'file' Attribut mit dem Pfad zum einzubindenden Template enthalten. 'file' Attribut mit dem Pfad zum einzubindenden Template enthalten.
</para> </para>
<para> <para>
@@ -19,7 +19,7 @@
Die Werte aller zugewiesenen Variablen werden wiederhergestellt, sobald Die Werte aller zugewiesenen Variablen werden wiederhergestellt, sobald
ein eingebundenes Template wieder verlassen wurde. Das bedeutet, dass in ein eingebundenes Template wieder verlassen wurde. Das bedeutet, dass in
einem eingebundenen Template alle Variablen des einbindenden Template einem eingebundenen Template alle Variablen des einbindenden Template
verwendet und ver<EFBFBD>ndert werden k<EFBFBD>nnen, diese <EFBFBD>nderungen aber verloren sind, verwendet und verändert werden können, diese Änderungen aber verloren sind,
sobald das {include} abgearbeitet wurde. sobald das {include} abgearbeitet wurde.
</para> </para>
<informaltable frame="all"> <informaltable frame="all">
@@ -58,7 +58,7 @@
<entry>[var typ]</entry> <entry>[var typ]</entry>
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>Variablen welche dem Template lokal <EFBFBD>bergeben werden sollen.</entry> <entry>Variablen welche dem Template lokal übergeben werden sollen.</entry>
</row> </row>
</tbody> </tbody>
</tgroup> </tgroup>
@@ -84,14 +84,14 @@
</programlisting> </programlisting>
</example> </example>
<para> <para>
Sie k<EFBFBD>nnen dem einzubindenden Template Variablen als Attribute Sie können dem einzubindenden Template Variablen als Attribute
<EFBFBD>bergeben. Alle explizit <EFBFBD>bergebenen Variablen sind nur im übergeben. Alle explizit übergebenen Variablen sind nur im
Anwendungsbereich (scope) dieses Template Anwendungsbereich (scope) dieses Template
verf<EFBFBD>gbar. Attribut-Variablen <EFBFBD>berschreiben aktuelle verfügbar. Attribut-Variablen überschreiben aktuelle
Template-Variablen, falls sie den gleichen Namen haben. Template-Variablen, falls sie den gleichen Namen haben.
</para> </para>
<example> <example>
<title>include-Funktion und Variablen <EFBFBD>bergabe</title> <title>include-Funktion und Variablen Übergabe</title>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
{include file='header.tpl' title='Hauptmenu' table_bgcolor='#c0c0c0'} {include file='header.tpl' title='Hauptmenu' table_bgcolor='#c0c0c0'}
@@ -108,7 +108,7 @@
ausserhalb des '$template_dir' einzubinden: ausserhalb des '$template_dir' einzubinden:
</para> </para>
<example> <example>
<title>Beispiele f<EFBFBD>r Template-Ressourcen bei der 'include'-Funktion</title> <title>Beispiele für Template-Ressourcen bei der 'include'-Funktion</title>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
{* absoluter Dateipfad *} {* absoluter Dateipfad *}
@@ -117,7 +117,7 @@
{* absoluter Dateipfad (gleich) *} {* absoluter Dateipfad (gleich) *}
{include file='file:/usr/local/include/templates/header.tpl'} {include file='file:/usr/local/include/templates/header.tpl'}
{* absoluter Dateipfad unter Windows ("file:"-Prefix MUSS <EFBFBD>bergeben werden) *} {* absoluter Dateipfad unter Windows ("file:"-Prefix MUSS übergeben werden) *}
{include file='file:C:/www/pub/templates/header.tpl'} {include file='file:C:/www/pub/templates/header.tpl'}
{* einbinden aus Template-Ressource namens 'db' *} {* einbinden aus Template-Ressource namens 'db' *}
@@ -127,7 +127,7 @@
{include file="$module.tpl"} {include file="$module.tpl"}
{* {*
Dies hier Funktioniert nicht, da Variablen innerhalb einfacher Dies hier Funktioniert nicht, da Variablen innerhalb einfacher
Anf<EFBFBD>hrungszeichen nicht interpoliert werden. Anführungszeichen nicht interpoliert werden.
*} *}
{include file='$module.tpl'} {include file='$module.tpl'}
]]> ]]>

View File

@@ -2,13 +2,13 @@
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.6 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.6 Maintainer: andreas Status: ready -->
<sect1 id="language.function.insert"> <sect1 id="language.function.insert">
<title>insert (einf<EFBFBD>gen)</title> <title>insert (einfügen)</title>
<para> <para>
{insert}-Tags funktionieren <EFBFBD>hnlich den <link {insert}-Tags funktionieren ähnlich den <link
linkend="language.function.include">{include}</link>-Tags, werden linkend="language.function.include">{include}</link>-Tags, werden
aber nicht gecached, falls <link linkend="caching">caching</link> aber nicht gecached, falls <link linkend="caching">caching</link>
eingeschaltet ist. Sie werden bei jedem Aufruf des Templates eingeschaltet ist. Sie werden bei jedem Aufruf des Templates
ausgef<EFBFBD>hrt. ausgeführt.
</para> </para>
<informaltable frame="all"> <informaltable frame="all">
<tgroup cols="5"> <tgroup cols="5">
@@ -53,16 +53,16 @@
<entry>[var typ]</entry> <entry>[var typ]</entry>
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>Variablen die der 'insert'-Funktion <EFBFBD>bergeben werden sollen.</entry> <entry>Variablen die der 'insert'-Funktion übergeben werden sollen.</entry>
</row> </row>
</tbody> </tbody>
</tgroup> </tgroup>
</informaltable> </informaltable>
<para> <para>
Stellen Sie sich vor, sie h<EFBFBD>tten ein Template mit einem Stellen Sie sich vor, sie hätten ein Template mit einem
Werbebanner. Dieser Banner kann verschiedene Arten von Inhalten Werbebanner. Dieser Banner kann verschiedene Arten von Inhalten
haben: Bilder, HTML, Flash, etc. Deshalb k<EFBFBD>nnen wir nicht einfach haben: Bilder, HTML, Flash, etc. Deshalb können wir nicht einfach
einen statischen Link verwenden und m<EFBFBD>ssen vermeiden, dass dieser einen statischen Link verwenden und müssen vermeiden, dass dieser
Inhalt gecached wird. Hier kommt das {insert}-Tag ins Spiel. Das Inhalt gecached wird. Hier kommt das {insert}-Tag ins Spiel. Das
Template kennt die Variablen '#banner_location_id#' und '#site_id#' Template kennt die Variablen '#banner_location_id#' und '#site_id#'
(zum Beispiel aus einer <link (zum Beispiel aus einer <link
@@ -78,29 +78,29 @@
</example> </example>
<para> <para>
In diesem Beispiel verwenden wir die Funktion 'getBanner' und In diesem Beispiel verwenden wir die Funktion 'getBanner' und
<EFBFBD>bergeben die Parameter '#banner_location_id#' und '#site_id#'. übergeben die Parameter '#banner_location_id#' und '#site_id#'.
Smarty wird daraufhin in Ihrer Applikatiopn nach einer Funktion Smarty wird daraufhin in Ihrer Applikatiopn nach einer Funktion
namens 'getBanner' suchen und diese mit den Parametern namens 'getBanner' suchen und diese mit den Parametern
'#banner_location_id#' und '#site_id#' aufrufen. Allen '#banner_location_id#' und '#site_id#' aufrufen. Allen
'insert'-Funktionen in Ihrer Applikation muss 'insert_' 'insert'-Funktionen in Ihrer Applikation muss 'insert_'
vorangestellt werden, um Konflikte im Namensraum zu vermeiden. Ihre vorangestellt werden, um Konflikte im Namensraum zu vermeiden. Ihre
'insert_getBanner()'-Funktion sollte etwas mit den <EFBFBD>bergebenen 'insert_getBanner()'-Funktion sollte etwas mit den übergebenen
Parametern unternehmen und das Resultat zur<EFBFBD>ckgeben. Dieses Parametern unternehmen und das Resultat zurückgeben. Dieses
Resultat wird an der Stelle des 'insert'-Tags in Ihrem Template Resultat wird an der Stelle des 'insert'-Tags in Ihrem Template
ausgegeben. In diesem Beispiel w<EFBFBD>rde Smarty folgende Funktion ausgegeben. In diesem Beispiel würde Smarty folgende Funktion
aufrufen: insert_getBanner(array("lid" => "12345","sid" => "67890")) aufrufen: insert_getBanner(array("lid" => "12345","sid" => "67890"))
und die erhaltenen Resultate an Stelle des 'insert'-Tags ausgeben. und die erhaltenen Resultate an Stelle des 'insert'-Tags ausgeben.
</para> </para>
<para> <para>
Falls Sie das 'assign'-Attribut <EFBFBD>bergeben, wird die Ausgabe des Falls Sie das 'assign'-Attribut übergeben, wird die Ausgabe des
'insert'-Tags in dieser Variablen abgelegt. Bemerkung: dies ist 'insert'-Tags in dieser Variablen abgelegt. Bemerkung: dies ist
nicht sinnvoll, wenn <link linkend="variable.caching">Caching</link> nicht sinnvoll, wenn <link linkend="variable.caching">Caching</link>
eingeschaltet ist. eingeschaltet ist.
</para> </para>
<para> <para>
Falls Sie das 'script'-Attribut <EFBFBD>bergeben, wird das angegebene Falls Sie das 'script'-Attribut übergeben, wird das angegebene
PHP-Skript vor der Ausf<EFBFBD>hrung der {insert}-Funktion eingebunden. PHP-Skript vor der Ausführung der {insert}-Funktion eingebunden.
Dies ist n<EFBFBD>tzlich, um die {insert}-Funktion erst in diesem Skript zu Dies ist nützlich, um die {insert}-Funktion erst in diesem Skript zu
definieren. Der Pfad kann absolut oder relativ zu <link definieren. Der Pfad kann absolut oder relativ zu <link
linkend="variable.trusted.dir">$trusted_dir</link> angegeben werden. linkend="variable.trusted.dir">$trusted_dir</link> angegeben werden.
Wenn Sicherheit eingeschaltet ist, muss das Skript in <link Wenn Sicherheit eingeschaltet ist, muss das Skript in <link
@@ -108,17 +108,17 @@
</para> </para>
<para> <para>
Als zweites Argument wird der {insert}-Funktion das Smarty-Objekt Als zweites Argument wird der {insert}-Funktion das Smarty-Objekt
selbst <EFBFBD>bergeben. Damit kann dort auf die Informationen im selbst übergeben. Damit kann dort auf die Informationen im
Smarty-Objekt zugegriffen werden. Smarty-Objekt zugegriffen werden.
</para> </para>
<note> <note>
<title>Technische Bemerkung</title> <title>Technische Bemerkung</title>
<para> <para>
Es gibt die M<EFBFBD>glichkeit, Teile des Templates nicht zu cachen. Wenn Es gibt die Möglichkeit, Teile des Templates nicht zu cachen. Wenn
Sie <link linkend="caching">caching</link> eingeschaltet haben, Sie <link linkend="caching">caching</link> eingeschaltet haben,
werden {insert}-Tags nicht gecached. Sie werden jedesmal werden {insert}-Tags nicht gecached. Sie werden jedesmal
ausgef<EFBFBD>hrt, wenn die Seite erstellt wird - selbst innerhalb ausgeführt, wenn die Seite erstellt wird - selbst innerhalb
gecachter Seiten. Dies funktioniert gut f<EFBFBD>r Dinge wie Werbung gecachter Seiten. Dies funktioniert gut für Dinge wie Werbung
(Banner), Abstimmungen, Wetterberichte, Such-Resultate, (Banner), Abstimmungen, Wetterberichte, Such-Resultate,
Benutzer-Feedback-Ecke, etc. Benutzer-Feedback-Ecke, etc.
</para> </para>

View File

@@ -4,9 +4,9 @@
<sect1 id="language.function.literal"> <sect1 id="language.function.literal">
<title>literal</title> <title>literal</title>
<para> <para>
{literal}-Tags erlauben es, einen Block w<EFBFBD>rtlich auszugeben, {literal}-Tags erlauben es, einen Block wörtlich auszugeben,
d.h. von der Interpretation durch Smarty auszuschliessen. Dies ist d.h. von der Interpretation durch Smarty auszuschliessen. Dies ist
vor allem f<EFBFBD>r Javascript- oder andere Bl<EFBFBD>cke n<EFBFBD>tzlich, die vor allem für Javascript- oder andere Blöcke nützlich, die
geschwungene Klammern verwenden. Alles was zwischen den geschwungene Klammern verwenden. Alles was zwischen den
{literal}{/literal} Tags steht, wird direkt angezeigt. Wenn in {literal}{/literal} Tags steht, wird direkt angezeigt. Wenn in
einem {literal}-Block temlate-Tags verwendet werden sollen, is es einem {literal}-Block temlate-Tags verwendet werden sollen, is es

View File

@@ -7,8 +7,8 @@
{php}-Tags erlauben es, PHP-Code direkt in das Template {php}-Tags erlauben es, PHP-Code direkt in das Template
einzubetten. Der Inhalt wird nicht 'escaped', egal wie <link einzubetten. Der Inhalt wird nicht 'escaped', egal wie <link
linkend="variable.php.handling">$php_handling</link> konfiguriert linkend="variable.php.handling">$php_handling</link> konfiguriert
ist. Dieses Tag ist nur f<EFBFBD>r erfahrene Benutzer gedacht und wird ist. Dieses Tag ist nur für erfahrene Benutzer gedacht und wird
auch von diesen normalerweise nicht ben<EFBFBD>tigt. auch von diesen normalerweise nicht benötigt.
</para> </para>
<example> <example>
<title>{php}-Tags</title> <title>{php}-Tags</title>
@@ -24,10 +24,10 @@
<note> <note>
<title>Technical Note</title> <title>Technical Note</title>
<para> <para>
Um auf PHP-Variablen in {php}-Bl<EFBFBD>cken zugreifen zu k<EFBFBD>nnen, kann es Um auf PHP-Variablen in {php}-Blöcken zugreifen zu können, kann es
n<EFBFBD>tig sein, die Variable als <ulink nötig sein, die Variable als <ulink
url="&url.php-manual;global">global</ulink> zu deklarieren. Der url="&url.php-manual;global">global</ulink> zu deklarieren. Der
{php}-Bl<EFBFBD>ck l<EFBFBD>uft n<EFBFBD>mlich nicht in einem globalen Kontext, sondern {php}-Blöck läuft nämlich nicht in einem globalen Kontext, sondern
im Kontext der method des laufenden $smarty-Objektes. im Kontext der method des laufenden $smarty-Objektes.
</para> </para>
</note> </note>

View File

@@ -5,20 +5,20 @@
<title>section,sectionelse</title> <title>section,sectionelse</title>
<para> <para>
Template-{sections} werden verwendet, um durch <emphasis Template-{sections} werden verwendet, um durch <emphasis
role="bold">Arrays</emphasis> zu iterieren (<EFBFBD>hnlich wie <link role="bold">Arrays</emphasis> zu iterieren (ähnlich wie <link
linkend="language.function.foreach">{foreach}</link>). Jedes linkend="language.function.foreach">{foreach}</link>). Jedes
<emphasis>section</emphasis>-Tag muss mit einem <emphasis>section</emphasis>-Tag muss mit einem
<emphasis>/section</emphasis>-Tag kombiniert <emphasis>/section</emphasis>-Tag kombiniert
werden. <emphasis>name</emphasis> und <emphasis>loop</emphasis> sind werden. <emphasis>name</emphasis> und <emphasis>loop</emphasis> sind
erforderliche Parameter. Der Name der 'section' kann frei gew<EFBFBD>hlt erforderliche Parameter. Der Name der 'section' kann frei gewählt
werden, muss jedoch aus Buchstaben, Zahlen oder Unterstrichen werden, muss jedoch aus Buchstaben, Zahlen oder Unterstrichen
bestehen. {sections} k<EFBFBD>nnen verschachtelt werden. Dabei ist zu bestehen. {sections} können verschachtelt werden. Dabei ist zu
beachten, dass sich ihre Namen unterscheiden. Aus der beachten, dass sich ihre Namen unterscheiden. Aus der
'loop'-Variable (normalerweise ein Array von Werten) resultiert die 'loop'-Variable (normalerweise ein Array von Werten) resultiert die
Anzahl der Iterationen, die durchlaufen werden. Wenn ein Wert aus Anzahl der Iterationen, die durchlaufen werden. Wenn ein Wert aus
der 'loop'-Variable innerhalb der {section} ausgegeben werden soll, der 'loop'-Variable innerhalb der {section} ausgegeben werden soll,
muss der 'section-name' umschlossen mit [] angef<EFBFBD>gt werden. muss der 'section-name' umschlossen mit [] angefügt werden.
<emphasis>sectionelse</emphasis> wird ausgef<EFBFBD>hrt, wenn keine Werte <emphasis>sectionelse</emphasis> wird ausgeführt, wenn keine Werte
in der 'loop'-Variable enthalten sind. in der 'loop'-Variable enthalten sind.
</para> </para>
<informaltable frame="all"> <informaltable frame="all">
@@ -50,7 +50,7 @@
<entry>[$variable_name]</entry> <entry>[$variable_name]</entry>
<entry>Ja</entry> <entry>Ja</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>Der Name des Z<EFBFBD>hlers f<EFBFBD>r die Iterationen.</entry> <entry>Der Name des Zählers für die Iterationen.</entry>
</row> </row>
<row> <row>
<entry>start</entry> <entry>start</entry>
@@ -58,12 +58,12 @@
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>0</emphasis></entry> <entry><emphasis>0</emphasis></entry>
<entry> <entry>
Definiert die Startposition. Falls ein negativer Wert <EFBFBD>bergeben Definiert die Startposition. Falls ein negativer Wert übergeben
wird, berechnet sich die Startposition ausgehend vom Ende des wird, berechnet sich die Startposition ausgehend vom Ende des
Arrays. Wenn zum Beispiel 7 Werte in einem Array enthalten sind Arrays. Wenn zum Beispiel 7 Werte in einem Array enthalten sind
und die Startposition -2 ist, ist die berechnete Startposition und die Startposition -2 ist, ist die berechnete Startposition
5. Unerlaubte Werte (Werte ausserhalb der Gr<EFBFBD>sse des Arrays) 5. Unerlaubte Werte (Werte ausserhalb der Grösse des Arrays)
werden automatisch auf den n<EFBFBD>chstm<EFBFBD>glichen Wert gesetzt. werden automatisch auf den nächstmöglichen Wert gesetzt.
</entry> </entry>
</row> </row>
<row> <row>
@@ -74,7 +74,7 @@
<entry> <entry>
Definiert die Schrittweite mit welcher das Array durchlaufen Definiert die Schrittweite mit welcher das Array durchlaufen
wird. 'step=2' iteriert durch 0, 2, 4, etc. Wenn ein negativer wird. 'step=2' iteriert durch 0, 2, 4, etc. Wenn ein negativer
Wert <EFBFBD>bergeben wurde, wird das Array r<EFBFBD>ckw<EFBFBD>rts durchlaufen. Wert übergeben wurde, wird das Array rückwärts durchlaufen.
</entry> </entry>
</row> </row>
<row> <row>
@@ -169,7 +169,7 @@ id: 1000<br />
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
{* die 'loop'-Variable definiert nur die Anzahl der Iterationen, {* die 'loop'-Variable definiert nur die Anzahl der Iterationen,
Sie k<EFBFBD>nnen in dieser 'section' auf jeden Wert des Templates Sie können in dieser 'section' auf jeden Wert des Templates
zugreifen. Dieses Beispiel geht davon aus, dass $KundenId, $Namen und zugreifen. Dieses Beispiel geht davon aus, dass $KundenId, $Namen und
$Adressen Arrays sind, welche die selbe Anzahl Werte enthalten *} $Adressen Arrays sind, welche die selbe Anzahl Werte enthalten *}
{section name=kunde loop=$KundenId} {section name=kunde loop=$KundenId}
@@ -187,7 +187,7 @@ address: {$Adressen[kunde]}<br>
<![CDATA[ <![CDATA[
id: 1000<br> id: 1000<br>
name: Peter M<EFBFBD>ller <br> name: Peter Müller <br>
adresse: 253 N 45th<br> adresse: 253 N 45th<br>
<p> <p>
id: 1001<br> id: 1001<br>
@@ -255,8 +255,8 @@ $smarty->assign('contact_info', $info);
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
{* {*
Sections k<EFBFBD>nnen unbegrenzt tief verschachtelt werden. Mit Sections können unbegrenzt tief verschachtelt werden. Mit
verschachtelten 'sections' k<EFBFBD>nnen Sie auf komplexe Datenstrukturen verschachtelten 'sections' können Sie auf komplexe Datenstrukturen
zugreifen (wie zum Beispiel multidimensionale Arrays). Im folgenden zugreifen (wie zum Beispiel multidimensionale Arrays). Im folgenden
Beispiel ist $contact_type[customer] ein Array mit Kontakttypen des Beispiel ist $contact_type[customer] ein Array mit Kontakttypen des
aktuellen Kunden. aktuellen Kunden.
@@ -333,7 +333,7 @@ e-mail: {$contacts[customer].email}
</p> </p>
{/section} {/section}
{* Anm. d. <EFBFBD>bersetzers: Oft ist die Anwendung von 'foreach' k<EFBFBD>rzer. *} {* Anm. d. übersetzers: Oft ist die Anwendung von 'foreach' kürzer. *}
{foreach item=customer from=$contacts} {foreach item=customer from=$contacts}
<p> <p>
@@ -400,8 +400,8 @@ keine Werte in $custid gefunden
<para> <para>
Bermerkung: Seit Smarty 1.5.0 hat sich die Syntax der 'section' Bermerkung: Seit Smarty 1.5.0 hat sich die Syntax der 'section'
Eigenschaften von {%sectionname.varname%} zu Eigenschaften von {%sectionname.varname%} zu
{$smarty.section.sectionname.varname} ge<EFBFBD>ndert. Die alte Syntax {$smarty.section.sectionname.varname} geändert. Die alte Syntax
wird noch immer unterst<EFBFBD>tzt, die Dokumentation erw<EFBFBD>hnt jedoch nur wird noch immer unterstützt, die Dokumentation erwähnt jedoch nur
noch die neue Schreibweise. noch die neue Schreibweise.
</para> </para>
</note> </note>
@@ -411,12 +411,12 @@ keine Werte in $custid gefunden
'index' wird verwendet, um den aktuellen Schleifen-Index 'index' wird verwendet, um den aktuellen Schleifen-Index
anzuzeigen. Er startet bei 0 (beziehungsweise der definierten anzuzeigen. Er startet bei 0 (beziehungsweise der definierten
Startposition) und inkrementiert in 1-er Schritten (beziehungsweise Startposition) und inkrementiert in 1-er Schritten (beziehungsweise
der definierten Schrittgr<EFBFBD>sse). der definierten Schrittgrösse).
</para> </para>
<note> <note>
<title>Technische Bemerkung</title> <title>Technische Bemerkung</title>
<para> <para>
Wenn 'step' und 'start' nicht <EFBFBD>bergeben werden, verh<EFBFBD>lt sich der Wenn 'step' und 'start' nicht übergeben werden, verhält sich der
Wert wie die 'section'-Eigenschaft 'iteration', ausser dass er bei Wert wie die 'section'-Eigenschaft 'iteration', ausser dass er bei
0 anstatt 1 beginnt. 0 anstatt 1 beginnt.
</para> </para>
@@ -456,7 +456,7 @@ keine Werte in $custid gefunden
{$smarty.section.customer.index} id: {$custid[customer]}<br> {$smarty.section.customer.index} id: {$custid[customer]}<br>
{* zur Information, $custid[customer.index] und $custid[customer] bedeuten das selbe *} {* zur Information, $custid[customer.index] und $custid[customer] bedeuten das selbe *}
{if $custid[customer.index_prev] ne $custid[customer.index]} {if $custid[customer.index_prev] ne $custid[customer.index]}
Die Kundennummer hat sich ge<EFBFBD>ndert.<br> Die Kundennummer hat sich geändert.<br>
{/if} {/if}
{/section} {/section}
]]> ]]>
@@ -467,11 +467,11 @@ keine Werte in $custid gefunden
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
0 id: 1000<br> 0 id: 1000<br>
Die Kundennummer hat sich ge<EFBFBD>ndert.<br> Die Kundennummer hat sich geändert.<br>
1 id: 1001<br> 1 id: 1001<br>
Die Kundennummer hat sich ge<EFBFBD>ndert.<br> Die Kundennummer hat sich geändert.<br>
2 id: 1002<br> 2 id: 1002<br>
Die Kundennummer hat sich ge<EFBFBD>ndert.<br> Die Kundennummer hat sich geändert.<br>
]]> ]]>
</programlisting> </programlisting>
</example> </example>
@@ -479,8 +479,8 @@ keine Werte in $custid gefunden
<sect2 id="section.property.index.next"> <sect2 id="section.property.index.next">
<title>index_next</title> <title>index_next</title>
<para> <para>
'index_next' wird verwendet um den n<EFBFBD>chsten 'loop'-Index 'index_next' wird verwendet um den nächsten 'loop'-Index
auszugeben. Bei der letzten Iteration ist dieser Wert um 1 gr<EFBFBD>sser auszugeben. Bei der letzten Iteration ist dieser Wert um 1 grösser
als der aktuelle 'loop'-Index (inklusive dem definierten 'step' als der aktuelle 'loop'-Index (inklusive dem definierten 'step'
Wert). Wert).
</para> </para>
@@ -492,7 +492,7 @@ keine Werte in $custid gefunden
{$smarty.section.customer.index} id: {$custid[customer]}<br> {$smarty.section.customer.index} id: {$custid[customer]}<br>
{* zur Information, $custid[customer.index] und $custid[customer] bedeuten das selbe *} {* zur Information, $custid[customer.index] und $custid[customer] bedeuten das selbe *}
{if $custid[customer.index_next] ne $custid[customer.index]} {if $custid[customer.index_next] ne $custid[customer.index]}
Die Kundennummer wird sich <EFBFBD>ndern.<br> Die Kundennummer wird sich ändern.<br>
{/if} {/if}
{/section} {/section}
]]> ]]>
@@ -503,12 +503,12 @@ keine Werte in $custid gefunden
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
0 id: 1000<br> 0 id: 1000<br>
Die Kundennummer wird sich <EFBFBD>ndern.<br> Die Kundennummer wird sich ändern.<br>
1 id: 1001<br> 1 id: 1001<br>
Die Kundennummer wird sich <EFBFBD>ndern.<br> Die Kundennummer wird sich ändern.<br>
2 id: 1002<br> 2 id: 1002<br>
Die Kundennummer wird sich <EFBFBD>ndern.<br> Die Kundennummer wird sich ändern.<br>
]]<EFBFBD> ]]Š
</programlisting> </programlisting>
</example> </example>
</sect2> </sect2>
@@ -521,7 +521,7 @@ keine Werte in $custid gefunden
Bemerkung: Die Eigenschaften 'start', 'step' und 'max' Bemerkung: Die Eigenschaften 'start', 'step' und 'max'
beeinflussen 'iteration' nicht, die Eigenschaft 'index' jedoch beeinflussen 'iteration' nicht, die Eigenschaft 'index' jedoch
schon. 'iteration' startet im gegensatz zu 'index' bei 1. 'rownum' schon. 'iteration' startet im gegensatz zu 'index' bei 1. 'rownum'
ist ein Alias f<EFBFBD>r 'iteration' und arbeitet identisch. ist ein Alias für 'iteration' und arbeitet identisch.
</para> </para>
<example> <example>
<title>'section'-Eigenschaft 'iteration'</title> <title>'section'-Eigenschaft 'iteration'</title>
@@ -532,7 +532,7 @@ aktuelle loop iteration: {$smarty.section.customer.iteration}<br>
{$smarty.section.customer.index} id: {$custid[customer]}<br> {$smarty.section.customer.index} id: {$custid[customer]}<br>
{* zur Information, $custid[customer.index] und $custid[customer] bedeuten das gleiche *} {* zur Information, $custid[customer.index] und $custid[customer] bedeuten das gleiche *}
{if $custid[customer.index_next] ne $custid[customer.index]} {if $custid[customer.index_next] ne $custid[customer.index]}
Die Kundennummer wird sich <EFBFBD>ndern.<br> Die Kundennummer wird sich ändern.<br>
{/if} {/if}
{/section} {/section}
]]> ]]>
@@ -544,13 +544,13 @@ aktuelle loop iteration: {$smarty.section.customer.iteration}<br>
<![CDATA[ <![CDATA[
aktuelle loop iteration: 1 aktuelle loop iteration: 1
5 id: 1000<br> 5 id: 1000<br>
Die Kundennummer wird sich <EFBFBD>ndern.<br> Die Kundennummer wird sich ändern.<br>
aktuelle loop iteration: 2 aktuelle loop iteration: 2
7 id: 1001<br> 7 id: 1001<br>
Die Kundennummer wird sich <EFBFBD>ndern.<br> Die Kundennummer wird sich ändern.<br>
aktuelle loop iteration: 3 aktuelle loop iteration: 3
9 id: 1002<br> 9 id: 1002<br>
Die Kundennummer wird sich <EFBFBD>ndern.<br> Die Kundennummer wird sich ändern.<br>
]]> ]]>
</programlisting> </programlisting>
</example> </example>
@@ -635,7 +635,7 @@ aktuelle loop iteration: 3
<title>rownum</title> <title>rownum</title>
<para> <para>
'rownum' wird verwendet um die aktuelle Iteration (startend bei 1) 'rownum' wird verwendet um die aktuelle Iteration (startend bei 1)
auszugeben. 'rownum' ist ein Alias f<EFBFBD>r 'iteration' und arbeitet auszugeben. 'rownum' ist ein Alias für 'iteration' und arbeitet
identisch. identisch.
</para> </para>
<example> <example>

View File

@@ -5,21 +5,21 @@
<title>strip</title> <title>strip</title>
<para> <para>
Webdesigner haben oft das Problem, dass Leerzeichen und Webdesigner haben oft das Problem, dass Leerzeichen und
Zeilenumbr<EFBFBD>che die Ausgabe des erzeugten HTML im Browser Zeilenumbrüche die Ausgabe des erzeugten HTML im Browser
beeinflussen. Oft werden deshalb alle Tags aufeinanderfolgend im beeinflussen. Oft werden deshalb alle Tags aufeinanderfolgend im
Template notiert, was aber zu einer schlechten Lesbarkeit f<EFBFBD>hrt. Template notiert, was aber zu einer schlechten Lesbarkeit führt.
</para> </para>
<para> <para>
Aus dem Inhalt zwischen den {strip}{/strip}-Tags werden alle Aus dem Inhalt zwischen den {strip}{/strip}-Tags werden alle
Leerzeichen und Zeilenumbr<EFBFBD>che entfernt. So k<EFBFBD>nnen Sie Ihre Leerzeichen und Zeilenumbrüche entfernt. So können Sie Ihre
Templates lesbar halten, ohne sich Sorgen um die Leerzeichen zu Templates lesbar halten, ohne sich Sorgen um die Leerzeichen zu
machen. machen.
</para> </para>
<note> <note>
<title>Technische Bemerkung</title> <title>Technische Bemerkung</title>
<para> <para>
{strip}{/strip} <EFBFBD>ndert nicht den Inhalt einer Template-Variablen. {strip}{/strip} ändert nicht den Inhalt einer Template-Variablen.
Daf<EFBFBD>r gibt es den <link linkend="language.modifier.strip">strip Dafür gibt es den <link linkend="language.modifier.strip">strip
Modifikator</link>. Modifikator</link>.
</para> </para>
</note> </note>
@@ -54,7 +54,7 @@
Achtung: im obigen Beispiel beginnen und enden alle Zeilen mit Achtung: im obigen Beispiel beginnen und enden alle Zeilen mit
HTML-Tags. Falls Sie Abschnitte haben, die nur Text enthalten, HTML-Tags. Falls Sie Abschnitte haben, die nur Text enthalten,
werden diese ebenfalls zusammengeschlossen. Das kann zu werden diese ebenfalls zusammengeschlossen. Das kann zu
unerw<EFBFBD>nschten Resultaten f<EFBFBD>hren. unerwünschten Resultaten führen.
</para> </para>
<para> <para>
Siehe auch <link linkend="language.modifier.strip">strip-Modifikator Siehe auch <link linkend="language.modifier.strip">strip-Modifikator

View File

@@ -4,10 +4,10 @@
<chapter id="language.combining.modifiers"> <chapter id="language.combining.modifiers">
<title>Kombinieren von Modifikatoren</title> <title>Kombinieren von Modifikatoren</title>
<para> <para>
Sie k<EFBFBD>nnen auf eine Variable so viele Modifikatoren anwenden Sie können auf eine Variable so viele Modifikatoren anwenden
wie Sie m<EFBFBD>chten. Die Modifkatoren werden in der Reihenfolge wie Sie möchten. Die Modifkatoren werden in der Reihenfolge
angewandt, in der sie notiert wurden - von links nach rechts. angewandt, in der sie notiert wurden - von links nach rechts.
Kombinierte Modifikatoren m<EFBFBD>ssen mit einem Kombinierte Modifikatoren müssen mit einem
<literal>|</literal>-Zeichen (pipe) getrennt werden. <literal>|</literal>-Zeichen (pipe) getrennt werden.
</para> </para>
<example> <example>
@@ -18,15 +18,15 @@
$smarty->assign('articleTitle', $smarty->assign('articleTitle',
'Einem Stadtrat in Salem in Pennsylvania (USA) droht eine 'Einem Stadtrat in Salem in Pennsylvania (USA) droht eine
zweij<EFBFBD>hrige Haftstrafe, da eine von ihm gehaltene Rede sechs zweijährige Haftstrafe, da eine von ihm gehaltene Rede sechs
Minuten l<EFBFBD>nger dauerte, als erlaubt. Die Redezeit ist auf maximal Minuten länger dauerte, als erlaubt. Die Redezeit ist auf maximal
f<EFBFBD>nf Minuten begrenzt.'); fünf Minuten begrenzt.');
?> ?>
]]> ]]>
</programlisting> </programlisting>
<para> <para>
Wobei das Template dann folgendes ent<EFBFBD>lt: Wobei das Template dann folgendes entält:
</para> </para>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[

View File

@@ -65,8 +65,8 @@ Der Wert von $name ist Bob.</programlisting>
<para> <para>
Um auf zugewiesene Variablen von php aus zuzugreifen nimmt man Um auf zugewiesene Variablen von php aus zuzugreifen nimmt man
<link linkend="api.get.template.vars">get_template_vars()</link>. <link linkend="api.get.template.vars">get_template_vars()</link>.
Die zugewiesenen variablen sind jedoch nur w<EFBFBD>rhend bzw. nach der Die zugewiesenen variablen sind jedoch nur wärhend bzw. nach der
Ausgabe des Template verf<EFBFBD>gbar. Ausgabe des Template verfügbar.
</para> </para>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
@@ -84,7 +84,7 @@ echo $smarty->get_template_vars('foo');
// das Template in eine ungenutzte Variable ausgeben // das Template in eine ungenutzte Variable ausgeben
$nix = $smarty->fetch('index.tpl'); $nix = $smarty->fetch('index.tpl');
// Gibt 'smarty' aus, da die {assign} anweisung im Template ausgef<EFBFBD>hrt // Gibt 'smarty' aus, da die {assign} anweisung im Template ausgeführt
// wurde // wurde
echo $smarty->get_template_vars('foo'); echo $smarty->get_template_vars('foo');

View File

@@ -2,18 +2,18 @@
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.5 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.5 Maintainer: andreas Status: ready -->
<sect1 id="language.function.counter"> <sect1 id="language.function.counter">
<title>{counter} (Z<EFBFBD>hler)</title> <title>{counter} (Zähler)</title>
<para> <para>
{counter} wird verwendet um eine Zahlenreihe auszugeben. Sie k<EFBFBD>nnen {counter} wird verwendet um eine Zahlenreihe auszugeben. Sie können
den Initialwert bestimmen, den Z<EFBFBD>hlinterval, die Richtung in der den Initialwert bestimmen, den Zählinterval, die Richtung in der
gez<EFBFBD>hlt werden soll und ob der Wert ausgegeben wird. Sie k<EFBFBD>nnen gezählt werden soll und ob der Wert ausgegeben wird. Sie können
mehrere Z<EFBFBD>hler gleichzeitig laufen lassen, in dem Sie ihnen mehrere Zähler gleichzeitig laufen lassen, in dem Sie ihnen
einmalige Namen geben. Wenn Sie keinen Wert f<EFBFBD>r 'name' <EFBFBD>bergeben, einmalige Namen geben. Wenn Sie keinen Wert für 'name' übergeben,
wird 'default' verwendet. wird 'default' verwendet.
</para> </para>
<para> <para>
Wenn Sie das spezielle 'assign'-Attribut verwenden, wird die Ausgabe Wenn Sie das spezielle 'assign'-Attribut verwenden, wird die Ausgabe
des Z<EFBFBD>hlers dieser Template-Variable zugewiesen anstatt ausgegeben des Zählers dieser Template-Variable zugewiesen anstatt ausgegeben
zu werden. zu werden.
</para> </para>
<informaltable frame="all"> <informaltable frame="all">
@@ -38,7 +38,7 @@
<entry>string</entry> <entry>string</entry>
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>default</emphasis></entry> <entry><emphasis>default</emphasis></entry>
<entry>Der Name des Z<EFBFBD>hlers.</entry> <entry>Der Name des Zählers.</entry>
</row> </row>
<row> <row>
<entry>start</entry> <entry>start</entry>
@@ -79,10 +79,10 @@
</tgroup> </tgroup>
</informaltable> </informaltable>
<example> <example>
<title>{counter} (Z<EFBFBD>hler)</title> <title>{counter} (Zähler)</title>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
{* z<EFBFBD>hler initialisieren *} {* zähler initialisieren *}
{counter start=0 skip=2}<br /> {counter start=0 skip=2}<br />
{counter}<br /> {counter}<br />
{counter}<br /> {counter}<br />

View File

@@ -55,7 +55,7 @@
<entry>boolean</entry> <entry>boolean</entry>
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>true</emphasis></entry> <entry><emphasis>true</emphasis></entry>
<entry>Definiert ob der n<EFBFBD>chste Wert automatisch angesprungen <entry>Definiert ob der nächste Wert automatisch angesprungen
werden soll.</entry> werden soll.</entry>
</row> </row>
<row> <row>
@@ -78,27 +78,27 @@
<entry>boolean</entry> <entry>boolean</entry>
<entry>No</entry> <entry>No</entry>
<entry><emphasis>false</emphasis></entry> <entry><emphasis>false</emphasis></entry>
<entry>Der Zyklus wird auf den ersten Wert zur<EFBFBD>ckgesetzt.</entry> <entry>Der Zyklus wird auf den ersten Wert zurückgesetzt.</entry>
</row> </row>
</tbody> </tbody>
</tgroup> </tgroup>
</informaltable> </informaltable>
<para> <para>
Sie k<EFBFBD>nnen durch mehrere Sets gleichzeitig iterieren, indem Sie den Sie können durch mehrere Sets gleichzeitig iterieren, indem Sie den
Sets einmalige Namen geben. Sets einmalige Namen geben.
</para> </para>
<para> <para>
Um den aktuellen Wert nicht auszugeben, kann das 'print' Attribut Um den aktuellen Wert nicht auszugeben, kann das 'print' Attribut
auf 'false' gesetzt werden. Dies k<EFBFBD>nnte sinnvoll sein, wenn man auf 'false' gesetzt werden. Dies könnte sinnvoll sein, wenn man
einen einzelnen Wert <EFBFBD>berspringen m<EFBFBD>chte. einen einzelnen Wert überspringen möchte.
</para> </para>
<para> <para>
Das 'advance'-Attribut wird verwendet um einen Wert zu wiederholen. Das 'advance'-Attribut wird verwendet um einen Wert zu wiederholen.
Wenn auf 'false' gesetzt, wird bei der n<EFBFBD>chsten Iteration der selbe Wenn auf 'false' gesetzt, wird bei der nächsten Iteration der selbe
Wert erneut ausgegeben. Wert erneut ausgegeben.
</para> </para>
<para> <para>
Wenn sie das spezielle 'assign'-Attribut <EFBFBD>bergeben, wird die Ausgabe Wenn sie das spezielle 'assign'-Attribut übergeben, wird die Ausgabe
der {cycle}-Funktion in dieser Template-Variable abgelegt, anstatt der {cycle}-Funktion in dieser Template-Variable abgelegt, anstatt
ausgegeben zu werden. ausgegeben zu werden.
</para> </para>

View File

@@ -33,7 +33,7 @@
<para> <para>
{debug} zeigt die 'debugging'-Konsole auf der Seite an. <link {debug} zeigt die 'debugging'-Konsole auf der Seite an. <link
linkend="chapter.debugging.console">$debug</link> hat darauf keinen linkend="chapter.debugging.console">$debug</link> hat darauf keinen
Einfluss. Da die Ausgabe zur Laufzeit geschieht, k<EFBFBD>nnen die Einfluss. Da die Ausgabe zur Laufzeit geschieht, können die
Template-Namen hier nicht ausgegeben werden. Sie erhalten jedoch Template-Namen hier nicht ausgegeben werden. Sie erhalten jedoch
eine Liste aller mit <link linkend="api.assign">assigned</link> eine Liste aller mit <link linkend="api.assign">assigned</link>
zugewiesenen Variablen und deren Werten. zugewiesenen Variablen und deren Werten.

View File

@@ -43,7 +43,7 @@
</tgroup> </tgroup>
</informaltable> </informaltable>
<para> <para>
Wenn Sie das spezielle 'assign'-Attribut <EFBFBD>bergeben, wird die Ausgabe Wenn Sie das spezielle 'assign'-Attribut übergeben, wird die Ausgabe
von 'eval' in dieser Template-Variable gespeichert und nicht von 'eval' in dieser Template-Variable gespeichert und nicht
ausgegeben. ausgegeben.
</para> </para>

View File

@@ -5,11 +5,11 @@
<title>{fetch}</title> <title>{fetch}</title>
<para> <para>
{fetch} wird verwendet um lokale oder via HTTP beziehungsweise FTP {fetch} wird verwendet um lokale oder via HTTP beziehungsweise FTP
verf<EFBFBD>gbare Inhalte auszugeben. Wenn der Dateiname mit 'http://' verfügbare Inhalte auszugeben. Wenn der Dateiname mit 'http://'
anf<EFBFBD>ngt, wird die angegebene Webseite geladen und angezeigt. Wenn anfängt, wird die angegebene Webseite geladen und angezeigt. Wenn
der Dateiname mit 'ftp://' anf<EFBFBD>ngt wird die Datei vom FTP-Server der Dateiname mit 'ftp://' anfängt wird die Datei vom FTP-Server
geladen und angezeigt. F<EFBFBD>r lokale Dateien muss der absolute Pfad, geladen und angezeigt. Für lokale Dateien muss der absolute Pfad,
oder ein Pfad relativ zum ausgef<EFBFBD>hrten Skript <EFBFBD>bergeben werden. oder ein Pfad relativ zum ausgeführten Skript übergeben werden.
</para> </para>
<informaltable frame="all"> <informaltable frame="all">
<tgroup cols="5"> <tgroup cols="5">
@@ -46,15 +46,15 @@
</tgroup> </tgroup>
</informaltable> </informaltable>
<para> <para>
Wenn Sie das spezielle 'assign'-Attribut <EFBFBD>bergeben, wird die Ausgabe Wenn Sie das spezielle 'assign'-Attribut übergeben, wird die Ausgabe
der {fetch}-Funktion dieser Template-Variable zugewiesen, anstatt der {fetch}-Funktion dieser Template-Variable zugewiesen, anstatt
ausgegeben zu werden (seit Smarty 1.5.0). ausgegeben zu werden (seit Smarty 1.5.0).
</para> </para>
<note> <note>
<title>Technische Bemerkung</title> <title>Technische Bemerkung</title>
<para> <para>
HTTP-Redirects werden nicht unterst<EFBFBD>tzt, stellen Sie sicher, dass HTTP-Redirects werden nicht unterstützt, stellen Sie sicher, dass
die aufgerufene URL falls n<EFBFBD>tig durch ein '/'-Zeichen (slash) die aufgerufene URL falls nötig durch ein '/'-Zeichen (slash)
beendet wird. beendet wird.
</para> </para>
</note> </note>
@@ -62,7 +62,7 @@
<title>Technische Bemerkung</title> <title>Technische Bemerkung</title>
<para> <para>
Wenn Sicherheit eingeschaltet ist, und Dateien vom lokalen System Wenn Sicherheit eingeschaltet ist, und Dateien vom lokalen System
geladen werden sollen, ist dies nur f<EFBFBD>r Dateien erlaubt welche sich geladen werden sollen, ist dies nur für Dateien erlaubt welche sich
in einem definierten sicheren Verzeichnis befinden. in einem definierten sicheren Verzeichnis befinden.
(<link linkend="variable.secure.dir">$secure_dir</link>) (<link linkend="variable.secure.dir">$secure_dir</link>)
</para> </para>

View File

@@ -32,21 +32,21 @@
<entry>array</entry> <entry>array</entry>
<entry>ja, ausser wenn das option Attribut verwendet wird</entry> <entry>ja, ausser wenn das option Attribut verwendet wird</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>ein Array mit Werten f<EFBFBD>r die checkboxes</entry> <entry>ein Array mit Werten für die checkboxes</entry>
</row> </row>
<row> <row>
<entry>output</entry> <entry>output</entry>
<entry>array</entry> <entry>array</entry>
<entry>ja, ausser wenn das option Attribut verwendet wird</entry> <entry>ja, ausser wenn das option Attribut verwendet wird</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>ein Array mit Werten f<EFBFBD>r checkbox Kn<EFBFBD>pfe</entry> <entry>ein Array mit Werten für checkbox Knöpfe</entry>
</row> </row>
<row> <row>
<entry>selected</entry> <entry>selected</entry>
<entry>string/array</entry> <entry>string/array</entry>
<entry>No</entry> <entry>No</entry>
<entry><emphasis>empty</emphasis></entry> <entry><emphasis>empty</emphasis></entry>
<entry>das/die ausgew<EFBFBD>hlten checkbox Elemente</entry> <entry>das/die ausgewählten checkbox Elemente</entry>
</row> </row>
<row> <row>
<entry>options</entry> <entry>options</entry>
@@ -60,14 +60,14 @@
<entry>string</entry> <entry>string</entry>
<entry>No</entry> <entry>No</entry>
<entry><emphasis>empty</emphasis></entry> <entry><emphasis>empty</emphasis></entry>
<entry>Zeichenkette die zwischen den checkbox Elementen eingef<EFBFBD>gt werden soll</entry> <entry>Zeichenkette die zwischen den checkbox Elementen eingefügt werden soll</entry>
</row> </row>
<row> <row>
<entry>labels</entry> <entry>labels</entry>
<entry>boolean</entry> <entry>boolean</entry>
<entry>No</entry> <entry>No</entry>
<entry><emphasis>true</emphasis></entry> <entry><emphasis>true</emphasis></entry>
<entry>f<EFBFBD>gt der Ausgabe &lt;label&gt;-Tags hinzu</entry> <entry>fügt der Ausgabe &lt;label&gt;-Tags hinzu</entry>
</row> </row>
</tbody> </tbody>
</tgroup> </tgroup>
@@ -75,12 +75,12 @@
<para> <para>
html_checkboxes ist eine <link html_checkboxes ist eine <link
linkend="language.custom.functions">Funktion</link> die aus den linkend="language.custom.functions">Funktion</link> die aus den
<EFBFBD>bergebenen Daten html checkbox Elemente erstellt und k<EFBFBD>mmert sich übergebenen Daten html checkbox Elemente erstellt und kümmert sich
darum welche Elemente ausgew<EFBFBD>hlt sind. Erforderliche Attribute sind darum welche Elemente ausgewählt sind. Erforderliche Attribute sind
Wert/Ausgabe oder Options. Die Ausgabe ist XHTML kompatibel Wert/Ausgabe oder Options. Die Ausgabe ist XHTML kompatibel
</para> </para>
<para> <para>
Alle Parameter die nicht in der Liste erw<EFBFBD>hnt werden, werden ausgegeben. Alle Parameter die nicht in der Liste erwähnt werden, werden ausgegeben.
</para> </para>
<example> <example>
<title>{html_checkboxes}</title> <title>{html_checkboxes}</title>

View File

@@ -6,9 +6,9 @@
<para> <para>
{html_image} ist eine <link {html_image} ist eine <link
linkend="language.custom.functions">eigene Funktion</link> die ein linkend="language.custom.functions">eigene Funktion</link> die ein
HTML Tag f<EFBFBD>r ein Bild erzeugt. Die H<EFBFBD>he und Breite der Ausgabe wird HTML Tag für ein Bild erzeugt. Die Höhe und Breite der Ausgabe wird
automatisch aus der Bilddatei berechnet wenn die Werte nicht automatisch aus der Bilddatei berechnet wenn die Werte nicht
<EFBFBD>bergeben werden. übergeben werden.
</para> </para>
<informaltable frame="all"> <informaltable frame="all">
@@ -39,8 +39,8 @@
<entry>height</entry> <entry>height</entry>
<entry>string</entry> <entry>string</entry>
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>Normale H<EFBFBD>he des Bildes</emphasis></entry> <entry><emphasis>Normale Höhe des Bildes</emphasis></entry>
<entry>H<EFBFBD>he des Bildes</entry> <entry>Höhe des Bildes</entry>
</row> </row>
<row> <row>
<entry>width</entry> <entry>width</entry>
@@ -54,7 +54,7 @@
<entry>string</entry> <entry>string</entry>
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>DOCUMENT_ROOT</emphasis></entry> <entry><emphasis>DOCUMENT_ROOT</emphasis></entry>
<entry>Basisverzeichnis f<EFBFBD>r relative Pfadangaben</entry> <entry>Basisverzeichnis für relative Pfadangaben</entry>
</row> </row>
<row> <row>
<entry>alt</entry> <entry>alt</entry>
@@ -68,35 +68,35 @@
<entry>string</entry> <entry>string</entry>
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>Link f<EFBFBD>r das Bild</entry> <entry>Link für das Bild</entry>
</row> </row>
<row> <row>
<entry>path_prefix</entry> <entry>path_prefix</entry>
<entry>string</entry> <entry>string</entry>
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>Pr<EFBFBD>fix f<EFBFBD>r den Pfad zum Bild</entry> <entry>Präfix für den Pfad zum Bild</entry>
</row> </row>
</tbody> </tbody>
</tgroup> </tgroup>
</informaltable> </informaltable>
<para> <para>
basedir ist der Basispfad der f<EFBFBD>r die Verlinkung verwendet werden basedir ist der Basispfad der für die Verlinkung verwendet werden
soll. Wenn kein Wert <EFBFBD>bergeben wird, wird die <link soll. Wenn kein Wert übergeben wird, wird die <link
linkend="language.variables.smarty">Umgebungsvariable</link> linkend="language.variables.smarty">Umgebungsvariable</link>
DOCUMENT_ROOT verwendet. Wenn <link DOCUMENT_ROOT verwendet. Wenn <link
linkend="variable.security">Sicherheit</link> eingeschaltet ist, linkend="variable.security">Sicherheit</link> eingeschaltet ist,
muss das Bild in einem sicheren Verzeichnis liegen. muss das Bild in einem sicheren Verzeichnis liegen.
</para> </para>
<para> <para>
<parameter>href</parameter> ist das href Attribut f<EFBFBD>r das <parameter>href</parameter> ist das href Attribut für das
Image-Tag. Wenn dieser Wert <EFBFBD>bergeben wird, wird um das Bild ein Image-Tag. Wenn dieser Wert übergeben wird, wird um das Bild ein
&lt;a href="LINKVALUE"&gt;&lt;a&gt; Tag erzeugt. &lt;a href="LINKVALUE"&gt;&lt;a&gt; Tag erzeugt.
</para> </para>
<para> <para>
<parameter>path_prefix</parameter> ist ein optionaler Pr<EFBFBD>fix der dem <parameter>path_prefix</parameter> ist ein optionaler Präfix der dem
Bildpfad vorangestellt wird. Die ist n<EFBFBD>tzlich wenn zum Beispiel f<EFBFBD>r Bildpfad vorangestellt wird. Die ist nützlich wenn zum Beispiel für
den Bildpfad ein anderer Servername verwendet werden soll. den Bildpfad ein anderer Servername verwendet werden soll.
</para> </para>
<para> <para>
@@ -106,10 +106,10 @@
<note> <note>
<title>Technische Bemerkung</title> <title>Technische Bemerkung</title>
<para> <para>
{html_image} greift auf das Dateisystem zu um H<EFBFBD>he und Breite zu {html_image} greift auf das Dateisystem zu um Höhe und Breite zu
errechnen. Wenn Sie <link linkend="caching">caching</link> nicht errechnen. Wenn Sie <link linkend="caching">caching</link> nicht
verwenden sollten Sie normalerweise auf diese Funktion aus verwenden sollten Sie normalerweise auf diese Funktion aus
performance Gr<EFBFBD>nden verzichten. performance Gründen verzichten.
</para> </para>
</note> </note>
<example> <example>
@@ -124,7 +124,7 @@ Wobei index.tpl wie folgt aussieht:
]]> ]]>
</programlisting> </programlisting>
<para> <para>
M<EFBFBD>gliche Ausgabe: Mögliche Ausgabe:
</para> </para>
<screen> <screen>
<![CDATA[ <![CDATA[

View File

@@ -5,9 +5,9 @@
<title>html_options (Ausgabe von HTML-Options)</title> <title>html_options (Ausgabe von HTML-Options)</title>
<para> <para>
{html_options} wird verwendet um HTML-Options Listen mit den {html_options} wird verwendet um HTML-Options Listen mit den
<EFBFBD>bergebenen Daten zu erzeugen. Die <link übergebenen Daten zu erzeugen. Die <link
linkend="language.custom.functions">Funktion</link> k<EFBFBD>mmert sich linkend="language.custom.functions">Funktion</link> kümmert sich
ebenfalls um das setzen des ausgew<EFBFBD>hlten Standardwertes. Die ebenfalls um das setzen des ausgewählten Standardwertes. Die
Attribute 'values' und 'output' sind erforderlich, ausser man Attribute 'values' und 'output' sind erforderlich, ausser man
verwendet das Attribut 'options'. verwendet das Attribut 'options'.
</para> </para>
@@ -34,21 +34,21 @@
<entry>array</entry> <entry>array</entry>
<entry>Ja, ausser 'options'-Attribut wird verwendet.</entry> <entry>Ja, ausser 'options'-Attribut wird verwendet.</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>Array mit Werten f<EFBFBD>r die dropdown-Liste.</entry> <entry>Array mit Werten für die dropdown-Liste.</entry>
</row> </row>
<row> <row>
<entry>output</entry> <entry>output</entry>
<entry>array</entry> <entry>array</entry>
<entry>Ja, ausser 'options'-Attribut wird verwendet.</entry> <entry>Ja, ausser 'options'-Attribut wird verwendet.</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>Arrays mit Namen f<EFBFBD>r die dropdown-Liste.</entry> <entry>Arrays mit Namen für die dropdown-Liste.</entry>
</row> </row>
<row> <row>
<entry>selected</entry> <entry>selected</entry>
<entry>string/array</entry> <entry>string/array</entry>
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>empty</emphasis></entry> <entry><emphasis>empty</emphasis></entry>
<entry>Das ausgew<EFBFBD>hlte Array Element.</entry> <entry>Das ausgewählte Array Element.</entry>
</row> </row>
<row> <row>
<entry>options</entry> <entry>options</entry>
@@ -64,7 +64,7 @@
<para> <para>
Wenn ein Wert als Array erkannt wird, wird er als HTML-OPTGROUP Wenn ein Wert als Array erkannt wird, wird er als HTML-OPTGROUP
ausgegeben und die Werte werden in Gruppen dargestellt. Rekursion ausgegeben und die Werte werden in Gruppen dargestellt. Rekursion
wird unterst<EFBFBD>tzt. Die Ausgabe ist XHTML kompatibel. wird unterstützt. Die Ausgabe ist XHTML kompatibel.
</para> </para>
<para> <para>
Wenn das (optionale) Attribute <emphasis>name</emphasis> angegeben Wenn das (optionale) Attribute <emphasis>name</emphasis> angegeben
@@ -74,7 +74,7 @@
<para> <para>
Alle Parameter die deren Namen nicht in der obigen Liste genannt Alle Parameter die deren Namen nicht in der obigen Liste genannt
wurde, werden dem &lt;select&gt;-Tag als Name/Wert-Paare wurde, werden dem &lt;select&gt;-Tag als Name/Wert-Paare
hinzugef<EFBFBD>gt. Die Parameter werden ignoriert, wenn kein hinzugefügt. Die Parameter werden ignoriert, wenn kein
<emphasis>name</emphasis>-Attribute angegeben wurde. <emphasis>name</emphasis>-Attribute angegeben wurde.
</para> </para>
<example> <example>

View File

@@ -92,7 +92,7 @@
<note> <note>
<title>Technische Bemerkung</title> <title>Technische Bemerkung</title>
<para> <para>
Javascript ist wahrscheinlich die beste Methode, die Daten f<EFBFBD>r WebSpider unzug&auml;nglich zu machen. Javascript ist wahrscheinlich die beste Methode, die Daten für WebSpider unzug&auml;nglich zu machen.
</para> </para>
</note> </note>
<example> <example>

View File

@@ -4,12 +4,12 @@
<chapter id="language.modifiers"> <chapter id="language.modifiers">
<title>Variablen-Modifikatoren</title> <title>Variablen-Modifikatoren</title>
<para> <para>
Variablen-Modifikatoren k<EFBFBD>nnen auf alle Variablen angewendet Variablen-Modifikatoren können auf alle Variablen angewendet
werden, um deren Inhalt zu ver<EFBFBD>ndern. Dazu h<EFBFBD>ngen sie einfach werden, um deren Inhalt zu verändern. Dazu hängen sie einfach
ein <literal>|</literal> (Pipe-Zeichen) und den Modifikatornamen an ein <literal>|</literal> (Pipe-Zeichen) und den Modifikatornamen an
die entsprechende Variable an. Ein Modifikator <EFBFBD>ber Parameter in die entsprechende Variable an. Ein Modifikator über Parameter in
seiner Arbeitsweise beinflusst werden. Diese Parameter werden dem seiner Arbeitsweise beinflusst werden. Diese Parameter werden dem
Modifikatorname angeh<EFBFBD>ngt und mit <literal>:</literal> getrennt. Modifikatorname angehängt und mit <literal>:</literal> getrennt.
</para> </para>
<example> <example>
<title>Modifikator Beispiel</title> <title>Modifikator Beispiel</title>
@@ -45,7 +45,7 @@
des Arrays $artikelTitel aus.) des Arrays $artikelTitel aus.)
</para> </para>
<para> <para>
Modifikatoren k<EFBFBD>nnen aus Ihrem <link Modifikatoren können aus Ihrem <link
linkend="variable.plugins.dir">$plugins_dir</link> automatisch linkend="variable.plugins.dir">$plugins_dir</link> automatisch
geladen (sehen Sie dazu auch <link geladen (sehen Sie dazu auch <link
linkend="plugins.naming.conventions">Naming Conventions</link>) oder linkend="plugins.naming.conventions">Naming Conventions</link>) oder
@@ -53,17 +53,17 @@
linkend="api.register.modifier">register_modifier</link>). linkend="api.register.modifier">register_modifier</link>).
</para> </para>
<para> <para>
Zudem k<EFBFBD>nnen alle PHP-Funktionen implizit als Modifikatoren Zudem können alle PHP-Funktionen implizit als Modifikatoren
verwendet werden. (Das Beispiel mit dem <literal>@count</literal> verwendet werden. (Das Beispiel mit dem <literal>@count</literal>
Modifier verwendet die Funktion 'count()' von PHP und keinen Smarty Modifier verwendet die Funktion 'count()' von PHP und keinen Smarty
Modifikator) PHP Funktionen zu verwenden er<EFBFBD>ffnet zwei Probleme: Modifikator) PHP Funktionen zu verwenden eröffnet zwei Probleme:
erstens: manchmal ist die Parameter Reiehnfolge nicht erstens: manchmal ist die Parameter Reiehnfolge nicht
erw<EFBFBD>nscht. (<literal>{"%2.f"|sprintf:$float}</literal> funktioniert erwünscht. (<literal>{"%2.f"|sprintf:$float}</literal> funktioniert
zwar, sieht aber als zwar, sieht aber als
<literal>{$float|string_format:"%2.f"}</literal> das durch Smarty <literal>{$float|string_format:"%2.f"}</literal> das durch Smarty
geliefert wird, besser aus. Zweitens: wenn <link geliefert wird, besser aus. Zweitens: wenn <link
linkend="variable.security">$security</link> auf TRUE gesetzt ist, linkend="variable.security">$security</link> auf TRUE gesetzt ist,
m<EFBFBD>ssen alle verwendeten PHP Funktionen im <link müssen alle verwendeten PHP Funktionen im <link
linkend="variable.security.settings"> linkend="variable.security.settings">
$security_settings['MODIFIER_FUNCS']</link>-Array enthalten sein. $security_settings['MODIFIER_FUNCS']</link>-Array enthalten sein.
</para> </para>

View File

@@ -4,7 +4,7 @@
<sect1 id="language.modifier.capitalize"> <sect1 id="language.modifier.capitalize">
<title>capitalize (in Grossbuchstaben schreiben)</title> <title>capitalize (in Grossbuchstaben schreiben)</title>
<para> <para>
Wird verwendet um den Anfangsbuchstaben aller W<EFBFBD>rter in der Wird verwendet um den Anfangsbuchstaben aller Wörter in der
Variable gross (upper case) zu schreiben. Variable gross (upper case) zu schreiben.
</para> </para>
<informaltable frame="all"> <informaltable frame="all">
@@ -18,7 +18,7 @@
<row> <row>
<entry>Parameter Position</entry> <entry>Parameter Position</entry>
<entry>Typ</entry> <entry>Typ</entry>
<entry>Ben<EFBFBD>tigt</entry> <entry>Benötigt</entry>
<entry>Standardwert</entry> <entry>Standardwert</entry>
<entry>Beschreibung</entry> <entry>Beschreibung</entry>
</row> </row>
@@ -29,8 +29,8 @@
<entry>boolean</entry> <entry>boolean</entry>
<entry>Nein</entry> <entry>Nein</entry>
<entry>false</entry> <entry>false</entry>
<entry>Bestimmt ob W<EFBFBD>rter die Ziffern enthalten auch in <entry>Bestimmt ob Wörter die Ziffern enthalten auch in
Gro<EFBFBD>schreibung gewandelt werden</entry> Großschreibung gewandelt werden</entry>
</row> </row>
</tbody> </tbody>
</tgroup> </tgroup>

View File

@@ -78,7 +78,7 @@ Tuesday, February 6, 2001
%D - so wie %m/%d/%y %D - so wie %m/%d/%y
%e - Tag des Monats als Dezimal-Wert, einstelligen Werten wird ein Leerzeichen voran gestellt (Wertebereich <EFBFBD> 0<EFBFBD> bis <EFBFBD>31<EFBFBD>) %e - Tag des Monats als Dezimal-Wert, einstelligen Werten wird ein Leerzeichen voran gestellt (Wertebereich Ž 0Ž bis Ž31Ž)
%g - wie %G, aber ohne Jahrhundert. %g - wie %G, aber ohne Jahrhundert.

View File

@@ -5,7 +5,7 @@
<title>Aus einem PHP-Skript zugewiesene Variablen</title> <title>Aus einem PHP-Skript zugewiesene Variablen</title>
<para> <para>
Variablen die in einem PHP Skript <link Variablen die in einem PHP Skript <link
linkend="api.assign">assigned</link> mit zugewiesen wurden, m<EFBFBD>ssen linkend="api.assign">assigned</link> mit zugewiesen wurden, müssen
mit eine Dollar Zeichen <literal>$</literal> versehen werden. Auf mit eine Dollar Zeichen <literal>$</literal> versehen werden. Auf
die gleiche Art werden Variablen ausgegeben, die im Template mit <link die gleiche Art werden Variablen ausgegeben, die im Template mit <link
linkend="language.function.assign">{assign}</link> zugewiesen linkend="language.function.assign">{assign}</link> zugewiesen
@@ -34,7 +34,7 @@ $smarty->display('index.tpl');
</para> </para>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
Hallo {$vorname} {$nachname}, sch<EFBFBD>n, dass Du es einrichten kannst. Hallo {$vorname} {$nachname}, schön, dass Du es einrichten kannst.
<br /> <br />
{* {*
das hier funktioniert nicht, da bei Variablennamen auf das hier funktioniert nicht, da bei Variablennamen auf
@@ -51,7 +51,7 @@ Diese Woche findet das Treffen in {$treffpunkt} statt.
</para> </para>
<screen> <screen>
<![CDATA[ <![CDATA[
Hallo Andreas Halter, sch<EFBFBD>n, dass Du es einrichten kannst. Hallo Andreas Halter, schön, dass Du es einrichten kannst.
<br /> <br />
Diese Woche findet das Treffen in statt. Diese Woche findet das Treffen in statt.
Diese Woche findet das Treffen in New York statt. Diese Woche findet das Treffen in New York statt.
@@ -61,8 +61,8 @@ Diese Woche findet das Treffen in New York statt.
<sect2 id="language.variables.assoc.arrays"> <sect2 id="language.variables.assoc.arrays">
<title>Assoziative Arrays</title> <title>Assoziative Arrays</title>
<para> <para>
Sie k<EFBFBD>nnen auch auf die Werte eines in PHP zugewiesenen Sie können auch auf die Werte eines in PHP zugewiesenen
assoziativen Arrays zugreifen, indem Sie den Schl<EFBFBD>ssel (Indexwert) assoziativen Arrays zugreifen, indem Sie den Schlüssel (Indexwert)
nach einem '.'-Zeichen (Punkt) notieren. nach einem '.'-Zeichen (Punkt) notieren.
</para> </para>
<example> <example>
@@ -88,7 +88,7 @@ $smarty->display('index.tpl');
<![CDATA[ <![CDATA[
{$kontakte.fax}<br /> {$kontakte.fax}<br />
{$kontakte.email}<br /> {$kontakte.email}<br />
{* auch multidimensionale Arrays k<EFBFBD>nnen so angesprochen werden *} {* auch multidimensionale Arrays können so angesprochen werden *}
{$kontakte.telefon.privat}<br /> {$kontakte.telefon.privat}<br />
{$kontakte.telefon.mobil}<br /> {$kontakte.telefon.mobil}<br />
]]> ]]>
@@ -109,11 +109,11 @@ zaphod@slartibartfast.example.com<br />
<sect2 id="language.variables.array.indexes"> <sect2 id="language.variables.array.indexes">
<title>Array Index</title> <title>Array Index</title>
<para> <para>
Arrays k<EFBFBD>nnen - <EFBFBD>hnlich der PHP-Syntax - auch <EFBFBD>ber ihren Index Arrays können - ähnlich der PHP-Syntax - auch über ihren Index
angesprochen werden. angesprochen werden.
</para> </para>
<example> <example>
<title>Zugriff <EFBFBD>ber den Array Index</title> <title>Zugriff über den Array Index</title>
<programlisting role="php"> <programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
@@ -134,7 +134,7 @@ $smarty->display('index.tpl');
<![CDATA[ <![CDATA[
{$kontakte[0]}<br /> {$kontakte[0]}<br />
{$kontakte[1]}<br /> {$kontakte[1]}<br />
{* auch hier sind multidimensionale Arrays m<EFBFBD>glich *} {* auch hier sind multidimensionale Arrays möglich *}
{$kontakte[0][0]}<br /> {$kontakte[0][0]}<br />
{$kontakte[0][1]}<br /> {$kontakte[0][1]}<br />
]]> ]]>
@@ -156,7 +156,7 @@ zaphod@slartibartfast.example.com<br />
<sect2 id="language.variables.objects"> <sect2 id="language.variables.objects">
<title>Objekte</title> <title>Objekte</title>
<para> <para>
Attribute von aus PHP zugewiesenen Objekten k<EFBFBD>nnen <EFBFBD>ber Attribute von aus PHP zugewiesenen Objekten können über
das '-&gt;'-Symbol erreicht werden. das '-&gt;'-Symbol erreicht werden.
</para> </para>
<example> <example>

View File

@@ -47,7 +47,7 @@
</example> </example>
<note> <note>
<para> <para>
Aus historischen Gr<EFBFBD>nden kann {$SCRIPT_NAME} verwendet werden, Aus historischen Gründen kann {$SCRIPT_NAME} verwendet werden,
allerdings ist {$smarty.server.SCRIPT_NAME} die empfohlene allerdings ist {$smarty.server.SCRIPT_NAME} die empfohlene
Variante. Variante.
</para> </para>
@@ -56,12 +56,12 @@
<sect2 id="language.variables.smarty.now"> <sect2 id="language.variables.smarty.now">
<title>{$smarty.now}</title> <title>{$smarty.now}</title>
<para> <para>
Die momentane Unix-Timestamp kann <EFBFBD>ber {$smarty.now} angefragt Die momentane Unix-Timestamp kann über {$smarty.now} angefragt
werden. Diese Zahl ist die Summe der verstrichenen Sekunden seit werden. Diese Zahl ist die Summe der verstrichenen Sekunden seit
Beginn der UNIX-Epoche (1. Januar 1970) und kann zur Anzeige Beginn der UNIX-Epoche (1. Januar 1970) und kann zur Anzeige
direkt dem <link direkt dem <link
linkend="language.modifier.date.format">'date_format'-Modifikator linkend="language.modifier.date.format">'date_format'-Modifikator
</link> <EFBFBD>bergeben werden. </link> übergeben werden.
</para> </para>
<example> <example>
<title>Verwendung von {$smarty.now}</title> <title>Verwendung von {$smarty.now}</title>
@@ -139,7 +139,7 @@
<title>{$smarty.ldelim}, {$smarty.rdelim}</title> <title>{$smarty.ldelim}, {$smarty.rdelim}</title>
<para> <para>
Diese Variablen dienen dazu den linken und rechten Trennzeichen Diese Variablen dienen dazu den linken und rechten Trennzeichen
wortw<EFBFBD>rtlich auszugeben. Siehe auch <link wortwörtlich auszugeben. Siehe auch <link
linkend="language.function.ldelim">{ldelim},{rdelim}</link>. linkend="language.function.ldelim">{ldelim},{rdelim}</link>.
</para> </para>
<para> <para>

View File

@@ -22,14 +22,14 @@
Belang, da die Inhalte immer noch genau gleich &uuml;bergeben Belang, da die Inhalte immer noch genau gleich &uuml;bergeben
werden. Genauso kann der Designer die Ausgabe der Daten beliebig werden. Genauso kann der Designer die Ausgabe der Daten beliebig
ver&auml;ndern, ohne dass eine &Auml;nderung der Applikation ver&auml;ndern, ohne dass eine &Auml;nderung der Applikation
vorgenommen werden muss. Somit k<EFBFBD>nnen der Programmierer die vorgenommen werden muss. Somit können der Programmierer die
Applikations-Logik und der Designer die Ausgabe frei anpassen, ohne Applikations-Logik und der Designer die Ausgabe frei anpassen, ohne
sich dabei in die Quere zu kommen. sich dabei in die Quere zu kommen.
</para> </para>
<para> <para>
Was Smarty nicht kann: Smarty versucht nicht die gesamte Logik aus Was Smarty nicht kann: Smarty versucht nicht die gesamte Logik aus
dem Template zu verbannen. Solange die verwendete Logik dem Template zu verbannen. Solange die verwendete Logik
ausschlie<EFBFBD>lich f&uuml;r die Ausgabe verwendet wird, kann sie auch ausschließlich f&uuml;r die Ausgabe verwendet wird, kann sie auch
im Template eingebettet werden. Ein Tip: versuchen Sie im Template eingebettet werden. Ein Tip: versuchen Sie
Applikations-Logik aus dem Template und Pr&auml;sentations-Logik Applikations-Logik aus dem Template und Pr&auml;sentations-Logik
aus der Applikation herauszuhalten. Nur so bleibt die Applikation aus der Applikation herauszuhalten. Nur so bleibt die Applikation
@@ -82,7 +82,7 @@
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Konfigurierbare Syntax f<EFBFBD>r <link Konfigurierbare Syntax für <link
linkend="variable.left.delimiter">Template-Tags</link>: Sie linkend="variable.left.delimiter">Template-Tags</link>: Sie
k&ouml;nnen {}, {{}}, &lt;!--{}--&gt;, etc. verwenden. k&ouml;nnen {}, {{}}, &lt;!--{}--&gt;, etc. verwenden.
</para> </para>
@@ -92,7 +92,7 @@
<link <link
linkend="language.function.if">'if/elseif/else/endif'-Konstrukte</link> linkend="language.function.if">'if/elseif/else/endif'-Konstrukte</link>
werden direkt dem PHP-Parser &uuml;bergeben. Somit k&ouml;nnen {if werden direkt dem PHP-Parser &uuml;bergeben. Somit k&ouml;nnen {if
...} Ausdr<EFBFBD>cke sowohl sehr einfach als auch sehr komplex sein. ...} Ausdrücke sowohl sehr einfach als auch sehr komplex sein.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
@@ -184,7 +184,7 @@
Wir empfehlen keine &Auml;nderungen an den Smarty-Library Dateien Wir empfehlen keine &Auml;nderungen an den Smarty-Library Dateien
vorzunehmen. Dies macht ein m&ouml;gliches Upgrade wesentlich vorzunehmen. Dies macht ein m&ouml;gliches Upgrade wesentlich
einfacher. Sie m&uuml;ssen diese Dateien auch nicht anpassen, um einfacher. Sie m&uuml;ssen diese Dateien auch nicht anpassen, um
Smarty zu konfigurieren! Benutzen Sie f<EFBFBD>r diesen Zwecke eine Smarty zu konfigurieren! Benutzen Sie für diesen Zwecke eine
Instanz der Smarty-Klasse. Instanz der Smarty-Klasse.
</para> </para>
</note> </note>
@@ -192,7 +192,7 @@
Folgende Library Dateien werden mit Smarty geliefert und werden ben&ouml;tigt: Folgende Library Dateien werden mit Smarty geliefert und werden ben&ouml;tigt:
</para> </para>
<example> <example>
<title>Ben<EFBFBD>tigte Smarty-Library Dateien</title> <title>Benötigte Smarty-Library Dateien</title>
<screen> <screen>
<![CDATA[ <![CDATA[
Smarty.class.php Smarty.class.php
@@ -420,7 +420,7 @@ ini_set('include_path', ini_get('include_path').PATH_SEPARATOR.'c:/webroot/lib/S
'nobody' und Gruppe 'nogroup') in diese Verzeichnisse schreiben 'nobody' und Gruppe 'nogroup') in diese Verzeichnisse schreiben
kann. (In OS X lautet der Benutzer normalerweise 'www' und ist in kann. (In OS X lautet der Benutzer normalerweise 'www' und ist in
der Gruppe 'www'). Wenn Sie Apache verwenden, k&ouml;nnen Sie in der Gruppe 'www'). Wenn Sie Apache verwenden, k&ouml;nnen Sie in
der httpd.conf (gew<EFBFBD>hnlich in '/usr/local/apache/conf/') der httpd.conf (gewöhnlich in '/usr/local/apache/conf/')
nachsehen, unter welchem Benutzer Ihr Server l&auml;uft. nachsehen, unter welchem Benutzer Ihr Server l&auml;uft.
</para> </para>
<example> <example>

View File

@@ -12,7 +12,7 @@
Funktionalit&auml;t und Darstellung zu trennen. Dazu kommt, dass in Funktionalit&auml;t und Darstellung zu trennen. Dazu kommt, dass in
vielen Firmen Applikationsentwickler und Designer nicht die selbe vielen Firmen Applikationsentwickler und Designer nicht die selbe
Person sind. In Konsequenz beginnt die Suche nach einer Person sind. In Konsequenz beginnt die Suche nach einer
Template-L<EFBFBD>sung. Template-Lösung.
</para> </para>
<para> <para>
Als Beispiel: In unserer Firma funktioniert die Entwicklung einer Als Beispiel: In unserer Firma funktioniert die Entwicklung einer
@@ -76,7 +76,7 @@
vereinfachen? vereinfachen?
</para> </para>
<para> <para>
Dann kam uns die Idee, aus der schlie<EFBFBD>lich Smarty wurde. Wir wussten Dann kam uns die Idee, aus der schließlich Smarty wurde. Wir wussten
wie schnell PHP-Code ohne den Overhead des Template-Parsing ist. Wir wussten wie schnell PHP-Code ohne den Overhead des Template-Parsing ist. Wir wussten
ebenfalls wie pedantisch PHP aus Sicht eines durchschnittlichen ebenfalls wie pedantisch PHP aus Sicht eines durchschnittlichen
Designers ist und dass dies mit einer einfacheren Template-Syntax Designers ist und dass dies mit einer einfacheren Template-Syntax

View File

@@ -6,7 +6,7 @@
<para> <para>
Smarty erlaubt es, auf <ulink Smarty erlaubt es, auf <ulink
url="&url.php-manual;object">PHP-Objekte</ulink> durch das Template url="&url.php-manual;object">PHP-Objekte</ulink> durch das Template
zuzugreifen. Daf<EFBFBD>r gibt es zwei Wege. Der erste ist, Objekte zu zuzugreifen. Dafür gibt es zwei Wege. Der erste ist, Objekte zu
<link linkend="api.register.object">registrieren</link> und wie auf <link linkend="api.register.object">registrieren</link> und wie auf
eine <link linkend="language.custom.functions">eigene eine <link linkend="language.custom.functions">eigene
Funktion</link> zuzugreifen. Der andere Weg ist, das Objekt dem Funktion</link> zuzugreifen. Der andere Weg ist, das Objekt dem
@@ -14,40 +14,40 @@
und darauf wie auf andere Variablen zuzugreifen. Die erste Methode und darauf wie auf andere Variablen zuzugreifen. Die erste Methode
hat eine nettere Template Syntax und ist sicherer da der Zugriff auf hat eine nettere Template Syntax und ist sicherer da der Zugriff auf
ein registriertes Objekt mit Sicherheitseinstellungen kontrolliert ein registriertes Objekt mit Sicherheitseinstellungen kontrolliert
werden kann. Der Nachteil ist, dass <EFBFBD>ber registrierte Objekte nicht werden kann. Der Nachteil ist, dass über registrierte Objekte nicht
in einer Schlaufe gelaufen werden kann und, dass es nicht m<EFBFBD>glich in einer Schlaufe gelaufen werden kann und, dass es nicht möglich
ist, Arrays registrierten Objekten anzulegen. Welchen Weg Sie ist, Arrays registrierten Objekten anzulegen. Welchen Weg Sie
einschlagen wird von Ihren Bed<EFBFBD>rfnissen definiert, die erste Methode einschlagen wird von Ihren Bedürfnissen definiert, die erste Methode
ist jedoch zu bevorzugen. ist jedoch zu bevorzugen.
</para> </para>
<para> <para>
Wenn die <link Wenn die <link
linkend="variable.security">Sicherheitsfunktionen</link> linkend="variable.security">Sicherheitsfunktionen</link>
eingeschaltet sind, k<EFBFBD>nnen keine private Methoden (solche die einen eingeschaltet sind, können keine private Methoden (solche die einen
'_'-Prefix tragen) aufgerufen werden. Wenn eine Methode und eine '_'-Prefix tragen) aufgerufen werden. Wenn eine Methode und eine
Eigeschaft mit dem gleichen Namen existieren wird die Methode Eigeschaft mit dem gleichen Namen existieren wird die Methode
verwendet. verwendet.
</para> </para>
<para> <para>
Sie k<EFBFBD>nnen den Zugriff auf Methoden und Eigenschaften Sie können den Zugriff auf Methoden und Eigenschaften
einschr<EFBFBD>nken indem Sie sie als Array als dritten einschränken indem Sie sie als Array als dritten
Registrationsparameter <EFBFBD>bergeben. Registrationsparameter übergeben.
</para> </para>
<para> <para>
Normalerweise werden Parameter welche einem Objekt via Template Normalerweise werden Parameter welche einem Objekt via Template
<EFBFBD>bergeben werden genau so <EFBFBD>bergeben wie dies bei normalen <link übergeben werden genau so übergeben wie dies bei normalen <link
linkend="language.custom.functions">eigenen Funktionen</link> der linkend="language.custom.functions">eigenen Funktionen</link> der
Fall ist. Das erste Objekt ist ein assoziatives Array und das Fall ist. Das erste Objekt ist ein assoziatives Array und das
zweite das Smarty Objekt selbst. Wenn Sie die Parameter einzeln zweite das Smarty Objekt selbst. Wenn Sie die Parameter einzeln
erhalten m<EFBFBD>chten k<EFBFBD>nnen Sie den vierten Parameter auf erhalten möchten können Sie den vierten Parameter auf
<literal>false</literal> setzen. <literal>false</literal> setzen.
</para> </para>
<para> <para>
Der optionale f<EFBFBD>nfte Parameter hat nur einen Effekt wenn Der optionale fünfte Parameter hat nur einen Effekt wenn
<parameter>format</parameter> = <literal>true</literal> ist und eine <parameter>format</parameter> = <literal>true</literal> ist und eine
Liste von Methoden enth<EFBFBD>lt die als Block verarbeitet werden sollen. Liste von Methoden enthält die als Block verarbeitet werden sollen.
Das bedeutet, dass solche Methoden ein schliessendes Tag im Template Das bedeutet, dass solche Methoden ein schliessendes Tag im Template
enthalten m<EFBFBD>ssen enthalten müssen
(<literal>{foobar->meth2}...{/foobar->meth2}</literal>) und die (<literal>{foobar->meth2}...{/foobar->meth2}</literal>) und die
Parameter zu den Funktionen die selbe Syntax haben wie Parameter zu den Funktionen die selbe Syntax haben wie
block-function-plugins: sie erhalten also die 4 Parameter block-function-plugins: sie erhalten also die 4 Parameter
@@ -73,12 +73,12 @@ class My_Object {
$myobj = new My_Object; $myobj = new My_Object;
// Objekt registrieren (referenz) // Objekt registrieren (referenz)
$smarty->register_object("foobar",$myobj); $smarty->register_object("foobar",$myobj);
// Zugriff auf Methoden und Eigeschaften einschr<EFBFBD>nken // Zugriff auf Methoden und Eigeschaften einschränken
$smarty->register_object("foobar",$myobj,array('meth1','meth2','prop1')); $smarty->register_object("foobar",$myobj,array('meth1','meth2','prop1'));
// wenn wir das traditionelle Parameterformat verwenden wollen, <EFBFBD>bergeben wir false f<EFBFBD>r den Parameter format // wenn wir das traditionelle Parameterformat verwenden wollen, übergeben wir false für den Parameter format
$smarty->register_object("foobar",$myobj,null,false); $smarty->register_object("foobar",$myobj,null,false);
// Objekte zuweisen (auch via Referenz m<EFBFBD>glich) // Objekte zuweisen (auch via Referenz möglich)
$smarty->assign_by_ref("myobj", $myobj); $smarty->assign_by_ref("myobj", $myobj);
$smarty->display('index.tpl'); $smarty->display('index.tpl');
@@ -86,7 +86,7 @@ $smarty->display('index.tpl');
]]> ]]>
</programlisting> </programlisting>
<para> <para>
Und hier das dazugeh<EFBFBD>rige index.tpl: Und hier das dazugehörige index.tpl:
</para> </para>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[

View File

@@ -25,7 +25,7 @@
<![CDATA[ <![CDATA[
<?php <?php
// f<EFBFBD>gen Sie folgende Zeilen in Ihre Applikation ein // fügen Sie folgende Zeilen in Ihre Applikation ein
function protect_email($tpl_output, &$smarty) function protect_email($tpl_output, &$smarty)
{ {
$tpl_output = preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!', $tpl_output = preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!',

View File

@@ -5,12 +5,12 @@
<title>Postfilter</title> <title>Postfilter</title>
<para> <para>
Template Postfilter sind Filter, welche auf das Template nach dessen Kompilierung Template Postfilter sind Filter, welche auf das Template nach dessen Kompilierung
angewendet werden. Postfilter k<EFBFBD>nnen auf verschiedene Arten angewendet werden. Postfilter können auf verschiedene Arten
geladen werden. Man kann sie <link linkend="api.register.prefilter">registrieren</link>, geladen werden. Man kann sie <link linkend="api.register.prefilter">registrieren</link>,
aus dem Plugin-Verzeichnis mit <link linkend="api.load.filter">load_filter()</link> laden aus dem Plugin-Verzeichnis mit <link linkend="api.load.filter">load_filter()</link> laden
oder <link linkend="variable.autoload.filters">$autoload_filters</link> verwenden. oder <link linkend="variable.autoload.filters">$autoload_filters</link> verwenden.
Smarty <EFBFBD>bergibt der Funktion als ersten Parameter den Template-Quellcode und erwartet Smarty übergibt der Funktion als ersten Parameter den Template-Quellcode und erwartet
als R<EFBFBD>ckgabewert den bearbeiteten Quellcode. als Rückgabewert den bearbeiteten Quellcode.
</para> </para>
<example> <example>
<title>Template Postfilter verwenden</title> <title>Template Postfilter verwenden</title>
@@ -18,7 +18,7 @@
<![CDATA[ <![CDATA[
<?php <?php
// f<EFBFBD>gen Sie folgende Zeilen in Ihre Applikation ein // fügen Sie folgende Zeilen in Ihre Applikation ein
function add_header_comment($tpl_source, &$smarty) function add_header_comment($tpl_source, &$smarty)
{ {
return "<?php echo \"<!-- Created by Smarty! -->\n\" ?>\n".$tpl_source; return "<?php echo \"<!-- Created by Smarty! -->\n\" ?>\n".$tpl_source;

View File

@@ -5,13 +5,13 @@
<title>Prefilter</title> <title>Prefilter</title>
<para> <para>
Template Prefilter sind Filter, welche auf das Template vor dessen Kompilierung Template Prefilter sind Filter, welche auf das Template vor dessen Kompilierung
angewendet werden. Dies ist n<EFBFBD>tzlich, um zum Beispiel Kommentare zu entfernen angewendet werden. Dies ist nützlich, um zum Beispiel Kommentare zu entfernen
oder um den Inhalt des Templates zu analysieren. Prefilter k<EFBFBD>nnen auf verschiedene oder um den Inhalt des Templates zu analysieren. Prefilter können auf verschiedene
Arten geladen werden. Man kann sie <link linkend="api.register.prefilter">registrieren</link>, Arten geladen werden. Man kann sie <link linkend="api.register.prefilter">registrieren</link>,
aus dem Plugin-Verzeichnis mit <link linkend="api.load.filter">load_filter()</link> laden aus dem Plugin-Verzeichnis mit <link linkend="api.load.filter">load_filter()</link> laden
oder <link linkend="variable.autoload.filters">$autoload_filters</link> verwenden. oder <link linkend="variable.autoload.filters">$autoload_filters</link> verwenden.
Smarty <EFBFBD>bergibt der Funktion als ersten Parameter den Template-Quellcode und erwartet Smarty übergibt der Funktion als ersten Parameter den Template-Quellcode und erwartet
als R<EFBFBD>ckgabewert den bearbeiteten Quellcode. als Rückgabewert den bearbeiteten Quellcode.
</para> </para>
<example> <example>
<title>Template Prefilter verwenden</title> <title>Template Prefilter verwenden</title>
@@ -22,7 +22,7 @@
<![CDATA[ <![CDATA[
<?php <?php
// f<EFBFBD>gen Sie folgende Zeilen in Ihre Applikation ein // fügen Sie folgende Zeilen in Ihre Applikation ein
function remove_dw_comments($tpl_source, &$smarty) function remove_dw_comments($tpl_source, &$smarty)
{ {
return preg_replace("/<!--#.*-->/U",'',$tpl_source); return preg_replace("/<!--#.*-->/U",'',$tpl_source);

View File

@@ -4,8 +4,8 @@
<sect1 id="section.template.cache.handler.func"> <sect1 id="section.template.cache.handler.func">
<title>Cache Handler Funktion</title> <title>Cache Handler Funktion</title>
<para> <para>
Als Alternative zum normalen dateibasierten Caching-Mechanismus k<EFBFBD>nnen Sie Als Alternative zum normalen dateibasierten Caching-Mechanismus können Sie
eine eigene Cache-Handler Funktion zum lesen, schreiben und l<EFBFBD>schen von eine eigene Cache-Handler Funktion zum lesen, schreiben und löschen von
Cache-Dateien definieren. Cache-Dateien definieren.
</para> </para>
<para> <para>
@@ -14,17 +14,17 @@
<link linkend="variable.cache.handler.func">$cache_handler_func</link> zu. <link linkend="variable.cache.handler.func">$cache_handler_func</link> zu.
Smarty wird von da an Ihre Funktion zur Bearbeitung des Caches verwenden. Smarty wird von da an Ihre Funktion zur Bearbeitung des Caches verwenden.
Als erster Parameter wird die 'action' mit einem der folgendende Werte Als erster Parameter wird die 'action' mit einem der folgendende Werte
<EFBFBD>bergeben: 'read', 'write' und 'clear'. Als zweiter Parameter übergeben: 'read', 'write' und 'clear'. Als zweiter Parameter
wird das Smarty-Objekt <EFBFBD>bergeben, als dritter der gecachte Inhalt. Bei einem wird das Smarty-Objekt übergeben, als dritter der gecachte Inhalt. Bei einem
'write' <EFBFBD>bergibt Smarty den gecachten Inhalt, bei 'read' <EFBFBD>bergibt Smarty die 'write' übergibt Smarty den gecachten Inhalt, bei 'read' übergibt Smarty die
Variable als Referenz und erwartet, dass Ihre Funktion die Inhalte zuweist. Variable als Referenz und erwartet, dass Ihre Funktion die Inhalte zuweist.
Bei 'clear' k<EFBFBD>nnen Sie eine dummy-Variable <EFBFBD>bergeben. Als vierter Parameter Bei 'clear' können Sie eine dummy-Variable übergeben. Als vierter Parameter
wird der Template-Name <EFBFBD>bergeben (verwendet bei 'write'/'read'), als f<EFBFBD>nfter wird der Template-Name übergeben (verwendet bei 'write'/'read'), als fünfter
Parameter die 'cache_id' (optional) und als sechster die 'compile_id' (auch optional). Parameter die 'cache_id' (optional) und als sechster die 'compile_id' (auch optional).
</para> </para>
<para> <para>
Der letzte Parameter (<parameter>$exp_time</parameter>) wurde in Der letzte Parameter (<parameter>$exp_time</parameter>) wurde in
Smarty-2.6.0 hinzugef<EFBFBD>gt. Smarty-2.6.0 hinzugefügt.
</para> </para>
<example> <example>
<title>Beispiel mit einer MySQL Datenbank als Datenquelle</title> <title>Beispiel mit einer MySQL Datenbank als Datenquelle</title>
@@ -112,10 +112,10 @@ function mysql_cache_handler($action, &amp;$smarty_obj, &amp;$cache_content, $tp
break; break;
case 'clear': case 'clear':
// Cache Informationen l<EFBFBD>schen // Cache Informationen löschen
if(empty($cache_id) &amp;&amp; empty($compile_id) &amp;&amp; empty($tpl_file)) { if(empty($cache_id) &amp;&amp; empty($compile_id) &amp;&amp; empty($tpl_file)) {
// alle l<EFBFBD>schen // alle löschen
$results = mysql_query("delete from CACHE_PAGES"); $results = mysql_query("delete from CACHE_PAGES");
} else { } else {
$results = mysql_query("delete from CACHE_PAGES where CacheID='$CacheID'"); $results = mysql_query("delete from CACHE_PAGES where CacheID='$CacheID'");

View File

@@ -5,7 +5,7 @@
<title>Die Ausgabe von cachebaren Plugins Kontrollieren</title> <title>Die Ausgabe von cachebaren Plugins Kontrollieren</title>
<para> <para>
Seit Smarty-2.6.0 kann bei der Registrierung angegeben werden ob ein Seit Smarty-2.6.0 kann bei der Registrierung angegeben werden ob ein
Plugin cached werden soll. Der dritte Parameter f<EFBFBD>r <link Plugin cached werden soll. Der dritte Parameter für <link
linkend="api.register.block">register_block</link>, <link linkend="api.register.block">register_block</link>, <link
linkend="api.register.compiler.function">register_compiler_function</link> linkend="api.register.compiler.function">register_compiler_function</link>
und <link linkend="api.register.function">register_function</link> und <link linkend="api.register.function">register_function</link>
@@ -16,7 +16,7 @@
Wenn ein Plugin mit <parameter>$cacheable=false</parameter> Wenn ein Plugin mit <parameter>$cacheable=false</parameter>
registriert wird, wird er bei jedem Besuch der Seite aufgerufen, registriert wird, wird er bei jedem Besuch der Seite aufgerufen,
selbst wenn die Site aus dem Cache stammt. Die Pluginfunktion selbst wenn die Site aus dem Cache stammt. Die Pluginfunktion
verh<EFBFBD>lt sich ein wenig wie <link verhält sich ein wenig wie <link
linkend="plugins.inserts">{insert}</link>. linkend="plugins.inserts">{insert}</link>.
</para> </para>
<para> <para>
@@ -72,7 +72,7 @@ Verbleibende Zeit: {remain endtime=$obj->endtime}
</para> </para>
</example> </example>
<example> <example>
<title>Verhindern dass Template Bl<EFBFBD>cke gecached werden</title> <title>Verhindern dass Template Blöcke gecached werden</title>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
index.php: index.php:

View File

@@ -4,39 +4,39 @@
<sect1 id="caching.groups"> <sect1 id="caching.groups">
<title>Cache-Gruppen</title> <title>Cache-Gruppen</title>
<para> <para>
Sie k<EFBFBD>nnen auch eine feinere Gruppierung vornehmen, indem Sie Sie können auch eine feinere Gruppierung vornehmen, indem Sie
'cache_id'-Gruppen erzeugen. Dies erreichen Sie, indem Sie jede Cache-Untergruppe 'cache_id'-Gruppen erzeugen. Dies erreichen Sie, indem Sie jede Cache-Untergruppe
durch ein '|'-Zeichen (pipe) in der 'cache_id' abtrennen. Sie k<EFBFBD>nnen so viele durch ein '|'-Zeichen (pipe) in der 'cache_id' abtrennen. Sie können so viele
Untergruppen erstellen, wie Sie m<EFBFBD>chten. Untergruppen erstellen, wie Sie möchten.
</para> </para>
<para> <para>
Man kann Cache-Gruppen wie eine Verzeichnishierarchie Man kann Cache-Gruppen wie eine Verzeichnishierarchie
betrachten. Zum Beispiel kann man sich die Cache-Gruppe "a|b|c" als betrachten. Zum Beispiel kann man sich die Cache-Gruppe "a|b|c" als
eine Verzeichnisstruktur "/a/b/c" angesehen weden. clear_cache(null, eine Verzeichnisstruktur "/a/b/c" angesehen weden. clear_cache(null,
'a|b|c') w<EFBFBD>rde die Dateien '/a/b/c/*' l<EFBFBD>schen, clear_cache(null, 'a|b|c') würde die Dateien '/a/b/c/*' löschen, clear_cache(null,
'a|b') w<EFBFBD>re das L<EFBFBD>schen der Dateien '/a/b/*'. Wenn eine Compile-Id 'a|b') wäre das Löschen der Dateien '/a/b/*'. Wenn eine Compile-Id
angegeben wurde, wie clear_cache(null, 'a|b', 'foo'), dann wird die angegeben wurde, wie clear_cache(null, 'a|b', 'foo'), dann wird die
Compile-Id so behandelt, als sei sie an die Cache-Gruppe angeh<EFBFBD>ngt, Compile-Id so behandelt, als sei sie an die Cache-Gruppe angehängt,
also wie die Cache-Gruppe '/a/b/foo'. Wenn ein Templatename also wie die Cache-Gruppe '/a/b/foo'. Wenn ein Templatename
angegeben wurde, also wie bei clear_cache('foo.tpl', 'a|b|c'), dann angegeben wurde, also wie bei clear_cache('foo.tpl', 'a|b|c'), dann
wir Smarty auch nur '/a/b/c/foo.tpl' l<EFBFBD>schen. Es ist NICHT m<EFBFBD>glich, wir Smarty auch nur '/a/b/c/foo.tpl' löschen. Es ist NICHT möglich,
ein Template unterhalb mehrerer Cache-Gruppen (also ein Template unterhalb mehrerer Cache-Gruppen (also
'/a/b/*/foo.tpl') zu l<EFBFBD>schen. Das Gruppieren der Cache-Gruppen '/a/b/*/foo.tpl') zu löschen. Das Gruppieren der Cache-Gruppen
funktioniert nur von links nach rechts. Man muss die Templates, die funktioniert nur von links nach rechts. Man muss die Templates, die
man als eine Gruppe l<EFBFBD>schen m<EFBFBD>chte alle unterhalb einer einzigen man als eine Gruppe löschen möchte alle unterhalb einer einzigen
Gruppenhierarchy anordnen, um sie als eine Gruppe l<EFBFBD>schen zu k<EFBFBD>nnen. Gruppenhierarchy anordnen, um sie als eine Gruppe löschen zu können.
</para> </para>
<para> <para>
Cache-Gruppen d<EFBFBD>rfen nicht mit der Hierarchie des Cache-Gruppen dürfen nicht mit der Hierarchie des
Template-Verzeichnisses verwechselt werden. Die Cache-Gruppen wissen Template-Verzeichnisses verwechselt werden. Die Cache-Gruppen wissen
nicht, wie die Templatehierarchie strukturiert ist. Wenn man nicht, wie die Templatehierarchie strukturiert ist. Wenn man
z. B. eine Templatestruktur wir "themes/blue/index.tpl" hat und man z. B. eine Templatestruktur wir "themes/blue/index.tpl" hat und man
m<EFBFBD>chte alle Dateien f<EFBFBD>r des "blue"-Theme l<EFBFBD>schen, dann muss man möchte alle Dateien für des "blue"-Theme löschen, dann muss man
h<EFBFBD>ndisch eine Cache-Gruppe wie display("themes/blue/index.tpl", händisch eine Cache-Gruppe wie display("themes/blue/index.tpl",
"themes|blue") und kann diese dann mit "themes|blue") und kann diese dann mit
clear_cache(null,"themes|blue") l<EFBFBD>schen. clear_cache(null,"themes|blue") löschen.
</para> </para>
<example> <example>

View File

@@ -2,18 +2,18 @@
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.3 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.3 Maintainer: andreas Status: ready -->
<sect1 id="caching.multiple.caches"> <sect1 id="caching.multiple.caches">
<title>Multiple Caches f<EFBFBD>r eine Seite</title> <title>Multiple Caches für eine Seite</title>
<para> <para>
Sie k<EFBFBD>nnen f<EFBFBD>r Aufrufe von <link Sie können für Aufrufe von <link
linkend="api.display">display()</link> oder <link linkend="api.display">display()</link> oder <link
linkend="api.fetch">fetch()</link> auch mehrere Caches erzeugen. linkend="api.fetch">fetch()</link> auch mehrere Caches erzeugen.
Nehmen wir zum Beispiel an, der Aufruf von display('index.tpl') Nehmen wir zum Beispiel an, der Aufruf von display('index.tpl')
erzeuge f<EFBFBD>r verschieden F<EFBFBD>lle unterschiedliche Inhalte und Sie erzeuge für verschieden Fälle unterschiedliche Inhalte und Sie
wollen jeden dieser Inhalte separat cachen. Um dies zu erreichen, wollen jeden dieser Inhalte separat cachen. Um dies zu erreichen,
k<EFBFBD>nnen Sie eine 'cache_id' beim Funktionsaufruf <EFBFBD>bergeben. können Sie eine 'cache_id' beim Funktionsaufruf übergeben.
</para> </para>
<example> <example>
<title>'display()' eine 'cache_id' <EFBFBD>bergeben</title> <title>'display()' eine 'cache_id' übergeben</title>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
<?php <?php
@@ -30,33 +30,33 @@ $smarty->display('index.tpl',$my_cache_id);
</programlisting> </programlisting>
</example> </example>
<para> <para>
Im oberen Beispiel <EFBFBD>bergeben wir die Variable Im oberen Beispiel übergeben wir die Variable
<parameter>$my_cache_id</parameter> als 'cache_id' an d<link <parameter>$my_cache_id</parameter> als 'cache_id' an d<link
linkend="api.display">isplay()</link>. F<EFBFBD>r jede einmalige linkend="api.display">isplay()</link>. Für jede einmalige
<parameter>cache_id</parameter> wird ein eigener Cache von 'index.tpl' <parameter>cache_id</parameter> wird ein eigener Cache von 'index.tpl'
erzeugt. In diesem Beispiel wurde 'article_id' per URL <EFBFBD>bergeben und erzeugt. In diesem Beispiel wurde 'article_id' per URL übergeben und
als 'cache_id' verwendet. als 'cache_id' verwendet.
</para> </para>
<note> <note>
<title>Technische Bemerkung</title> <title>Technische Bemerkung</title>
<para> <para>
Seien Sie vorsichtig, wenn Sie Smarty (oder jeder anderen PHP-Applikation) Seien Sie vorsichtig, wenn Sie Smarty (oder jeder anderen PHP-Applikation)
Werte direkt vom Client (Webbrowser) <EFBFBD>bergeben. Obwohl das Beispiel oben Werte direkt vom Client (Webbrowser) übergeben. Obwohl das Beispiel oben
praktisch aussehen mag, kann es schwerwiegende Konsequenzen haben. Die 'cache_id' praktisch aussehen mag, kann es schwerwiegende Konsequenzen haben. Die 'cache_id'
wird verwendet, um im Dateisystem ein Verzeichnis zu erstellen. Wenn ein Benutzer wird verwendet, um im Dateisystem ein Verzeichnis zu erstellen. Wenn ein Benutzer
also <EFBFBD>berlange Werte <EFBFBD>bergibt oder ein Skript benutzt, das in hohem also überlange Werte übergibt oder ein Skript benutzt, das in hohem
Tempo neue 'article_ids' <EFBFBD>bermittelt, kann dies auf dem Server zu Problemen Tempo neue 'article_ids' übermittelt, kann dies auf dem Server zu Problemen
f<EFBFBD>hren. Stellen Sie daher sicher, dass Sie alle empfangenen Werte auf führen. Stellen Sie daher sicher, dass Sie alle empfangenen Werte auf
ihre G<EFBFBD>ltigkeit <EFBFBD>berpr<EFBFBD>fen und unerlaubte Sequenzen entfernen. ihre Gültigkeit überprüfen und unerlaubte Sequenzen entfernen.
Sie wissen m<EFBFBD>glicherweise, dass ihre 'article_id' nur 10 Zeichen lang sein kann, nur Sie wissen möglicherweise, dass ihre 'article_id' nur 10 Zeichen lang sein kann, nur
aus alphanumerischen Zeichen bestehen darf und in der Datenbank eingetragen aus alphanumerischen Zeichen bestehen darf und in der Datenbank eingetragen
sein muss. <EFBFBD>berp<EFBFBD>fen sie das! sein muss. Überpüfen sie das!
</para> </para>
</note> </note>
<para> <para>
Denken Sie daran, Aufrufen von <link linkend="api.is.cached">is_cached()</link> Denken Sie daran, Aufrufen von <link linkend="api.is.cached">is_cached()</link>
und <link linkend="api.clear.cache">clear_cache()</link> als zweiten Parameter und <link linkend="api.clear.cache">clear_cache()</link> als zweiten Parameter
die 'cache_id' zu <EFBFBD>bergeben. die 'cache_id' zu übergeben.
</para> </para>
<example> <example>
<title>'is_cached()' mit 'cache_id' aufrufen</title> <title>'is_cached()' mit 'cache_id' aufrufen</title>
@@ -82,9 +82,9 @@ $smarty->display('index.tpl',$my_cache_id);
</programlisting> </programlisting>
</example> </example>
<para> <para>
Sie k<EFBFBD>nnen mit <link linkend="api.clear.cache">clear_cache()</link> Sie können mit <link linkend="api.clear.cache">clear_cache()</link>
den gesamten Cache einer bestimmten 'cache_id' auf einmal l<EFBFBD>schen, den gesamten Cache einer bestimmten 'cache_id' auf einmal löschen,
wenn Sie als Parameter die 'cache_id' <EFBFBD>bergeben. wenn Sie als Parameter die 'cache_id' übergeben.
</para> </para>
<example> <example>
<title>Cache einer bestimmten 'cache_id' leeren</title> <title>Cache einer bestimmten 'cache_id' leeren</title>
@@ -96,7 +96,7 @@ $smarty = new Smarty;
$smarty->caching = true; $smarty->caching = true;
// Cache mit 'sports' als 'cache_id' l<EFBFBD>schen // Cache mit 'sports' als 'cache_id' löschen
$smarty->clear_cache(null,"sports"); $smarty->clear_cache(null,"sports");
$smarty->display('index.tpl',"sports"); $smarty->display('index.tpl',"sports");
@@ -105,7 +105,7 @@ $smarty->display('index.tpl',"sports");
</programlisting> </programlisting>
</example> </example>
<para> <para>
Indem Sie allen dieselbe 'cache_id' <EFBFBD>bergeben, lassen sich Caches gruppieren. Indem Sie allen dieselbe 'cache_id' übergeben, lassen sich Caches gruppieren.
</para> </para>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file

View File

@@ -26,28 +26,28 @@ $smarty->display('index.tpl');
Wenn Caching eingeschaltet ist, wird der Funktionsaufruf display('index.tpl') Wenn Caching eingeschaltet ist, wird der Funktionsaufruf display('index.tpl')
das Template normal rendern, zur selben Zeit jedoch auch eine Datei mit das Template normal rendern, zur selben Zeit jedoch auch eine Datei mit
dem Inhalt in das <link linkend="variable.cache.dir">$cache_dir</link> schreiben dem Inhalt in das <link linkend="variable.cache.dir">$cache_dir</link> schreiben
(als gecachte Kopie). Beim n<EFBFBD>chsten Aufruf von display('index.tpl') wird die (als gecachte Kopie). Beim nächsten Aufruf von display('index.tpl') wird die
gecachte Kopie verwendet. gecachte Kopie verwendet.
</para> </para>
<note> <note>
<title>Technische Bemerkung</title> <title>Technische Bemerkung</title>
<para> <para>
Die im <link linkend="variable.cache.dir">$cache_dir</link> Die im <link linkend="variable.cache.dir">$cache_dir</link>
abgelegen Dateien haben einen <EFBFBD>hnlichen Namen wie das Template, abgelegen Dateien haben einen ähnlichen Namen wie das Template,
mit dem sie erzeugt wurden. Obwohl sie eine '.php'-Endung mit dem sie erzeugt wurden. Obwohl sie eine '.php'-Endung
aufweisen, sind sie keine ausf<EFBFBD>hrbaren PHP-Skripte. aufweisen, sind sie keine ausführbaren PHP-Skripte.
Editieren Sie diese Dateien NICHT! Editieren Sie diese Dateien NICHT!
</para> </para>
</note> </note>
<para> <para>
Jede gecachte Seite hat eine Lebensdauer, die von <link Jede gecachte Seite hat eine Lebensdauer, die von <link
linkend="variable.cache.lifetime">$cache_lifetime</link> bestimmt linkend="variable.cache.lifetime">$cache_lifetime</link> bestimmt
wird. Normalerweise betr<EFBFBD>gt der Wert 3600 Sekunden (= 1 wird. Normalerweise beträgt der Wert 3600 Sekunden (= 1
Stunde). Nach Ablauf dieser Lebensdauer wird der Cache neu Stunde). Nach Ablauf dieser Lebensdauer wird der Cache neu
generiert. Sie k<EFBFBD>nnen die Lebensdauer pro Cache bestimmen indem generiert. Sie können die Lebensdauer pro Cache bestimmen indem
Sie <link linkend="variable.caching">$caching</link> auf 2 Sie <link linkend="variable.caching">$caching</link> auf 2
setzen. Konsultieren Sie den Abschnitt <EFBFBD>ber <link setzen. Konsultieren Sie den Abschnitt über <link
linkend="variable.cache.lifetime">$cache_lifetime</link> f<EFBFBD>r linkend="variable.cache.lifetime">$cache_lifetime</link> für
weitere Informationen. weitere Informationen.
</para> </para>
<example> <example>
@@ -60,16 +60,16 @@ $smarty = new Smarty;
$smarty->caching = 2; // Lebensdauer ist pro Cache $smarty->caching = 2; // Lebensdauer ist pro Cache
// Standardwert f<EFBFBD>r '$cache_lifetime' auf 5 Minuten setzen // Standardwert für '$cache_lifetime' auf 5 Minuten setzen
$smarty->cache_lifetime = 300; $smarty->cache_lifetime = 300;
$smarty->display('index.tpl'); $smarty->display('index.tpl');
// '$cache_lifetime' f<EFBFBD>r 'home.tpl' auf 1 Stunde setzen // '$cache_lifetime' für 'home.tpl' auf 1 Stunde setzen
$smarty->cache_lifetime = 3600; $smarty->cache_lifetime = 3600;
$smarty->display('home.tpl'); $smarty->display('home.tpl');
// ACHTUNG: die folgende Zuweisung an '$cache_lifetime' wird nicht funktionieren, // ACHTUNG: die folgende Zuweisung an '$cache_lifetime' wird nicht funktionieren,
// wenn '$caching' auf 2 gestellt ist. Wenn die '$cache_lifetime' f<EFBFBD>r 'home.tpl' bereits // wenn '$caching' auf 2 gestellt ist. Wenn die '$cache_lifetime' für 'home.tpl' bereits
// auf 1 Stunde gesetzt wurde, werden neue Werte ignoriert. // auf 1 Stunde gesetzt wurde, werden neue Werte ignoriert.
// 'home.tpl' wird nach dieser Zuweisung immer noch eine '$cache_lifetime' von 1 Stunde haben // 'home.tpl' wird nach dieser Zuweisung immer noch eine '$cache_lifetime' von 1 Stunde haben
$smarty->cache_lifetime = 30; // 30 seconds $smarty->cache_lifetime = 30; // 30 seconds
@@ -82,9 +82,9 @@ $smarty->display('home.tpl');
Wenn <link linkend="variable.compile.check">$compile_check</link> Wenn <link linkend="variable.compile.check">$compile_check</link>
eingeschaltet ist, werden alle in den Cache eingeflossenen eingeschaltet ist, werden alle in den Cache eingeflossenen
Templates und Konfigurationsdateien hinsichtlich ihrer letzten Templates und Konfigurationsdateien hinsichtlich ihrer letzten
<EFBFBD>nderung <EFBFBD>berpr<EFBFBD>ft. Falls eine der Dateien seit der Erzeugung des Änderung überprüft. Falls eine der Dateien seit der Erzeugung des
Cache ge<EFBFBD>ndert wurde, wird der Cache unverz<EFBFBD>glich neu Cache geändert wurde, wird der Cache unverzüglich neu
generiert. Dadurch ergibt sich ein geringer Mehraufwand. F<EFBFBD>r generiert. Dadurch ergibt sich ein geringer Mehraufwand. Für
optimale Performance sollte <link optimale Performance sollte <link
linkend="variable.compile.check">$compile_check</link> deshalb auf linkend="variable.compile.check">$compile_check</link> deshalb auf
'false' gesetzt werden. 'false' gesetzt werden.
@@ -108,15 +108,15 @@ $smarty->display('index.tpl');
<para> <para>
Wenn <link linkend="variable.force.compile">$force_compile</link> eingeschaltet ist, Wenn <link linkend="variable.force.compile">$force_compile</link> eingeschaltet ist,
werden die Cache-Dateien immer neu generiert und das Caching damit wirkungslos gemacht. werden die Cache-Dateien immer neu generiert und das Caching damit wirkungslos gemacht.
<link linkend="variable.force.compile">$force_compile</link> wird normalerweise nur f<EFBFBD>r die Fehlersuche verwendet. <link linkend="variable.force.compile">$force_compile</link> wird normalerweise nur für die Fehlersuche verwendet.
Ein effizienterer Weg das Caching auszuschalten w<EFBFBD>re, Ein effizienterer Weg das Caching auszuschalten wäre,
<link linkend="variable.caching">$caching</link> auf 'false' (oder 0) zu setzen. <link linkend="variable.caching">$caching</link> auf 'false' (oder 0) zu setzen.
</para> </para>
<para> <para>
Mit der Funktion <link linkend="api.is.cached">is_cached()</link> kann <EFBFBD>berpr<EFBFBD>ft Mit der Funktion <link linkend="api.is.cached">is_cached()</link> kann überprüft
werden, ob von einem Template eine gecachte Version vorliegt. werden, ob von einem Template eine gecachte Version vorliegt.
In einem Template, das zum Beispiel Daten aus einer Datenbank bezieht, In einem Template, das zum Beispiel Daten aus einer Datenbank bezieht,
k<EFBFBD>nnen Sie diese Funktion verwenden, um den Prozess zu <EFBFBD>berspringen. können Sie diese Funktion verwenden, um den Prozess zu überspringen.
</para> </para>
<example> <example>
<title>is_cached() verwenden</title> <title>is_cached() verwenden</title>
@@ -140,15 +140,15 @@ $smarty->display('index.tpl');
</programlisting> </programlisting>
</example> </example>
<para> <para>
Mit der <link linkend="language.function.insert">{insert}</link> Funktion k<EFBFBD>nnen Sie Mit der <link linkend="language.function.insert">{insert}</link> Funktion können Sie
Teile einer Seite dynamisch halten. Wenn zum Beispiel ein Banner in einer gecachten Seite Teile einer Seite dynamisch halten. Wenn zum Beispiel ein Banner in einer gecachten Seite
nicht gecached werden soll, kann dessen Aufruf mit <link linkend="language.function.insert">{insert}</link> dynamisch gehalten werden. nicht gecached werden soll, kann dessen Aufruf mit <link linkend="language.function.insert">{insert}</link> dynamisch gehalten werden.
Konsultieren Sie den Abschnitt <EFBFBD>ber <link linkend="language.function.insert">insert</link> Konsultieren Sie den Abschnitt über <link linkend="language.function.insert">insert</link>
f<EFBFBD>r weitere Informationen und Beispiele. für weitere Informationen und Beispiele.
</para> </para>
<para> <para>
Mit der Funktion <link linkend="api.clear.all.cache">clear_all_cache()</link> k<EFBFBD>nnen Mit der Funktion <link linkend="api.clear.all.cache">clear_all_cache()</link> können
Sie den gesamten Template-Cache l<EFBFBD>schen. Mit <link linkend="api.clear.cache">clear_cache()</link> Sie den gesamten Template-Cache löschen. Mit <link linkend="api.clear.cache">clear_cache()</link>
einzelne Templates oder <link linkend="caching.groups">Cache-Gruppen</link>. einzelne Templates oder <link linkend="caching.groups">Cache-Gruppen</link>.
</para> </para>
<example> <example>
@@ -161,10 +161,10 @@ $smarty = new Smarty;
$smarty->caching = true; $smarty->caching = true;
// alle Cache-Dateien l<EFBFBD>schen // alle Cache-Dateien löschen
$smarty->clear_all_cache(); $smarty->clear_all_cache();
// nur Cache von 'index.tpl' l<EFBFBD>schen // nur Cache von 'index.tpl' löschen
$smarty->clear_cache('index.tpl'); $smarty->clear_cache('index.tpl');
$smarty->display('index.tpl'); $smarty->display('index.tpl');

View File

@@ -24,7 +24,7 @@ define('SMARTY_DIR', '/usr/local/lib/php/Smarty/libs/');
// Pfad zum Smarty Verzeichnis setzen (unter Windows) // Pfad zum Smarty Verzeichnis setzen (unter Windows)
define('SMARTY_DIR', 'c:/usr/local/lib/php/Smarty/libs/'); define('SMARTY_DIR', 'c:/usr/local/lib/php/Smarty/libs/');
// Smarty einbinden (der Dateiname beginnt mit gro<EFBFBD>em 'S') // Smarty einbinden (der Dateiname beginnt mit großem 'S')
require_once(SMARTY_DIR . 'Smarty.class.php'); require_once(SMARTY_DIR . 'Smarty.class.php');
?> ?>
]]> ]]>