cvs: smarty /docs/de/designers/language-builtin-functions language-function-insert.xml language-function-ldelim.xml language-function-literal.xml language-function-php.xml language-function-section.xml language-function-strip.xml
"Messju Mohr" <[email protected]>
| Newsgroups | gmane.comp.php.cvs.smarty |
|---|---|
| Message-ID | <cvsmessju1119603758@cvsserver> |
messju Fri Jun 24 05:02:38 2005 EDT
Modified files:
/smarty/docs/de/designers/language-builtin-functions
language-function-insert.xml
language-function-ldelim.xml
language-function-literal.xml
language-function-php.xml
language-function-section.xml
language-function-strip.xml
Log:
sync with en
--
Smarty CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
messju-20050624050238.txt
(text/plain, 61.3 KB)
http://cvs.php.net/diff.php/smarty/docs/de/designers/language-builtin-functions/language-function-insert.xml?r1=1.2&r2=1.3&ty=u
Index: smarty/docs/de/designers/language-builtin-functions/language-function-insert.xml
diff -u smarty/docs/de/designers/language-builtin-functions/language-function-insert.xml:1.2 smarty/docs/de/designers/language-builtin-functions/language-function-insert.xml:1.3
--- smarty/docs/de/designers/language-builtin-functions/language-function-insert.xml:1.2 Fri Jul 16 10:32:28 2004
+++ smarty/docs/de/designers/language-builtin-functions/language-function-insert.xml Fri Jun 24 05:02:38 2005
@@ -1,121 +1,128 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.2 $ -->
-<!-- EN-Revision: 1.1 Maintainer: andreas Status: ready -->
- <sect1 id="language.function.insert">
- <title>insert (einfügen)</title>
- <informaltable frame="all">
- <tgroup cols="5">
- <colspec colname="param" align="center" />
- <colspec colname="type" align="center" />
- <colspec colname="required" align="center" />
- <colspec colname="default" align="center" />
- <colspec colname="desc" />
- <thead>
- <row>
- <entry>Attribut Name</entry>
- <entry>Typ</entry>
- <entry>Erforderlich</entry>
- <entry>Standardwert</entry>
- <entry>Beschreibung</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>name</entry>
- <entry>string</entry>
- <entry>Ja</entry>
- <entry><emphasis>n/a</emphasis></entry>
- <entry>Der Name der Insert-Funktion</entry>
- </row>
- <row>
- <entry>assign</entry>
- <entry>string</entry>
- <entry>Nein</entry>
- <entry><emphasis>n/a</emphasis></entry>
- <entry>Name der Template-Variable, in der die Ausgabe der 'insert'-Funktion optional abgelegt wird.</entry>
- </row>
- <row>
- <entry>script</entry>
- <entry>string</entry>
- <entry>Nein</entry>
- <entry><emphasis>n/a</emphasis></entry>
- <entry>Name des PHP-Skriptes, das vor Aufruf der 'insert'-Funktion eingebunden werden soll.</entry>
- </row>
- <row>
- <entry>[var ...]</entry>
- <entry>[var typ]</entry>
- <entry>Nein</entry>
- <entry><emphasis>n/a</emphasis></entry>
- <entry>Variablen die der 'insert'-Funktion übergeben werden sollen.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- <para>
- 'insert'-Tags funktionieren ähnlich den 'include'-Tags,
- werden aber nicht gecached, falls <link linkend="caching">caching</link>
- eingeschaltet ist. Sie werden bei jedem Aufruf des Templates ausgeführt.
- </para>
- <para>
- Stellen Sie sich vor, sie hätten ein Template mit einem
- Werbebanner. Dieser Banner kann verschiedene Arten von
- Inhalten haben: Bilder, HTML, Flash, etc.
- Deshalb können wir nicht einfach einen statischen Link
- verwenden und müssen vermeiden, dass dieser Inhalt gecached wird.
- Hier kommt das 'insert'-Tag ins Spiel. Das Template kennt die Variablen
- '#banner_location_id#' und '#site_id#' (zum Beispiel aus einer Konfigurationsdatei)
- und soll eine Funktion aufrufen, die den Inhalt des Banners liefert.
- </para>
-<example>
-<title>Funktion 'insert'</title>
-<programlisting>
-
+<!-- $Revision: 1.3 $ -->
+<!-- EN-Revision: 1.5 Maintainer: andreas Status: ready -->
+<sect1 id="language.function.insert">
+ <title>insert (einfügen)</title>
+ <informaltable frame="all">
+ <tgroup cols="5">
+ <colspec colname="param" align="center" />
+ <colspec colname="type" align="center" />
+ <colspec colname="required" align="center" />
+ <colspec colname="default" align="center" />
+ <colspec colname="desc" />
+ <thead>
+ <row>
+ <entry>Attribut Name</entry>
+ <entry>Typ</entry>
+ <entry>Erforderlich</entry>
+ <entry>Standardwert</entry>
+ <entry>Beschreibung</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>name</entry>
+ <entry>string</entry>
+ <entry>Ja</entry>
+ <entry><emphasis>n/a</emphasis></entry>
+ <entry>Der Name der Insert-Funktion</entry>
+ </row>
+ <row>
+ <entry>assign</entry>
+ <entry>string</entry>
+ <entry>Nein</entry>
+ <entry><emphasis>n/a</emphasis></entry>
+ <entry>Name der Template-Variable, in der die Ausgabe der 'insert'-Funktion optional abgelegt wird.</entry>
+ </row>
+ <row>
+ <entry>script</entry>
+ <entry>string</entry>
+ <entry>Nein</entry>
+ <entry><emphasis>n/a</emphasis></entry>
+ <entry>Name des PHP-Skriptes, das vor Aufruf der 'insert'-Funktion eingebunden werden soll.</entry>
+ </row>
+ <row>
+ <entry>[var ...]</entry>
+ <entry>[var typ]</entry>
+ <entry>Nein</entry>
+ <entry><emphasis>n/a</emphasis></entry>
+ <entry>Variablen die der 'insert'-Funktion übergeben werden sollen.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <para>
+ {insert}-Tags funktionieren ähnlich den <link
+ linkend="language.function.include">{include}</link>-Tags, werden
+ aber nicht gecached, falls <link linkend="caching">caching</link>
+ eingeschaltet ist. Sie werden bei jedem Aufruf des Templates
+ ausgeführt.
+ </para>
+ <para>
+ Stellen Sie sich vor, sie hätten ein Template mit einem
+ Werbebanner. Dieser Banner kann verschiedene Arten von Inhalten
+ haben: Bilder, HTML, Flash, etc. Deshalb können wir nicht einfach
+ einen statischen Link verwenden und müssen vermeiden, dass dieser
+ Inhalt gecached wird. Hier kommt das {insert}-Tag ins Spiel. Das
+ Template kennt die Variablen '#banner_location_id#' und '#site_id#'
+ (zum Beispiel aus einer <link
+ linkend="config.files">Konfigurationsdatei</link>) und soll eine
+ Funktion aufrufen, die den Inhalt des Banners liefert.
+ </para>
+ <example>
+ <title>Funktion 'insert'</title>
+ <programlisting>
{* erzeugen des Banners *}
-{insert name="getBanner" lid=#banner_location_id# sid=#site_id#}</programlisting>
-</example>
- <para>
- In diesem Beispiel verwenden wir die Funktion 'getBanner' und
- übergeben die Parameter '#banner_location_id#' und '#site_id#'.
- Smarty wird daraufhin in Ihrer Applikatiopn nach einer Funktion
- namens 'getBanner' suchen und diese mit den Parametern '#banner_location_id#'
- und '#site_id#' aufrufen. Allen 'insert'-Funktionen in Ihrer Applikation
- muss 'insert_' vorangestellt werden, um Konflikte im Namensraum
- zu vermeiden. Ihre 'insert_getBanner()'-Funktion sollte etwas mit den
- übergebenen Parametern unternehmen und das Resultat zurückgeben.
- Dieses Resultat wird an der Stelle des 'insert'-Tags in Ihrem Template ausgegeben.
- In diesem Beispiel würde Smarty folgende Funktion aufrufen:
- insert_getBanner(array("lid" => "12345","sid" => "67890")) und die erhaltenen Resultate
- an Stelle des 'insert'-Tags ausgeben.
- </para>
- <para>
- Falls Sie das 'assign'-Attribut übergeben, wird die Ausgabe
- des 'insert'-Tags in dieser Variablen abgelegt.
- Bemerkung: dies ist nicht sinnvoll, wenn Caching eingeschaltet ist.
- </para>
- <para>
- Falls Sie das 'script'-Attribut übergeben, wird das angegebene
- PHP-Skript vor der Ausführung der 'insert'-Funktion eingebunden.
- Dies ist nützlich, um die 'insert'-Funktion erst in diesem
- Skript zu definieren.
- Der Pfad kann absolut oder relativ zu '$trusted_dir' angegeben werden.
- Wenn Sicherheit eingeschaltet ist, muss das Skript in '$trusted_dir'
- liegen.
- </para>
- <para>
- Als zweites Argument wird der 'insert'-Funktion das Smarty-Objekt selbst
- übergeben. Damit kann dort auf die Informationen im Smarty-Objekt
- zugegriffen werden.
- </para>
- <note>
- <title>Technische Bemerkung</title>
- <para>
- Es gibt die Möglichkeit, Teile des Templates nicht zu cachen.
- Wenn Sie <link linkend="caching">caching</link> eingeschaltet haben,
- werden 'insert'-Tags nicht gecached. Sie werden jedesmal ausgeführt, wenn
- die Seite erstellt wird - selbst innerhalb gecachter Seiten. Dies funktioniert
- gut für Dinge wie Werbung (Banner), Abstimmungen, Wetterberichte, Such-Resultate, Benutzer-Feedback-Ecke, etc.
- </para>
- </note>
+{insert name="getBanner" lid=#banner_location_id# sid=#site_id#}
+ </programlisting>
+ </example>
+ <para>
+ In diesem Beispiel verwenden wir die Funktion 'getBanner' und
+ übergeben die Parameter '#banner_location_id#' und '#site_id#'.
+ Smarty wird daraufhin in Ihrer Applikatiopn nach einer Funktion
+ namens 'getBanner' suchen und diese mit den Parametern
+ '#banner_location_id#' und '#site_id#' aufrufen. Allen
+ 'insert'-Funktionen in Ihrer Applikation muss 'insert_'
+ vorangestellt werden, um Konflikte im Namensraum zu vermeiden. Ihre
+ 'insert_getBanner()'-Funktion sollte etwas mit den übergebenen
+ Parametern unternehmen und das Resultat zurückgeben. Dieses
+ Resultat wird an der Stelle des 'insert'-Tags in Ihrem Template
+ ausgegeben. In diesem Beispiel würde Smarty folgende Funktion
+ aufrufen: insert_getBanner(array("lid" => "12345","sid" => "67890"))
+ und die erhaltenen Resultate an Stelle des 'insert'-Tags ausgeben.
+ </para>
+ <para>
+ Falls Sie das 'assign'-Attribut übergeben, wird die Ausgabe des
+ 'insert'-Tags in dieser Variablen abgelegt. Bemerkung: dies ist
+ nicht sinnvoll, wenn <link linkend="variable.caching">Caching</link>
+ eingeschaltet ist.
+ </para>
+ <para>
+ Falls Sie das 'script'-Attribut übergeben, wird das angegebene
+ PHP-Skript vor der Ausführung der {insert}-Funktion eingebunden.
+ Dies ist nützlich, um die {insert}-Funktion erst in diesem Skript zu
+ definieren. Der Pfad kann absolut oder relativ zu <link
+ linkend="variable.trusted.dir">$trusted_dir</link> angegeben werden.
+ Wenn Sicherheit eingeschaltet ist, muss das Skript in <link
+ linkend="variable.trusted.dir">$trusted_dir</link> liegen.
+ </para>
+ <para>
+ Als zweites Argument wird der {insert}-Funktion das Smarty-Objekt
+ selbst übergeben. Damit kann dort auf die Informationen im
+ Smarty-Objekt zugegriffen werden.
+ </para>
+ <note>
+ <title>Technische Bemerkung</title>
+ <para>
+ Es gibt die Möglichkeit, Teile des Templates nicht zu cachen. Wenn
+ Sie <link linkend="caching">caching</link> eingeschaltet haben,
+ werden {insert}-Tags nicht gecached. Sie werden jedesmal
+ ausgeführt, wenn die Seite erstellt wird - selbst innerhalb
+ gecachter Seiten. Dies funktioniert gut für Dinge wie Werbung
+ (Banner), Abstimmungen, Wetterberichte, Such-Resultate,
+ Benutzer-Feedback-Ecke, etc.
+ </para>
+ </note>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
http://cvs.php.net/diff.php/smarty/docs/de/designers/language-builtin-functions/language-function-ldelim.xml?r1=1.2&r2=1.3&ty=u
Index: smarty/docs/de/designers/language-builtin-functions/language-function-ldelim.xml
diff -u smarty/docs/de/designers/language-builtin-functions/language-function-ldelim.xml:1.2 smarty/docs/de/designers/language-builtin-functions/language-function-ldelim.xml:1.3
--- smarty/docs/de/designers/language-builtin-functions/language-function-ldelim.xml:1.2 Fri Jul 16 10:32:28 2004
+++ smarty/docs/de/designers/language-builtin-functions/language-function-ldelim.xml Fri Jun 24 05:02:38 2005
@@ -1,27 +1,64 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.2 $ -->
-<!-- EN-Revision: 1.1 Maintainer: andreas Status: ready -->
- <sect1 id="language.function.ldelim">
- <title>ldelim,rdelim (Ausgabe der Trennzeichen)</title>
- <para>
- ldelim und rdelim werden verwendet, um die Trennzeichen auszugeben -
- in unserem Fall "{" oder "}" - ohne dass Smarty versucht, sie zu
- interpretieren.
- </para>
-<example>
-<title>ldelim, rdelim</title>
-<programlisting>
-
+<!-- $Revision: 1.3 $ -->
+<!-- EN-Revision: 1.9 Maintainer: andreas Status: ready -->
+ <sect1 id="language.function.ldelim">
+ <title>ldelim,rdelim (Ausgabe der Trennzeichen)</title>
+ <para>
+ ldelim und rdelim werden verwendet, um die Trennzeichen auszugeben -
+ in unserem Fall "{" oder "}" - ohne dass Smarty versucht, sie zu
+ interpretieren. Um text im Template vor dem Interpretieren zu
+ schützen kann auch <link
+ linkend="language.function.literal">{literal}{/literal}</link>
+ verwendet werden. Siehe auch <link
+ linkend="language.variables.smarty.ldelim">{$smarty.ldelim}</link>.
+ </para>
+ <example>
+ <title>ldelim, rdelim</title>
+ <programlisting>
+<![CDATA[
{* gibt die konfigurierten Trennzeichen des Templates aus *}
{ldelim}funktionsname{rdelim} Funktionen sehen in Smarty so aus!
-
-
-AUSGABE:
-
+]]>
+ </programlisting>
+ <para>
+ Das obige Beispiel ergibt als Ausgabe:
+ </para>
+ <screen>
+<![CDATA[
{funktionsname} Funktionen sehen in Smarty so aus!</programlisting>
-</example>
-</sect1>
+]]>
+ </screen>
+ <para>
+ Ein weiteres Beispiel (diesmal mit javascript)
+ </para>
+ <programlisting>
+<![CDATA[
+<script language="JavaScript">
+function foo() {ldelim}
+ ... code ...
+{rdelim}
+</script>
+]]>
+ </programlisting>
+ <para>
+ Ausgabe:
+ </para>
+ <screen>
+<![CDATA[
+<script language="JavaScript">
+function foo() {
+ .... code ...
+}
+</script>
+]]>
+ </screen>
+
+ </example>
+ <para>
+ Siehe auch <link linkend="language.escaping">Smarty Parsing umgehen</link>
+ </para>
+ </sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
http://cvs.php.net/diff.php/smarty/docs/de/designers/language-builtin-functions/language-function-literal.xml?r1=1.2&r2=1.3&ty=u
Index: smarty/docs/de/designers/language-builtin-functions/language-function-literal.xml
diff -u smarty/docs/de/designers/language-builtin-functions/language-function-literal.xml:1.2 smarty/docs/de/designers/language-builtin-functions/language-function-literal.xml:1.3
--- smarty/docs/de/designers/language-builtin-functions/language-function-literal.xml:1.2 Fri Jul 16 10:32:28 2004
+++ smarty/docs/de/designers/language-builtin-functions/language-function-literal.xml Fri Jun 24 05:02:38 2005
@@ -1,36 +1,44 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.2 $ -->
+<!-- $Revision: 1.3 $ -->
<!-- EN-Revision: 1.1 Maintainer: andreas Status: ready -->
- <sect1 id="language.function.literal">
- <title>literal</title>
- <para>
- 'literal'-Tags erlauben es, einen Block wörtlich auszugeben,
- d.h. von der Interpretation durch Smarty auszuschliessen.
- Dies ist vor allem für Javascript- oder andere Blöcke
- nützlich, die geschwungene Klammern verwenden. Alles
- was zwischen den {literal}{/literal} Tags steht, wird direkt
- angezeigt.</para>
-<example>
-<title>literal-Tags</title>
-<programlisting>
+<sect1 id="language.function.literal">
+ <title>literal</title>
+ <para>
+ {literal}-Tags erlauben es, einen Block wörtlich auszugeben,
+ d.h. von der Interpretation durch Smarty auszuschliessen. Dies ist
+ vor allem für Javascript- oder andere Blöcke nützlich, die
+ geschwungene Klammern verwenden. Alles was zwischen den
+ {literal}{/literal} Tags steht, wird direkt angezeigt. Wenn in
+ einem {literal}-Block temlate-Tags verwendet werden sollen, is es
+ manchmal sinnvoller <link
+ linkend="language.function.ldelim">{ldelim}{rdelim}</link> statt
+ {literal} zu verwenden.
+ </para>
+ <example>
+ <title>literal-Tags</title>
+ <programlisting>
+<![CDATA[
{literal}
- <script language=javascript>
-
- <!--
- function isblank(field) {
- if (field.value == '')
- { return false; }
- else
- {
- document.loginform.submit();
- return true;
- }
- }
- // -->
-
- </script>
-{/literal}</programlisting>
-</example>
+<script language=javascript>
+<!--
+ function isblank(field) {
+ if (field.value == '') {
+ return false;
+ } else {
+ document.loginform.submit();
+ return true;
+ }
+ }
+// -->
+</script>
+{/literal}
+]]>
+ </programlisting>
+ </example>
+ <para>
+ Siehe auch <link linkend="language.escaping">Smarty Parsing
+ umgehen</link>.
+ </para>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
http://cvs.php.net/diff.php/smarty/docs/de/designers/language-builtin-functions/language-function-php.xml?r1=1.2&r2=1.3&ty=u
Index: smarty/docs/de/designers/language-builtin-functions/language-function-php.xml
diff -u smarty/docs/de/designers/language-builtin-functions/language-function-php.xml:1.2 smarty/docs/de/designers/language-builtin-functions/language-function-php.xml:1.3
--- smarty/docs/de/designers/language-builtin-functions/language-function-php.xml:1.2 Fri Jul 16 10:32:28 2004
+++ smarty/docs/de/designers/language-builtin-functions/language-function-php.xml Fri Jun 24 05:02:38 2005
@@ -1,23 +1,44 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.2 $ -->
-<!-- EN-Revision: 1.1 Maintainer: andreas Status: ready -->
- <sect1 id="language.function.php">
- <title>php</title>
- <para>
- 'php'-Tags erlauben es, PHP-Code direkt in das Template einzubetten. Der Inhalt
- wird nicht 'escaped', egal wie <link linkend="variable.php.handling">$php_handling</link>
- konfiguriert ist.
- Dieses Tag ist nur für erfahrene Benutzer gedacht und wird
- auch von diesen normalerweise nicht benötigt.
- </para>
-<example>
-<title>php-Tags</title>
-<programlisting>
+<!-- $Revision: 1.3 $ -->
+<!-- EN-Revision: 1.6 Maintainer: andreas Status: ready -->
+<sect1 id="language.function.php">
+ <title>php</title>
+ <para>
+ {php}-Tags erlauben es, PHP-Code direkt in das Template
+ einzubetten. Der Inhalt wird nicht 'escaped', egal wie <link
+ linkend="variable.php.handling">$php_handling</link> konfiguriert
+ ist. Dieses Tag ist nur für erfahrene Benutzer gedacht und wird
+ auch von diesen normalerweise nicht benötigt.
+ </para>
+ <example>
+ <title>{php}-Tags</title>
+ <programlisting>
+<![CDATA[
{php}
- // php Skript direkt von Template einbinden
- include("/pfad/zu/zeige_weather.php");
-{/php}</programlisting>
-</example>
+ // php Skript direkt von Template einbinden
+ include("/pfad/zu/zeige_weather.php");
+ {/php}
+]]>
+ </programlisting>
+ </example>
+ <note>
+ <title>Technical Note</title>
+ <para>
+ Um auf PHP-Variablen in {php}-Blöcken zugreifen zu können, kann es
+ nötig sein, die Variable als <ulink
+ url="&url.php-manual;global">global</ulink> zu deklarieren. Der
+ {php}-Blöck läuft nämlich nicht in einem globalen Kontext, sondern
+ im Kontext der method des laufenden $smarty-Objektes.
+ </para>
+ </note>
+ <para>
+ Siehe auch <link
+ linkend="variable.php.handling">$php_handling</link>, <link
+ linkend="language.function.include.php">{include_php}</link>, <link
+ linkend="language.function.include">{include}</link> und <link
+ linkend="tips.componentized.templates">Template/Script
+ Komponenten</link>.
+ </para>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
http://cvs.php.net/diff.php/smarty/docs/de/designers/language-builtin-functions/language-function-section.xml?r1=1.2&r2=1.3&ty=u
Index: smarty/docs/de/designers/language-builtin-functions/language-function-section.xml
diff -u smarty/docs/de/designers/language-builtin-functions/language-function-section.xml:1.2 smarty/docs/de/designers/language-builtin-functions/language-function-section.xml:1.3
--- smarty/docs/de/designers/language-builtin-functions/language-function-section.xml:1.2 Fri Jul 16 10:32:28 2004
+++ smarty/docs/de/designers/language-builtin-functions/language-function-section.xml Fri Jun 24 05:02:38 2005
@@ -1,553 +1,764 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.2 $ -->
-<!-- EN-Revision: 1.3 Maintainer: andreas Status: ready -->
- <sect1 id="language.function.section">
- <title>section,sectionelse</title>
- <informaltable frame="all">
- <tgroup cols="5">
- <colspec colname="param" align="center" />
- <colspec colname="type" align="center" />
- <colspec colname="required" align="center" />
- <colspec colname="default" align="center" />
- <colspec colname="desc" />
- <thead>
- <row>
- <entry>Attribut Name</entry>
- <entry>Typ</entry>
- <entry>Erforderlich</entry>
- <entry>Standardwert</entry>
- <entry>Beschreibung</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>name</entry>
- <entry>string</entry>
- <entry>Ja</entry>
- <entry><emphasis>n/a</emphasis></entry>
- <entry>Der Name der 'section'</entry>
- </row>
- <row>
- <entry>loop</entry>
- <entry>[$variable_name]</entry>
- <entry>Ja</entry>
- <entry><emphasis>n/a</emphasis></entry>
- <entry>Der Name des Zählers für die Iterationen.</entry>
- </row>
- <row>
- <entry>start</entry>
- <entry>integer</entry>
- <entry>Nein</entry>
- <entry><emphasis>0</emphasis></entry>
- <entry>
- Definiert die Startposition. Falls ein negativer Wert übergeben wird,
- berechnet sich die Startposition ausgehend vom Ende des Arrays. Wenn zum Beispiel
- 7 Werte in einem Array enthalten sind und die Startposition -2 ist, ist die
- berechnete Startposition 5. Unerlaubte Werte (Werte ausserhalb der Grösse des
- Arrays) werden automatisch auf den nächstmöglichen Wert gesetzt.</entry>
- </row>
- <row>
- <entry>step</entry>
- <entry>integer</entry>
- <entry>Nein</entry>
- <entry><emphasis>1</emphasis></entry>
- <entry>
- Definiert die Schrittweite mit welcher das Array durchlaufen wird.
- 'step=2' iteriert durch 0, 2, 4, etc. Wenn ein negativer Wert übergeben wurde,
- wird das Array rückwärts durchlaufen.
- </entry>
- </row>
- <row>
- <entry>max</entry>
- <entry>integer</entry>
- <entry>Nein</entry>
- <entry><emphasis>n/a</emphasis></entry>
- <entry>Maximale Anzahl an Iterationen, die Durchlaufen werden.</entry>
- </row>
- <row>
- <entry>show</entry>
- <entry>boolean</entry>
- <entry>Nein</entry>
- <entry><emphasis>true</emphasis></entry>
- <entry>Definiert ob diese 'section' angezeigt werden soll oder nicht.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- <para>
- Template-'sections' werden verwendet, um durch Arrays zu iterieren.
- Jedes <emphasis>section</emphasis>-Tag muss mit einem <emphasis>/section</emphasis>-Tag
- kombiniert werden. <emphasis>name</emphasis> und <emphasis>loop</emphasis> sind erforderliche
- Parameter. Der Name der 'section' kann frei gewählt werden, muss jedoch aus Buchstaben,
- Zahlen oder Unterstrichen bestehen. 'sections' können verschachtelt werden. Dabei ist
- zu beachten, dass sich ihre Namen unterscheiden. Aus der 'loop'-Variable (normalerweise ein
- Array von Werten) resultiert die Anzahl der Iterationen, die durchlaufen werden.
- Wenn ein Wert aus der 'loop'-Variable innerhalb der 'section' ausgegeben werden soll,
- muss der 'section-name' umschlossen mit [] angefügt werden.
- <emphasis>sectionelse</emphasis> wird ausgeführt, wenn keine Werte in der
- 'loop'-Variable enthalten sind.
- </para>
-<example>
-<title>section</title>
-<programlisting>
-
-
+<!-- $Revision: 1.3 $ -->
+<!-- EN-Revision: 1.13 Maintainer: andreas Status: ready -->
+<sect1 id="language.function.section">
+ <title>section,sectionelse</title>
+ <informaltable frame="all">
+ <tgroup cols="5">
+ <colspec colname="param" align="center" />
+ <colspec colname="type" align="center" />
+ <colspec colname="required" align="center" />
+ <colspec colname="default" align="center" />
+ <colspec colname="desc" />
+ <thead>
+ <row>
+ <entry>Attribut Name</entry>
+ <entry>Typ</entry>
+ <entry>Erforderlich</entry>
+ <entry>Standardwert</entry>
+ <entry>Beschreibung</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>name</entry>
+ <entry>string</entry>
+ <entry>Ja</entry>
+ <entry><emphasis>n/a</emphasis></entry>
+ <entry>Der Name der 'section'</entry>
+ </row>
+ <row>
+ <entry>loop</entry>
+ <entry>[$variable_name]</entry>
+ <entry>Ja</entry>
+ <entry><emphasis>n/a</emphasis></entry>
+ <entry>Der Name des Zählers für die Iterationen.</entry>
+ </row>
+ <row>
+ <entry>start</entry>
+ <entry>integer</entry>
+ <entry>Nein</entry>
+ <entry><emphasis>0</emphasis></entry>
+ <entry>
+ Definiert die Startposition. Falls ein negativer Wert übergeben
+ wird, berechnet sich die Startposition ausgehend vom Ende des
+ Arrays. Wenn zum Beispiel 7 Werte in einem Array enthalten sind
+ und die Startposition -2 ist, ist die berechnete Startposition
+ 5. Unerlaubte Werte (Werte ausserhalb der Grösse des Arrays)
+ werden automatisch auf den nächstmöglichen Wert gesetzt.
+ </entry>
+ </row>
+ <row>
+ <entry>step</entry>
+ <entry>integer</entry>
+ <entry>Nein</entry>
+ <entry><emphasis>1</emphasis></entry>
+ <entry>
+ Definiert die Schrittweite mit welcher das Array durchlaufen
+ wird. 'step=2' iteriert durch 0, 2, 4, etc. Wenn ein negativer
+ Wert übergeben wurde, wird das Array rückwärts durchlaufen.
+ </entry>
+ </row>
+ <row>
+ <entry>max</entry>
+ <entry>integer</entry>
+ <entry>Nein</entry>
+ <entry><emphasis>n/a</emphasis></entry>
+ <entry>Maximale Anzahl an Iterationen, die Durchlaufen werden.</entry>
+ </row>
+ <row>
+ <entry>show</entry>
+ <entry>boolean</entry>
+ <entry>Nein</entry>
+ <entry><emphasis>true</emphasis></entry>
+ <entry>Definiert ob diese 'section' angezeigt werden soll oder nicht.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <para>
+ Template-{sections} werden verwendet, um durch <emphasis
+ role="bold">Arrays</emphasis> zu iterieren (ähnlich wie <link
+ linkend="language.function.foreach">{foreach}</link>). Jedes
+ <emphasis>section</emphasis>-Tag muss mit einem
+ <emphasis>/section</emphasis>-Tag kombiniert
+ werden. <emphasis>name</emphasis> und <emphasis>loop</emphasis> sind
+ erforderliche Parameter. Der Name der 'section' kann frei gewählt
+ werden, muss jedoch aus Buchstaben, Zahlen oder Unterstrichen
+ bestehen. {sections} können verschachtelt werden. Dabei ist zu
+ beachten, dass sich ihre Namen unterscheiden. Aus der
+ 'loop'-Variable (normalerweise ein Array von Werten) resultiert die
+ Anzahl der Iterationen, die durchlaufen werden. Wenn ein Wert aus
+ der 'loop'-Variable innerhalb der {section} ausgegeben werden soll,
+ muss der 'section-name' umschlossen mit [] angefügt werden.
+ <emphasis>sectionelse</emphasis> wird ausgeführt, wenn keine Werte
+ in der 'loop'-Variable enthalten sind.
+ </para>
+ <example>
+ <title>section</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+$data = array(1000,1001,1002);
+$smarty->assign('custid',$data);
+
+?>
+]]>
+ </programlisting>
+ <programlisting>
+<![CDATA[
{* dieses Beispiel gibt alle Werte des $KundenId Arrays aus *}
{section name=kunde loop=$KundenId}
- id: {$KundenId[kunde]}<br>
+id: {$KundenId[kunde]}<br />
+{/section}
+{* alle Werte in umgekehrter Reihenfolge ausgeben: *}
+{section name=kunde loop=$KundenId step=-1}
+id: {$KundenId[kunde]}<br />
+{/section}
+]]>
+ </programlisting>
+ <para>
+ Ausgabe des obigen Beispiels:
+ </para>
+ <screen>
+<![CDATA[
+id: 1000<br />
+id: 1001<br />
+id: 1002<br />
+<hr />
+id: 1002<br />
+id: 1001<br />
+id: 1000<br />
+]]>
+ </screen>
+
+ <para>
+ Ein weiteres Beispiel, diesmal ohne ein zugewiesenes Array.
+ </para>
+ <programlisting>
+<![CDATA[
+{section name=foo start=10 loop=20 step=2}
+ {$smarty.section.foo.index}
+{/section}
+<hr />
+{section name=bar loop=21 max=6 step=-2}
+ {$smarty.section.bar.index}
{/section}
+]]>
+ </programlisting>
-AUSGABE:
+ <para>
+ Ausgabe des obigen Beispiels:
+ </para>
-id: 1000<br>
-id: 1001<br>
-id: 1002<br></programlisting>
-</example>
+ <screen>
+<![CDATA[
+10 12 14 16 18
+<hr />
+20 18 16 14 12 10
+]]>
+ </screen>
-<example>
-<title>section loop Variable</title>
-<programlisting>
+ </example>
+
+
+
+ <example>
+ <title>section loop Variable</title>
+ <programlisting>
+<![CDATA[
{* die 'loop'-Variable definiert nur die Anzahl der Iterationen,
- Sie kö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
$Adressen Arrays sind, welche die selbe Anzahl Werte enthalten *}
{section name=kunde loop=$KundenId}
- id: {$KundenId[kunde]}<br>
- name: {$Namen[kunde]}<br>
- address: {$Adressen[kunde]}<br>
- <p>
+id: {$KundenId[kunde]}<br>
+name: {$Namen[kunde]}<br>
+address: {$Adressen[kunde]}<br>
+<p>
{/section}
-
-
-AUSGABE:
-
-id: 1000<br>
-name: Peter Müller <br>
-adresse: 253 N 45th<br>
-<p>
-id: 1001<br>
-name: Fritz Muster<br>
-adresse:: 417 Mulberry ln<br>
-<p>
-id: 1002<br>
-name: Hans Meier<br>
-adresse:: 5605 apple st<br>
-<p></programlisting>
-</example>
-
-<example>
-<title>section names</title>
-<programlisting>
-{* die 'name'-Variable definiert den Namen der verwendet werden soll,
- um Daten aus dieser 'section' zu referenzieren *}
+]]>
+ </programlisting>
+ <para>
+ Ausgabe des obigen Beispiels:
+ </para>
+ <screen>
+<![CDATA[
+
+id: 1000<br>
+name: Peter Müller <br>
+adresse: 253 N 45th<br>
+<p>
+id: 1001<br>
+name: Fritz Muster<br>
+adresse:: 417 Mulberry ln<br>
+<p>
+id: 1002<br>
+name: Hans Meier<br>
+adresse:: 5605 apple st<br>
+<p>
+]]>
+ </screen>
+ </example>
+ <example>
+ <title>section names</title>
+ <programlisting>
+<![CDATA[
+{*
+ die 'name'-Variable definiert den Namen der verwendet werden soll,
+ um Daten aus dieser 'section' zu referenzieren
+*}
{section name=meinedaten loop=$KundenId}
- id: {$KundenId[meinedaten]}<br>
- name: {$Namen[meinedaten]}<br>
- address: {$Adressen[meinedaten]}<br>
- <p>
-{/section}</programlisting>
-</example>
-
-<example>
-<title>nested sections (verschachtelte 'sections')</title>
-<programlisting>
-{* Sections können unbegrenzt tief verschachtelt werden.
- Mit verschachtelten 'sections' können Sie auf komplexe Datenstrukturen
- zugreifen (wie zum Beispiel multidimensionale Arrays). Im folgenden Beispiel
- ist $contact_type[customer] ein Array mit Kontakttypen des aktuellen Kunden. *}
+<p>
+ id: {$KundenId[meinedaten]}<br>
+ name: {$Namen[meinedaten]}<br>
+ address: {$Adressen[meinedaten]}
+</p>
+{/section}
+]]>
+ </programlisting>
+ </example>
+
+ <example>
+ <title>nested sections (verschachtelte 'sections')</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+$id = array(1001,1002,1003);
+$smarty->assign('custid',$id);
+
+$fullnames = array('John Smith','Jack Jones','Jane Munson');
+$smarty->assign('name',$fullnames);
+
+$addr = array('253 N 45th', '417 Mulberry ln', '5605 apple st');
+$smarty->assign('address',$addr);
+
+$types = array(
+ array( 'home phone', 'cell phone', 'e-mail'),
+ array( 'home phone', 'web'),
+ array( 'cell phone')
+ );
+$smarty->assign('contact_type', $types);
+
+$info = array(
+ array('555-555-5555', '666-555-5555', '[email protected]'),
+ array( '123-456-4', 'www.example.com'),
+ array( '0457878')
+ );
+$smarty->assign('contact_info', $info);
+
+?>
+ ]]>
+ </programlisting>
+ <programlisting>
+<![CDATA[
+{*
+ Sections können unbegrenzt tief verschachtelt werden. Mit
+ verschachtelten 'sections' können Sie auf komplexe Datenstrukturen
+ zugreifen (wie zum Beispiel multidimensionale Arrays). Im folgenden
+ Beispiel ist $contact_type[customer] ein Array mit Kontakttypen des
+ aktuellen Kunden.
+*}
{section name=customer loop=$custid}
- id: {$custid[customer]}<br>
- name: {$name[customer]}<br>
- address: {$address[customer]}<br>
- {section name=contact loop=$contact_type[customer]}
- {$contact_type[customer][contact]}: {$contact_info[customer][contact]}<br>
- {/section}
- <p>
+<hr />
+ id: {$custid[customer]}<br />
+ name: {$name[customer]}<br />
+ address: {$address[customer]}<br />
+ {section name=contact loop=$contact_type[customer]}
+ {$contact_type[customer][contact]}: {$contact_info[customer][contact]}<br />
+ {/section}
{/section}
-
-
-AUSGABE:
-
-id: 1000<br>
-name: John Smith<br>
-address: 253 N 45th<br>
-home phone: 555-555-5555<br>
-cell phone: 555-555-5555<br>
-e-mail: [email protected]<br>
-<p>
-id: 1001<br>
-name: Jack Jones<br>
-address: 417 Mulberry ln<br>
-home phone: 555-555-5555<br>
-cell phone: 555-555-5555<br>
-e-mail: [email protected]<br>
-<p>
-id: 1002<br>
-name: Jane Munson<br>
-address: 5605 apple st<br>
-home phone: 555-555-5555<br>
-cell phone: 555-555-5555<br>
-e-mail: [email protected]<br>
-<p></programlisting>
-</example>
-
-<example>
-<title>sections und assoziative Arrays</title>
-<programlisting>
-{* Dies ist ein Beispiel wie man einen assoziativen Array
- in einer 'section' ausgeben kann.*}
+]]>
+ </programlisting>
+ <para>
+ Ausgabe des obigen Beispiels:
+ </para>
+ <programlisting>
+<![CDATA[
+<hr />
+ id: 1000<br />
+ name: John Smith<br />
+ address: 253 N 45th<br />
+ home phone: 555-555-5555<br />
+ cell phone: 666-555-5555<br />
+ e-mail: [email protected]<br />
+<hr />
+ id: 1001<br />
+ name: Jack Jones<br />
+ address: 417 Mulberry ln<br />
+ home phone: 123-456-4<br />
+ web: www.example.com<br />
+<hr />
+ id: 1002<br />
+ name: Jane Munson<br />
+ address: 5605 apple st<br />
+ cell phone: 0457878<br />
+]]>
+ </programlisting>
+ </example>
+
+ <example>
+ <title>sections und assoziative Arrays</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+$data = array(
+ array('name' => 'John Smith', 'home' => '555-555-5555',
+ 'cell' => '666-555-5555', 'email' => '[email protected]'),
+ array('name' => 'Jack Jones', 'home' => '777-555-5555',
+ 'cell' => '888-555-5555', 'email' => '[email protected]'),
+ array('name' => 'Jane Munson', 'home' => '000-555-5555',
+ 'cell' => '123456', 'email' => '[email protected]')
+ );
+$smarty->assign('contacts',$data);
+
+?>
+]]>
+ </programlisting>
+ <programlisting>
+<![CDATA[
+{*
+ Dies ist ein Beispiel wie man einen assoziativen Array in einer
+ 'section' ausgeben kann.
+*}
{section name=customer loop=$contacts}
- name: {$contacts[customer].name}<br>
- home: {$contacts[customer].home}<br>
- cell: {$contacts[customer].cell}<br>
- e-mail: {$contacts[customer].email}<p>
+<p>
+name: {$contacts[customer].name}<br />
+home: {$contacts[customer].home}<br />
+cell: {$contacts[customer].cell}<br />
+e-mail: {$contacts[customer].email}
+</p>
{/section}
-{* Anm. d. übersetzers: Oft ist die Anwendung von 'foreach' kürzer. *}
+{* Anm. d. übersetzers: Oft ist die Anwendung von 'foreach' kürzer. *}
{foreach item=customer from=$contacts}
- name: {$customer.name}<br>
- home: {$customer.home}<br>
- cell: {$customer.cell}<br>
- e-mail: {$customer.email}<p>
+<p>
+name: {$customer.name}<br />
+home: {$customer.home}<br />
+cell: {$customer.cell}<br />
+e-mail: {$customer.email}
+</p>
{/foreach}
+]]>
+ </programlisting>
+ <para>
+ Ausgabe des obigen Beispiels:
+ </para>
+ <programlisting>
+<![CDATA[
+<p>
+name: John Smith<br />
+home: 555-555-5555<br />
+cell: 555-555-5555<br />
+e-mail: [email protected]
+</p>
+<p>
+name: Jack Jones<br />
+home phone: 555-555-5555<br />
+cell phone: 555-555-5555<br />
+e-mail: [email protected]
+<p>
+name: Jane Munson<br />
+home phone: 555-555-5555<br />
+cell phone: 555-555-5555<br />
+e-mail: [email protected]
+</p>
+]]>
+ </programlisting>
+ </example>
-AUSGABE:
-
-name: John Smith<br>
-home: 555-555-5555<br>
-cell: 555-555-5555<br>
-e-mail: [email protected]<p>
-name: Jack Jones<br>
-home phone: 555-555-5555<br>
-cell phone: 555-555-5555<br>
-e-mail: [email protected]<p>
-name: Jane Munson<br>
-home phone: 555-555-5555<br>
-cell phone: 555-555-5555<br>
-e-mail: [email protected]<p></programlisting>
-</example>
-<example>
-<title>sectionelse</title>
-<programlisting>
-{* sectionelse wird aufgerufen, wenn keine $custid Werte vorhanden sind *}
+ <example>
+ <title>sectionelse</title>
+ <programlisting>
+<![CDATA[
+{*
+ sectionelse wird aufgerufen, wenn keine $custid Werte vorhanden sind
+*}
{section name=customer loop=$custid}
- id: {$custid[customer]}<br>
+
+id: {$custid[customer]}<br>
{sectionelse}
- keine Werte in $custid gefunden
-{/section}</programlisting>
-</example>
- <para>
- Die Eigenschaften der 'section' werden in besonderen Variablen abgelegt.
- Diese sind wie folgt aufgebaut: {$smarty.section.sectionname.varname}
- </para>
- <para>
- Bermerkung: Seit Smarty 1.5.0 hat sich die Syntax der 'section' Eigenschaften
- von {%sectionname.varname%} zu {$smarty.section.sectionname.varname} geändert.
- Die alte Syntax wird noch immer unterstützt, die Dokumentation erwähnt
- jedoch nur noch die neue Schreibweise.
- </para>
- <sect2 id="section.property.index">
- <title>index</title>
- <para>
- 'index' wird verwendet, um den aktuellen Schleifen-Index anzuzeigen. Er startet
- bei 0 (beziehungsweise der definierten Startposition) und inkrementiert in 1-er Schritten
- (beziehungsweise der definierten Schrittgrösse).
- </para>
- <note>
- <title>Technische Bemerkung</title>
- <para>
- Wenn 'step' und 'start' nicht übergeben werden, verhält sich
- der Wert wie die 'section'-Eigenschaft 'iteration', ausser dass
- er bei 0 anstatt 1 beginnt.
- </para>
- </note>
- <example>
- <title>'section'-Eigenschaft 'index'</title>
- <programlisting>
- {section name=customer loop=$custid}
- {$smarty.section.customer.index} id: {$custid[customer]}<br>
- {/section}
-
-
- AUSGABE:
-
- 0 id: 1000<br>
- 1 id: 1001<br>
- 2 id: 1002<br>
-</programlisting>
- </example>
- </sect2>
- <sect2 id="section.property.index.prev">
- <title>index_prev</title>
- <para>
- 'index_prev' wird verwendet um den vorhergehenden Schleifen-Index
- auszugeben. Bei der ersten Iteration ist dieser Wert -1.
- </para>
- <example>
- <title>section'-Eigenschaft 'index_prev'</title>
- <programlisting>
- {section name=customer loop=$custid}
- {$smarty.section.customer.index} id: {$custid[customer]}<br>
- {* zur Information, $custid[customer.index] und $custid[customer] bedeuten das selbe *}
- {if $custid[customer.index_prev] ne $custid[customer.index]}
- Die Kundennummer hat sich geändert.<br>
- {/if}
- {/section}
-
-
- AUSGABE:
-
- 0 id: 1000<br>
- Die Kundennummer hat sich geändert.<br>
- 1 id: 1001<br>
- Die Kundennummer hat sich geändert.<br>
- 2 id: 1002<br>
- Die Kundennummer hat sich geändert.<br>
-</programlisting>
- </example>
- </sect2>
- <sect2 id="section.property.index.next">
- <title>index_next</title>
- <para>
- 'index_next' wird verwendet um den nächsten 'loop'-Index
- auszugeben. Bei der letzten Iteration ist dieser Wert um 1 grösser
- als der aktuelle 'loop'-Index (inklusive dem definierten 'step' Wert).
- </para>
- <example>
- <title>section'-Eigenschaft 'index_next'</title>
- <programlisting>
- {section name=customer loop=$custid}
- {$smarty.section.customer.index} id: {$custid[customer]}<br>
- {* zur Information, $custid[customer.index] und $custid[customer] bedeuten das selbe *}
- {if $custid[customer.index_next] ne $custid[customer.index]}
- Die Kundennummer wird sich ändern.<br>
- {/if}
- {/section}
-
-
- AUSGABE:
-
- 0 id: 1000<br>
- Die Kundennummer wird sich ändern.<br>
- 1 id: 1001<br>
- Die Kundennummer wird sich ändern.<br>
- 2 id: 1002<br>
- Die Kundennummer wird sich ändern.<br>
-</programlisting>
- </example>
- </sect2>
- <sect2 id="section.property.iteration">
- <title>iteration</title>
- <para>
- 'iteration' wird verwendet um die aktuelle Iteration auszugeben.
- </para>
- <para>
- Bemerkung: Die Eigenschaften 'start', 'step' und 'max' beeinflussen 'iteration'
- nicht, die Eigenschaft 'index' jedoch schon. 'iteration' startet im gegensatz
- zu 'index' bei 1. 'rownum' ist ein Alias für 'iteration' und arbeitet identisch.
- </para>
- <example>
- <title>'section'-Eigenschaft 'iteration'</title>
- <programlisting>
- {section name=customer loop=$custid start=5 step=2}
- aktuelle loop iteration: {$smarty.section.customer.iteration}<br>
- {$smarty.section.customer.index} id: {$custid[customer]}<br>
- {* zur Information, $custid[customer.index] und $custid[customer] bedeuten das gleiche *}
- {if $custid[customer.index_next] ne $custid[customer.index]}
- Die Kundennummer wird sich ändern.<br>
- {/if}
- {/section}
-
-
- AUSGABE:
-
- aktuelle loop iteration: 1
- 5 id: 1000<br>
- Die Kundennummer wird sich ändern.<br>
- aktuelle loop iteration: 2
- 7 id: 1001<br>
- Die Kundennummer wird sich ändern.<br>
- aktuelle loop iteration: 3
- 9 id: 1002<br>
- Die Kundennummer wird sich ändern.<br>
-</programlisting>
- </example>
- </sect2>
- <sect2 id="section.property.first">
- <title>first</title>
- <para>
-
- 'first' ist 'true', wenn die aktuelle Iteration die erste dieser 'section' ist.
- </para>
- <example>
- <title>'section'-Eigenschaft 'first'</title>
- <programlisting>
- {section name=customer loop=$custid}
- {if $smarty.section.customer.first}
- <table>
- {/if}
-
- <tr><td>{$smarty.section.customer.index} id:
- {$custid[customer]}</td></tr>
-
- {if $smarty.section.customer.last}
- </table>
- {/if}
- {/section}
-
-
- AUSGABE:
-
- <table>
- <tr><td>0 id: 1000</td></tr>
- <tr><td>1 id: 1001</td></tr>
- <tr><td>2 id: 1002</td></tr>
- </table>
-</programlisting>
- </example>
- </sect2>
- <sect2 id="section.property.last">
- <title>last</title>
- <para>
-
- 'last' ist 'true' wenn die aktuelle Iteration die letzte dieser 'section' ist.
- </para>
- <example>
- <title>'section'-Eigenschaft 'last'</title>
- <programlisting>
- {section name=customer loop=$custid}
- {if $smarty.section.customer.first}
- <table>
- {/if}
-
- <tr><td>{$smarty.section.customer.index} id:
- {$custid[customer]}</td></tr>
-
- {if $smarty.section.customer.last}
- </table>
- {/if}
- {/section}
-
-
- AUSGABE:
-
- <table>
- <tr><td>0 id: 1000</td></tr>
- <tr><td>1 id: 1001</td></tr>
- <tr><td>2 id: 1002</td></tr>
- </table>
-</programlisting>
- </example>
- </sect2>
- <sect2 id="section.property.rownum">
- <title>rownum</title>
- <para>
- 'rownum' wird verwendet um die aktuelle Iteration (startend bei 1) auszugeben.
- 'rownum' ist ein Alias für 'iteration' und arbeitet identisch.
- </para>
- <example>
- <title>'section'-Eigenschaft 'rownum'</title>
- <programlisting>
- {section name=customer loop=$custid}
- {$smarty.section.customer.rownum} id: {$custid[customer]}<br>
- {/section}
-
-
- AUSGABE:
-
- 1 id: 1000<br>
- 2 id: 1001<br>
- 3 id: 1002<br>
-</programlisting>
- </example>
- </sect2>
- <sect2 id="section.property.loop">
- <title>loop</title>
- <para>
- 'loop' wird verwendet, um die Nummer letzte Iteration der 'section' auszugeben.
- Dieser Wert kann inner- und ausserhalb der 'section' verwendet werden.
- </para>
- <example>
- <title>'section'-Eigenschaft 'loop'</title>
- <programlisting>
- {section name=customer loop=$custid}
- {$smarty.section.customer.index} id: {$custid[customer]}<br>
- {/section}
-
- Es wurden {$smarty.section.customer.loop} Kunden angezeigt.
-
- AUSGABE:
-
- 0 id: 1000<br>
- 1 id: 1001<br>
- 2 id: 1002<br>
-
- Es wurden 3 Kunden angezeigt.
-</programlisting>
- </example>
- </sect2>
- <sect2 id="section.property.show">
- <title>show</title>
- <para>
- <emphasis>show</emphasis> kann die Werte 'true' oder 'false' haben.
- Falls der Wert 'true' ist, wird die 'section' angezeigt. Falls
- der Wert 'false' ist, wird die 'section' - ausser dem 'sectionelse' - nicht ausgegeben.
- </para>
- <example>
- <title>'section'-Eigenschaft 'show'</title>
- <programlisting>
- {section name=customer loop=$custid show=$show_customer_info}
- {$smarty.section.customer.rownum} id: {$custid[customer]}<br>
- {/section}
-
- {if $smarty.section.customer.show}
- die 'section' wurde angezeigt
- {else}
- die 'section' wurde nicht angezeigt
- {/if}
-
-
- AUSGABE:
-
- 1 id: 1000<br>
- 2 id: 1001<br>
- 3 id: 1002<br>
-
- die 'section' wurde angezeigt
-</programlisting>
- </example>
- </sect2>
- <sect2 id="section.property.total">
- <title>total</title>
- <para>
- Wird verwendet um die Anzahl der durchlaufenen Iterationen einer
- 'section' auszugeben. Kann innerhalb oder ausserhalb der 'section' verwendet
- werden.
- </para>
- <example>
- <title>'section'-Eigenschaft 'total'</title>
- <programlisting>
- {section name=customer loop=$custid step=2}
- {$smarty.section.customer.index} id: {$custid[customer]}<br>
- {/section}
-
- Es wurden {$smarty.section.customer.total} Kunden angezeigt.
-
- OUTPUT:
-
- 0 id: 1000<br>
- 2 id: 1001<br>
- 4 id: 1002<br>
-
- Es wurden 3 Kunden angezeigt.
-</programlisting>
- </example>
- </sect2>
+keine Werte in $custid gefunden
+{/section}
+]]>
+ </programlisting>
+ </example>
+ <para>
+ Die Eigenschaften der 'section' werden in besonderen Variablen
+ abgelegt. Diese sind wie folgt aufgebaut: <link
+ linkend="language.variables.smarty.loops">{$smarty.section.sectionname.varname}</link>
+ </para>
+ <note>
+ <para>
+ Bermerkung: Seit Smarty 1.5.0 hat sich die Syntax der 'section'
+ Eigenschaften von {%sectionname.varname%} zu
+ {$smarty.section.sectionname.varname} geändert. Die alte Syntax
+ wird noch immer unterstützt, die Dokumentation erwähnt jedoch nur
+ noch die neue Schreibweise.
+ </para>
+ </note>
+ <sect2 id="section.property.index">
+ <title>index</title>
+ <para>
+ 'index' wird verwendet, um den aktuellen Schleifen-Index
+ anzuzeigen. Er startet bei 0 (beziehungsweise der definierten
+ Startposition) und inkrementiert in 1-er Schritten (beziehungsweise
+ der definierten Schrittgrösse).
+ </para>
+ <note>
+ <title>Technische Bemerkung</title>
+ <para>
+ Wenn 'step' und 'start' nicht übergeben werden, verhält sich der
+ Wert wie die 'section'-Eigenschaft 'iteration', ausser dass er bei
+ 0 anstatt 1 beginnt.
+ </para>
+ </note>
+ <example>
+ <title>'section'-Eigenschaft 'index'</title>
+ <programlisting>
+<![CDATA[
+{section name=customer loop=$custid}
+{$smarty.section.customer.index} id: {$custid[customer]}<br />
+{/section}
+]]>
+ </programlisting>
+ <para>
+ Ausgabe des obigen Beispiels:
+ </para>
+ <programlisting>
+<![CDATA[
+0 id: 1000<br />
+1 id: 1001<br />
+2 id: 1002<br />
+]]>
+ </programlisting>
+ </example>
+ </sect2>
+ <sect2 id="section.property.index.prev">
+ <title>index_prev</title>
+ <para>
+ 'index_prev' wird verwendet um den vorhergehenden Schleifen-Index
+ auszugeben. Bei der ersten Iteration ist dieser Wert -1.
+ </para>
+ <example>
+ <title>section'-Eigenschaft 'index_prev'</title>
+ <programlisting>
+<![CDATA[
+{section name=customer loop=$custid}
+{$smarty.section.customer.index} id: {$custid[customer]}<br>
+{* zur Information, $custid[customer.index] und $custid[customer] bedeuten das selbe *}
+{if $custid[customer.index_prev] ne $custid[customer.index]}
+ Die Kundennummer hat sich geändert.<br>
+{/if}
+{/section}
+]]>
+ </programlisting>
+ <para>
+ Ausgabe des obigen Beispiels:
+ </para>
+ <programlisting>
+<![CDATA[
+0 id: 1000<br>
+ Die Kundennummer hat sich geändert.<br>
+1 id: 1001<br>
+ Die Kundennummer hat sich geändert.<br>
+2 id: 1002<br>
+ Die Kundennummer hat sich geändert.<br>
+]]>
+ </programlisting>
+ </example>
+ </sect2>
+ <sect2 id="section.property.index.next">
+ <title>index_next</title>
+ <para>
+ 'index_next' wird verwendet um den nächsten 'loop'-Index
+ auszugeben. Bei der letzten Iteration ist dieser Wert um 1 grösser
+ als der aktuelle 'loop'-Index (inklusive dem definierten 'step'
+ Wert).
+ </para>
+ <example>
+ <title>section'-Eigenschaft 'index_next'</title>
+ <programlisting>
+<![CDATA[
+{section name=customer loop=$custid}
+{$smarty.section.customer.index} id: {$custid[customer]}<br>
+{* zur Information, $custid[customer.index] und $custid[customer] bedeuten das selbe *}
+{if $custid[customer.index_next] ne $custid[customer.index]}
+ Die Kundennummer wird sich ändern.<br>
+{/if}
+{/section}
+]]>
+ </programlisting>
+ <para>
+ Ausgabe des obigen Beispiels:
+ </para>
+ <programlisting>
+<![CDATA[
+0 id: 1000<br>
+ Die Kundennummer wird sich ändern.<br>
+1 id: 1001<br>
+ Die Kundennummer wird sich ändern.<br>
+2 id: 1002<br>
+ Die Kundennummer wird sich ändern.<br>
+]]¦
+ </programlisting>
+ </example>
+ </sect2>
+ <sect2 id="section.property.iteration">
+ <title>iteration</title>
+ <para>
+ 'iteration' wird verwendet um die aktuelle Iteration auszugeben.
+ </para>
+ <para>
+ Bemerkung: Die Eigenschaften 'start', 'step' und 'max'
+ beeinflussen 'iteration' nicht, die Eigenschaft 'index' jedoch
+ schon. 'iteration' startet im gegensatz zu 'index' bei 1. 'rownum'
+ ist ein Alias für 'iteration' und arbeitet identisch.
+ </para>
+ <example>
+ <title>'section'-Eigenschaft 'iteration'</title>
+ <programlisting>
+<![CDATA[
+{section name=customer loop=$custid start=5 step=2}
+aktuelle loop iteration: {$smarty.section.customer.iteration}<br>
+{$smarty.section.customer.index} id: {$custid[customer]}<br>
+{* zur Information, $custid[customer.index] und $custid[customer] bedeuten das gleiche *}
+{if $custid[customer.index_next] ne $custid[customer.index]}
+ Die Kundennummer wird sich ändern.<br>
+{/if}
+{/section}
+]]>
+ </programlisting>
+ <para>
+ Ausgabe des obigen Beispiels:
+ </para>
+ <programlisting>
+<![CDATA[
+aktuelle loop iteration: 1
+5 id: 1000<br>
+ Die Kundennummer wird sich ändern.<br>
+aktuelle loop iteration: 2
+7 id: 1001<br>
+ Die Kundennummer wird sich ändern.<br>
+aktuelle loop iteration: 3
+9 id: 1002<br>
+ Die Kundennummer wird sich ändern.<br>
+]]>
+ </programlisting>
+ </example>
+ </sect2>
+ <sect2 id="section.property.first">
+ <title>first</title>
+ <para>
+ 'first' ist 'true', wenn die aktuelle Iteration die erste dieser
+ 'section' ist.
+ </para>
+ <example>
+ <title>'section'-Eigenschaft 'first'</title>
+ <programlisting>
+<![CDATA[
+{section name=customer loop=$custid}
+{if $smarty.section.customer.first}
+ <table>
+{/if}
+
+<tr><td>{$smarty.section.customer.index} id:
+ {$custid[customer]}</td></tr>
+
+{if $smarty.section.customer.last}
+ </table>
+{/if}
+{/section}
+]]>
+ </programlisting>
+ <para>
+ Ausgabe des obigen Beispiels:
+ </para>
+ <programlisting>
+<![CDATA[
+<table>
+<tr><td>0 id: 1000</td></tr>
+<tr><td>1 id: 1001</td></tr>
+<tr><td>2 id: 1002</td></tr>
+</table>
+]]>
+ </programlisting>
+ </example>
+ </sect2>
+ <sect2 id="section.property.last">
+ <title>last</title>
+ <para>
+ 'last' ist 'true' wenn die aktuelle Iteration die letzte dieser
+ 'section' ist.
+ </para>
+ <example>
+ <title>'section'-Eigenschaft 'last'</title>
+ <programlisting>
+<![CDATA[
+{section name=customer loop=$custid}
+{if $smarty.section.customer.first}
+ <table>
+{/if}
+
+<tr><td>{$smarty.section.customer.index} id:
+ {$custid[customer]}</td></tr>
+
+{if $smarty.section.customer.last}
+ </table>
+{/if}
+{/section}
+]]>
+ </programlisting>
+ <para>
+ Ausgabe des obigen Beispiels:
+ </para>
+ <programlisting>
+<![CDATA[
+<table>
+<tr><td>0 id: 1000</td></tr>
+<tr><td>1 id: 1001</td></tr>
+<tr><td>2 id: 1002</td></tr>
+</table>
+]]>
+ </programlisting>
+ </example>
+ </sect2>
+ <sect2 id="section.property.rownum">
+ <title>rownum</title>
+ <para>
+ 'rownum' wird verwendet um die aktuelle Iteration (startend bei 1)
+ auszugeben. 'rownum' ist ein Alias für 'iteration' und arbeitet
+ identisch.
+ </para>
+ <example>
+ <title>'section'-Eigenschaft 'rownum'</title>
+ <programlisting>
+<![CDATA[
+{section name=customer loop=$custid}
+{$smarty.section.customer.rownum} id: {$custid[customer]}<br />
+{/section}
+ </programlisting>
+ <para>
+ Ausgabe des obigen Beispiels:
+ </para>
+ <programlisting>
+<![CDATA[
+1 id: 1000<br />
+2 id: 1001<br />
+3 id: 1002<br />
+]]>
+ </programlisting>
+ </example>
+ </sect2>
+ <sect2 id="section.property.loop">
+ <title>loop</title>
+ <para>
+ 'loop' wird verwendet, um die Nummer letzte Iteration der 'section'
+ auszugeben. Dieser Wert kann inner- und ausserhalb der 'section'
+ verwendet werden.
+ </para>
+ <example>
+ <title>'section'-Eigenschaft 'loop'</title>
+ <programlisting>
+<![CDATA[
+{section name=customer loop=$custid}
+{$smarty.section.customer.index} id: {$custid[customer]}<br />
+{/section}
+
+Es wurden {$smarty.section.customer.loop} Kunden angezeigt.
+]]>
+ </programlisting>
+ <para>
+ Ausgabe des obigen Beispiels:
+ </para>
+ <programlisting>
+<![CDATA[
+0 id: 1000<br />
+1 id: 1001<br />
+2 id: 1002<br />
+
+Es wurden 3 Kunden angezeigt.
+]]>
+ </programlisting>
+ </example>
+ </sect2>
+ <sect2 id="section.property.show">
+ <title>show</title>
+ <para>
+ <emphasis>show</emphasis> kann die Werte 'true' oder 'false' haben.
+ Falls der Wert 'true' ist, wird die 'section' angezeigt. Falls der
+ Wert 'false' ist, wird die 'section' - ausser dem 'sectionelse' -
+ nicht ausgegeben.
+ </para>
+ <example>
+ <title>'section'-Eigenschaft 'show'</title>
+ <programlisting>
+<![CDATA[
+{section name=customer loop=$custid show=$show_customer_info}
+{$smarty.section.customer.rownum} id: {$custid[customer]}<br />
+{/section}
+
+{if $smarty.section.customer.show}
+die 'section' wurde angezeigt
+{else}
+die 'section' wurde nicht angezeigt
+{/if}
+]]>
+ </programlisting>
+ <para>
+ Ausgabe des obigen Beispiels:
+ </para>
+ <programlisting>
+<![CDATA[
+1 id: 1000<br />
+2 id: 1001<br />
+3 id: 1002<br />
+
+die 'section' wurde angezeigt
+]]>
+ </programlisting>
+ </example>
+ </sect2>
+ <sect2 id="section.property.total">
+ <title>total</title>
+ <para>
+ Wird verwendet um die Anzahl der durchlaufenen Iterationen einer
+ 'section' auszugeben. Kann innerhalb oder ausserhalb der 'section'
+ verwendet werden.
+ </para>
+ <example>
+ <title>'section'-Eigenschaft 'total'</title>
+ <programlisting>
+<![CDATA[
+{section name=customer loop=$custid step=2}
+{$smarty.section.customer.index} id: {$custid[customer]}<br>
+{/section}
+
+Es wurden {$smarty.section.customer.total} Kunden angezeigt.
+]]>
+ </programlisting>
+ <para>
+ Ausgabe des obigen Beispiels:
+ </para>
+ <programlisting>
+<![CDATA[
+0 id: 1000<br>
+2 id: 1001<br>
+4 id: 1002<br>
+
+Es wurden 3 Kunden angezeigt.
+]]>
+ </programlisting>
+ </example>
+ </sect2>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
http://cvs.php.net/diff.php/smarty/docs/de/designers/language-builtin-functions/language-function-strip.xml?r1=1.2&r2=1.3&ty=u
Index: smarty/docs/de/designers/language-builtin-functions/language-function-strip.xml
diff -u smarty/docs/de/designers/language-builtin-functions/language-function-strip.xml:1.2 smarty/docs/de/designers/language-builtin-functions/language-function-strip.xml:1.3
--- smarty/docs/de/designers/language-builtin-functions/language-function-strip.xml:1.2 Fri Jul 16 10:32:28 2004
+++ smarty/docs/de/designers/language-builtin-functions/language-function-strip.xml Fri Jun 24 05:02:38 2005
@@ -1,56 +1,67 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.2 $ -->
-<!-- EN-Revision: 1.2 Maintainer: andreas Status: ready -->
- <sect1 id="language.function.strip">
- <title>strip</title>
- <para>
- Webdesigner haben oft das Problem, dass Leerzeichen und Zeilenumbrüche
- die Ausgabe des erzeugten HTML im Browser beeinflussen. Oft werden deshalb alle
- Tags aufeinanderfolgend im Template notiert, was aber zu einer schlechten
- Lesbarkeit führt.
- </para>
- <para>
- Aus dem Inhalt zwischen den {strip}{/strip}-Tags werden alle Leerzeichen und
- Zeilenumbrüche entfernt. So können Sie Ihre Templates lesbar
- halten, ohne sich Sorgen um die Leerzeichen zu machen.
- </para>
- <note>
- <title>Technische Bemerkung</title>
- <para>
- {strip}{/strip} ändert nicht den Inhalt einer Template-Variablen.
- Dafür gibt es den <link linkend="language.modifier.strip">strip Modifikator</link>.
- </para>
- </note>
-<example>
-<title>strip tags</title>
-<programlisting>
+<!-- $Revision: 1.3 $ -->
+<!-- EN-Revision: 1.6 Maintainer: andreas Status: ready -->
+<sect1 id="language.function.strip">
+ <title>strip</title>
+ <para>
+ Webdesigner haben oft das Problem, dass Leerzeichen und
+ Zeilenumbrüche die Ausgabe des erzeugten HTML im Browser
+ beeinflussen. Oft werden deshalb alle Tags aufeinanderfolgend im
+ Template notiert, was aber zu einer schlechten Lesbarkeit führt.
+ </para>
+ <para>
+ Aus dem Inhalt zwischen den {strip}{/strip}-Tags werden alle
+ Leerzeichen und Zeilenumbrüche entfernt. So können Sie Ihre
+ Templates lesbar halten, ohne sich Sorgen um die Leerzeichen zu
+ machen.
+ </para>
+ <note>
+ <title>Technische Bemerkung</title>
+ <para>
+ {strip}{/strip} ändert nicht den Inhalt einer Template-Variablen.
+ Dafür gibt es den <link linkend="language.modifier.strip">strip
+ Modifikator</link>.
+ </para>
+ </note>
+ <example>
+ <title>strip tags</title>
+ <programlisting>
<![CDATA[
{* der folgende Inhalt wird in einer Zeile ausgegeben *}
{strip}
<table border=0>
- <tr>
- <td>
- <A HREF="{$url}">
- <font color="red">Das ist ein Test.</font>
- </A>
- </td>
- </tr>
+ <tr>
+ <td>
+ <a HREF="{$url}">
+ <font color="red">Das ist ein Test.</font>
+ </a>
+ </td>
+ </tr>
</table>
{/strip}
-
-
-AUSGABE:
-
-<table border=0><tr><td><A HREF="http://my.domain.com"><font color="red">Das ist ein Test.</font></A></td></tr></table></programlisting>
]]>
-</programlisting>
-</example>
- <para>
- Achtung: im obigen Beispiel beginnen und enden alle Zeilen mit HTML-Tags.
- Falls Sie Abschnitte haben, die nur Text enthalten, werden diese ebenfalls
- zusammengeschlossen. Das kann zu unerwünschten Resultaten führen.
- </para>
+ </programlisting>
+ <para>
+ Ausgebe des obigen Beispiels:
+ </para>
+ <screen>
+<![CDATA[
+<table border=0><tr><td><A HREF="http://my.domain.com"><font color="red">Das ist ein Test.</font></A></td></tr></table>
+]]>
+ </screen>
+ </example>
+ <para>
+ Achtung: im obigen Beispiel beginnen und enden alle Zeilen mit
+ HTML-Tags. Falls Sie Abschnitte haben, die nur Text enthalten,
+ werden diese ebenfalls zusammengeschlossen. Das kann zu
+ unerwünschten Resultaten führen.
+ </para>
+ <para>
+ Siehe auch <link linkend="language.modifier.strip">strip-Modifikator
+ (Zeichenkette strippen)</link>
+ </para>
</sect1>
+
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml