mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-06 11:24:27 +02:00
sync with en
This commit is contained in:
@@ -1,85 +1,94 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.2 Maintainer: andreas Status: ready -->
|
||||
<sect1 id="language.function.capture">
|
||||
<title>capture (Ausgabe abfangen)</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>Benötigt</entry>
|
||||
<entry>Standardwert</entry>
|
||||
<entry>Beschreibung</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>name</entry>
|
||||
<entry>string</entry>
|
||||
<entry>no</entry>
|
||||
<entry><emphasis>default</emphasis></entry>
|
||||
<entry>Der Name des abgefangenen Blocks</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>assign</entry>
|
||||
<entry>string</entry>
|
||||
<entry>No</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Der Name der Variable welcher der Wert zugewiesen werden soll.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<para>
|
||||
'capture' wird verwendet, um die Template-Ausgabe abzufangen und in einer
|
||||
Variable zu speichern. Der Inhalt zwischen {capture name="foo"} und {/capture}
|
||||
wird unter der im 'name' Attribut angegebenen Variable abgelegt und kann über
|
||||
'$smarty.capture.foo' angesprochen werden. Falls kein 'name'-Attribut
|
||||
übergeben wurde, wird der Inhalt in 'default' abgelegt.
|
||||
Jede {capture} Sektion muss mit {/capture} beendet werden.
|
||||
'capture'-Blöcke können verschachtelt sein.
|
||||
</para>
|
||||
<note>
|
||||
<title>Technische Bemerkung</title>
|
||||
<para>
|
||||
Smarty 1.4.0 - 1.4.4 speicherte den abgefangenen Inhalt in der
|
||||
Variable '$return'. Seit 1.4.5 wird das 'name'-Attribut verwenden.
|
||||
Bitte passen Sie Ihre Templates entsprechend an.
|
||||
</para>
|
||||
</note>
|
||||
<caution>
|
||||
<para>
|
||||
Seien Sie vorsichtig, wenn sie die Ausgabe von <command>insert</command>
|
||||
abfangen wollen. Sie sollten die Ausgabe nicht abfangen, wenn Caching
|
||||
eingeschaltet ist und Sie einen <command>insert</command>
|
||||
Befehl verwenden, um Ausgaben vom Caching auszuschliessen.
|
||||
</para>
|
||||
</caution>
|
||||
<para>
|
||||
<example>
|
||||
<title>Template-Inhalte abfangen</title>
|
||||
<programlisting>
|
||||
<!-- EN-Revision: 1.8 Maintainer: andreas Status: ready -->
|
||||
<sect1 id="language.function.capture">
|
||||
<title>capture (Ausgabe abfangen)</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>Ben<EFBFBD>tigt</entry>
|
||||
<entry>Standardwert</entry>
|
||||
<entry>Beschreibung</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>name</entry>
|
||||
<entry>string</entry>
|
||||
<entry>no</entry>
|
||||
<entry><emphasis>default</emphasis></entry>
|
||||
<entry>Der Name des abgefangenen Blocks</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>assign</entry>
|
||||
<entry>string</entry>
|
||||
<entry>No</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Der Name der Variable welcher der Wert zugewiesen werden soll.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<para>
|
||||
'capture' wird verwendet, um die Template-Ausgabe abzufangen und in
|
||||
einer Variable zu speichern. Der Inhalt zwischen {capture
|
||||
name="foo"} und {/capture} wird unter der im 'name' Attribut
|
||||
angegebenen Capture-Variablen abgelegt und kann <20>ber <link
|
||||
linkend="language.variables.smarty.capture">$smarty.capture.foo</link>
|
||||
angesprochen werden. Falls kein 'name'-Attribut <20>bergeben wurde,
|
||||
wird der Inhalt in 'default' (also $smarty.capture.default)
|
||||
abgelegt. Jede {capture} Sektion muss mit {/capture} beendet
|
||||
werden. 'capture'-Bl<42>cke k<>nnen verschachtelt sein.
|
||||
</para>
|
||||
<note>
|
||||
<title>Technische Bemerkung</title>
|
||||
<para>
|
||||
Smarty 1.4.0 - 1.4.4 speicherte den abgefangenen Inhalt in der
|
||||
Variable '$return'. Seit 1.4.5 wird das 'name'-Attribut verwenden.
|
||||
Bitte passen Sie Ihre Templates entsprechend an.
|
||||
</para>
|
||||
</note>
|
||||
<caution>
|
||||
<para>
|
||||
Seien Sie vorsichtig, wenn sie die Ausgabe von <link
|
||||
linkend="language.function.insert">{insert}</link> abfangen
|
||||
wollen. Sie sollten die Ausgabe nicht abfangen, wenn Caching
|
||||
eingeschaltet ist und Sie einen <link
|
||||
linkend="language.function.insert">{insert}</link> Befehl
|
||||
verwenden, um Ausgaben vom Caching auszuschliessen.
|
||||
</para>
|
||||
</caution>
|
||||
<para>
|
||||
<example>
|
||||
<title>Template-Inhalte abfangen</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
|
||||
{* Tabellenzeile nur ausgeben, wenn Inhalt vorhanden *}
|
||||
{capture name=banner}
|
||||
{include file="get_banner.tpl"}
|
||||
{/capture}
|
||||
{if $smarty.capture.banner ne ""}
|
||||
<tr>
|
||||
<td>
|
||||
{$smarty.capture.banner}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
{$smarty.capture.banner}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{/if}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
|
@@ -1,124 +1,158 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.4 Maintainer: andreas Status: ready -->
|
||||
<sect1 id="language.function.config.load">
|
||||
<title>config_load (Konfiguration laden)</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>file</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Ja</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Definiert den Namen der einzubindenden Datei.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>section</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Definiert den Namen des zu ladenden Abschnitts.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>scope</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>local</emphasis></entry>
|
||||
<entry>
|
||||
Definiert den Geltungsbereich der zu ladenden Variablen.
|
||||
Erlaubte Werte sind 'local','parent' und 'global'. 'local' bedeutet,
|
||||
dass die Variablen in den Context des lokalen Template geladen werden.
|
||||
'parent' bedeutet, dass die Variablen sowohl in den lokalen Context,
|
||||
als auch in den Context des aufrufenden Templates eingebunden werden.
|
||||
'global' bedeutet, dass die Variablen von allen Templates zugänglich sind.
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>global</entry>
|
||||
<entry>boolean</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>No</emphasis></entry>
|
||||
<entry>
|
||||
DEPRECATED:
|
||||
Definiert, ob die Variablen von allen Templates aus zugänglich sind.
|
||||
Dieses Attribut wird von 'scope' abgelöst und sollte nicht mehr
|
||||
verwendet werden. Falls 'scope' übergeben wurde, wird 'global' ignoriert.
|
||||
</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<para>
|
||||
Diese Funktion wird verwendet, um Variablen aus einer Konfigurationsdatei
|
||||
in das Template zu laden. Sehen sie <link linkend="config.files">Config Files (Konfigurationsdateien)</link>
|
||||
für weitere Informationen.
|
||||
</para>
|
||||
<example>
|
||||
<title>Funktion config_load</title>
|
||||
<sect1 id="language.function.config.load">
|
||||
<title>config_load (Konfiguration laden)</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>file</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Ja</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Definiert den Namen der einzubindenden Datei.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>section</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Definiert den Namen des zu ladenden Abschnitts.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>scope</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>local</emphasis></entry>
|
||||
<entry>
|
||||
Definiert den Geltungsbereich der zu ladenden Variablen.
|
||||
Erlaubte Werte sind 'local','parent' und 'global'. 'local'
|
||||
bedeutet, dass die Variablen in den Context des lokalen Template
|
||||
geladen werden. 'parent' bedeutet, dass die Variablen sowohl in
|
||||
den lokalen Context, als auch in den Context des aufrufenden
|
||||
Templates eingebunden werden. 'global' bedeutet, dass die
|
||||
Variablen von allen Templates zug<75>nglich sind.
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>global</entry>
|
||||
<entry>boolean</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>No</emphasis></entry>
|
||||
<entry>
|
||||
Definiert, ob die Variablen von allen Templates aus zug<EFBFBD>nglich
|
||||
sind. WICHTIG: Dieses Attribut wird von 'scope' abgel<EFBFBD>st und
|
||||
sollte nicht mehr verwendet werden. Falls 'scope' <EFBFBD>bergeben
|
||||
wurde, wird 'global' ignoriert.
|
||||
</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<para>
|
||||
Diese Funktion wird verwendet, um <link
|
||||
linkend="language.config.variables">Variablen aus einer
|
||||
Konfigurationsdatei</link> in das Template zu laden. Sehen sie
|
||||
<link linkend="config.files">Config Files
|
||||
(Konfigurationsdateien)</link> f<>r weitere Informationen.
|
||||
</para>
|
||||
<example>
|
||||
<title>Funktion config_load</title>
|
||||
<para>
|
||||
beispiel.conf
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
#Dies ist ein Konfigurationsdateikommentar
|
||||
|
||||
<programlisting>
|
||||
# globale Variablen
|
||||
seitenTitel = "Hauptmen<65>"
|
||||
bodyHintergrundFarbe = #000000
|
||||
tabelleHintergrundFarbe = #000000
|
||||
reiheHintergrundFarbe = #00ff00
|
||||
|
||||
# Kundenvariablen
|
||||
[Kunden]
|
||||
seitenTitel = "Kundeninfo"
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>and the template</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{config_load file="farben.conf"}
|
||||
{config_load file="example.conf"}
|
||||
|
||||
<html>
|
||||
<title>{#seitenTitel#}</title>
|
||||
<body bgcolor="{#bodyHintergrundFarbe#}">
|
||||
<table border="{#tabelleRahmenBreite#}" bgcolor="{#tabelleHintergrundFarbe#}">
|
||||
<tr bgcolor="{#reiheHintergrundFarbe#}">
|
||||
<td>Vornamen</td>
|
||||
<td>Nachnamen</td>
|
||||
<td>Adresse</td>
|
||||
</tr>
|
||||
<tr bgcolor="{#reiheHintergrundFarbe#}">
|
||||
<td>Vornamen</td>
|
||||
<td>Nachnamen</td>
|
||||
<td>Adresse</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Konfigurationsdateien können Abschnitte enthalten. Um Variablen
|
||||
aus einem Abschnitt zu laden, können Sie das Attribut
|
||||
<emphasis>section</emphasis> übergeben.
|
||||
</para>
|
||||
<para>
|
||||
Bemerkung: <emphasis>Konfigurationdatei-Abschnitte (sections)</emphasis> und die
|
||||
eingebaute Template Funktion namens <emphasis>section</emphasis> haben ausser dem
|
||||
Namen nichts gemeinsam.
|
||||
</para>
|
||||
<example>
|
||||
<title>Funktion config_load mit Abschnitten</title>
|
||||
<programlisting>
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
<link linkend="config.files">Konfigurationsdateien</link> k<>nnen
|
||||
Abschnitte enthalten. Um Variablen aus einem Abschnitt zu laden,
|
||||
k<EFBFBD>nnen Sie das Attribut <emphasis>section</emphasis> <EFBFBD>bergeben.
|
||||
</para>
|
||||
<para>
|
||||
Bemerkung: <emphasis>Konfigurationdatei-Abschnitte
|
||||
(sections)</emphasis> und die eingebaute Template Funktion namens
|
||||
<link linkend="language.function.section">section</link> haben ausser
|
||||
dem Namen nichts gemeinsam.
|
||||
</para>
|
||||
|
||||
<example>
|
||||
<title>Funktion config_load mit Abschnitten</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{config_load file="farben.conf" section="Kunde"}
|
||||
{config_load file="beispiel.conf" section="Kunde"}
|
||||
<html>
|
||||
<title>{#seitenTitel#}</title>
|
||||
<body bgcolor="{#bodyHintergrundFarbe#}">
|
||||
<table border="{#tabelleRahmenBreite#}" bgcolor="{#tabelleHintergrundFarbe#}">
|
||||
<tr bgcolor="{#reiheHintergrundFarbe#}">
|
||||
<td>Vornamen</td>
|
||||
<td>Nachnamen</td>
|
||||
<td>Adresse</td>
|
||||
</tr>
|
||||
<tr bgcolor="{#reiheHintergrundFarbe#}">
|
||||
<td>Vornamen</td>
|
||||
<td>Nachnamen</td>
|
||||
<td>Adresse</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<para>
|
||||
Siehe auch <link
|
||||
linkend="config.files">Konfigurationsdateien</link>, <link
|
||||
linkend="language.config.variables">Variablen aus
|
||||
Konfigurationsdateien</link>, <link
|
||||
linkend="variable.config.dir">$config_dir</link>, <link
|
||||
linkend="api.get.config.vars">get_config_vars()</link> und <link
|
||||
linkend="api.config.load">config_load()</link>.
|
||||
</para>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
|
@@ -1,161 +1,218 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.1 Maintainer: andreas Status: ready -->
|
||||
<sect1 id="language.function.foreach">
|
||||
<title>foreach, foreachelse</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>from</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Ja</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Name des zu durchlaufenden Array.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>item</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Ja</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Name für das aktuelle Element.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>key</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Name für den aktuellen Schlüssel.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>name</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Name der 'foreach'-Schleife, für die Abfrage der 'foreach'-Eigenschaften.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<para>
|
||||
Die <emphasis>foreach</emphasis> Schleife ist eine Alternative zu <emphasis>section</emphasis>.
|
||||
<emphasis>foreach</emphasis> wird verwendet, um ein assoziatives Array
|
||||
zu durchlaufen. Die Syntax von <emphasis>foreach</emphasis>-Schleifen ist viel einfacher als
|
||||
die von <emphasis>section</emphasis>. <emphasis>foreach</emphasis> tags müssen mit <emphasis>/foreach</emphasis>
|
||||
tags kombiniert werden. Erforderliche Parameter sind: <emphasis>from</emphasis> und
|
||||
<emphasis>item</emphasis>. Der Name der 'foreach'-Schleife kann frei vergeben werden
|
||||
und sowohl Buchstaben, Zahlen als auch Unterstriche enthalten.
|
||||
<emphasis>foreach</emphasis>-Schleifen können verschachtelt werden, dabei ist
|
||||
zu beachten, dass sich die definierten Namen voneinander unterscheiden.
|
||||
Die <emphasis>from</emphasis> Variable (normalerweise
|
||||
ein assoziatives Array) definiert die Anzahl der von <emphasis>foreach</emphasis>
|
||||
zu durchlaufenen Iterationen. <emphasis>foreachelse</emphasis> wird ausgeführt wenn
|
||||
keine Werte in der <emphasis>from</emphasis> Variable übergeben wurden.
|
||||
</para>
|
||||
<example>
|
||||
<title>foreach</title>
|
||||
<programlisting>
|
||||
|
||||
|
||||
<!-- EN-Revision: 1.7 Maintainer: andreas Status: ready -->
|
||||
<sect1 id="language.function.foreach">
|
||||
<title>{foreach}, {foreachelse}</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>from</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Ja</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Name des zu durchlaufenden Array.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>item</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Ja</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Name f<EFBFBD>r das aktuelle Element.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>key</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Name f<EFBFBD>r den aktuellen Schl<EFBFBD>ssel.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>name</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Name der 'foreach'-Schleife, f<EFBFBD>r die Abfrage der 'foreach'-Eigenschaften.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<para>
|
||||
|
||||
Die <emphasis>foreach</emphasis> Schleife ist eine Alternative zu
|
||||
<link
|
||||
linkend="language.function.section"><emphasis>section</emphasis></link>.
|
||||
<emphasis>foreach</emphasis> wird verwendet, um ein assoziatives
|
||||
Array zu durchlaufen. Die Syntax von
|
||||
<emphasis>foreach</emphasis>-Schleifen ist viel einfacher als die
|
||||
von <emphasis>section</emphasis>. <emphasis>{foreach}</emphasis>
|
||||
Tags m<>ssen mit <emphasis>{/foreach}</emphasis> tags kombiniert
|
||||
werden. Erforderliche Parameter sind: <emphasis>from</emphasis> und
|
||||
<emphasis>item</emphasis>. Der Name der {foreach}-Schleife kann
|
||||
frei vergeben werden und sowohl Buchstaben, Zahlen als auch
|
||||
Unterstriche enthalten. <emphasis>foreach</emphasis>-Schleifen
|
||||
k<>nnen verschachtelt werden, dabei ist zu beachten, dass sich die
|
||||
definierten Namen voneinander unterscheiden. Die
|
||||
<emphasis>from</emphasis> Variable (normalerweise ein assoziatives
|
||||
Array) definiert die Anzahl der von <emphasis>foreach</emphasis> zu
|
||||
durchlaufenen Iterationen. <emphasis>foreachelse</emphasis> wird
|
||||
ausgef<65>hrt wenn keine Werte in der <emphasis>from</emphasis>
|
||||
Variable <20>bergeben wurden.
|
||||
</para>
|
||||
<example>
|
||||
<title>{foreach} - item</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$arr = array( 1001,1002,1003);
|
||||
$smarty->assign('custid', $arr);
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
<?php
|
||||
{* dieses Beispiel gibt alle Werte aus dem $KundenId Array aus *}
|
||||
{foreach from=$KundenId item=aktuelle_id}
|
||||
id: {$aktuelle_id}<br>
|
||||
id: {$aktuelle_id}<br>
|
||||
{/foreach}
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
Das obige Beispiel erzeugt folgende Ausgabe:
|
||||
</para>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
id: 1000<br>
|
||||
id: 1001<br>
|
||||
id: 1002<br>
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
|
||||
AUSGABE:
|
||||
|
||||
id: 1000<br>
|
||||
id: 1001<br>
|
||||
id: 1002<br></programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>foreach key</title>
|
||||
<programlisting>
|
||||
{* Der Schlüssel enthält den Schlüssel des jeweils iterierten Wertes
|
||||
|
||||
die Zuweisung sieht wie folgt aus:
|
||||
|
||||
$smarty->assign("kontakte", array(array("phone" => "1", "fax" => "2", "cell" => "3"),
|
||||
array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234")));
|
||||
|
||||
*}
|
||||
|
||||
<example>
|
||||
<title>{foreach} - item und key</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
// Der Schl<68>ssel enth<74>lt den Schl<68>ssel des jeweils iterierten Wertes
|
||||
// die Zuweisung sieht wie folgt aus:
|
||||
<?php
|
||||
$smarty->assign('kontakte', array(
|
||||
array('phone' => '1',
|
||||
'fax' => '2',
|
||||
'cell' => '3'),
|
||||
array('phone' => '555-4444',
|
||||
'fax' => '555-3333',
|
||||
'cell' => '760-1234')
|
||||
));
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{foreach name=aussen item=kontakt from=$kontakte}
|
||||
<hr />
|
||||
{foreach key=schluessel item=wert from=$kontakt}
|
||||
{$schluessel}: {$wert}<br>
|
||||
{$schluessel}: {$wert}<br>
|
||||
{/foreach}
|
||||
{/foreach}
|
||||
</programlisting>
|
||||
<para>
|
||||
Das obige Beispiel erzeugt folgende Ausgabe:
|
||||
</para>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
<hr />
|
||||
phone: 1<br>
|
||||
fax: 2<br>
|
||||
cell: 3<br>
|
||||
<hr />
|
||||
phone: 555-4444<br>
|
||||
fax: 555-3333<br>
|
||||
cell: 760-1234<br>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
AUSGABE:
|
||||
<example>
|
||||
<title>{foreach} - Beispiel mit Datenbankzugriff (z.B. PEAR oder ADODB)</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$sql = 'SELECT contact_id, name, nick FROM contacts ORDER BY contact';
|
||||
$smarty->assign('kontakte', $db->getAssoc($sql));
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{foreach key=cid item=con from=$kontakte}
|
||||
<a href="kontact.php?contact_id={$cid}">{$con.name} - {$con.nick}</a><br />
|
||||
{/foreach}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
phone: 1<br>
|
||||
fax: 2<br>
|
||||
cell: 3<br>
|
||||
phone: 555-4444<br>
|
||||
fax: 555-3333<br>
|
||||
cell: 760-1234<br></programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Foreach-Loops haben auch eigene Variablen welche die Foreach
|
||||
Eigenschaften enthalten. Diese werden wie folgt ausgewiesen:
|
||||
{$smarty.foreach.foreachname.varname}. foreachname ist der Name der
|
||||
als <emphasis>name</emphasis> Attribut von Foreach <20>bergeben wurden.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Foreach-Loops haben auch eigene Variablen welche die Foreach Eigenschaften enthalten.
|
||||
Diese werden wie folgt ausgewiesen: {$smarty.foreach.foreachname.varname}. foreachname
|
||||
ist der Name der als <emphasis>name</emphasis> Attribut von Foreach übergeben wurden.
|
||||
</para>
|
||||
<sect2 id="foreach.property.iteration">
|
||||
<title>iteration</title>
|
||||
<para>
|
||||
gibt die aktuelle iteration aus
|
||||
</para>
|
||||
<para>
|
||||
iteration beginnt immer mit 1 und wird danach bei jedem durchgang um 1 inkrementiert.
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2 id="foreach.property.iteration">
|
||||
<title>iteration</title>
|
||||
<para>
|
||||
gibt die aktuelle iteration aus
|
||||
</para>
|
||||
<para>
|
||||
iteration beginnt immer mit 1 und wird danach bei jedem durchgang um 1 inkrementiert.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="foreach.property.first">
|
||||
<title>first</title>
|
||||
<para>
|
||||
<emphasis>first</emphasis> ist TRUE wenn die aktuelle Iteration die erste ist
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2 id="foreach.property.first">
|
||||
<title>first</title>
|
||||
<para>
|
||||
<emphasis>first</emphasis> ist TRUE wenn die aktuelle Iteration die erste ist
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2 id="foreach.property.last">
|
||||
<title>last</title>
|
||||
<para>
|
||||
<emphasis>last</emphasis> ist TRUE wenn die aktuelle Iteration die letzte ist
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="foreach.property.last">
|
||||
<title>last</title>
|
||||
<para>
|
||||
<emphasis>last</emphasis> ist TRUE wenn die aktuelle Iteration die letzte ist
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="foreach.property.show">
|
||||
<title>show</title>
|
||||
<para>
|
||||
<emphasis>show</emphasis> wird als Parameter von foreach verwedet und ist ein boolscher Wert, TRUE oder FALSE. Auf FALSE wird
|
||||
nichts ausgegeben und wenn foreachelse gefunden wird, dieser angezeigt.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
<sect2 id="foreach.property.total">
|
||||
<title>total</title>
|
||||
<para>
|
||||
<emphasis>total</emphasis> gibt die Anzahl Iterationen des Foreach Loops aus und kann in- oder nach- Foreach Blöcken verwendet werden.
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2 id="foreach.property.show">
|
||||
<title>show</title>
|
||||
<para>
|
||||
<emphasis>show</emphasis> wird als Parameter von foreach verwedet
|
||||
und ist ein boolscher Wert, TRUE oder FALSE. Auf FALSE wird nichts
|
||||
ausgegeben und wenn foreachelse gefunden wird, dieser angezeigt.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="foreach.property.total">
|
||||
<title>total</title>
|
||||
<para>
|
||||
<emphasis>total</emphasis> gibt die Anzahl Iterationen des Foreach
|
||||
Loops aus und kann in- oder nach- Foreach Bl<42>cken verwendet werden.
|
||||
</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
|
@@ -1,22 +1,146 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.1 Maintainer: andreas Status: ready -->
|
||||
<sect1 id="language.function.if">
|
||||
<title>if,elseif,else</title>
|
||||
<para>
|
||||
'if'-Statements in Smarty erlauben die selbe Flexibilität
|
||||
wie in PHP, bis auf ein paar Erweiterungen für die Template-Engine.
|
||||
Jedes <emphasis>if</emphasis> muss mit einem <emphasis>/if</emphasis>
|
||||
kombiniert sein. <emphasis>else</emphasis> und <emphasis>elseif</emphasis>
|
||||
sind ebenfalls erlaubt. "eq", "ne","neq","gt", "lt", "lte", "le", "gte" "ge",
|
||||
"is even","is odd", "is noteven","is not odd","not","mod","div by","even by",
|
||||
"odd by","==","!=",">", "<","<=",">=" sind alles erlaubte Bedingungen,
|
||||
und müssen von umgebenden Elementen mit Leerzeichen abgetrennt werden.
|
||||
</para>
|
||||
<example>
|
||||
<title>if Anweisung</title>
|
||||
<programlisting>
|
||||
|
||||
<sect1 id="language.function.if">
|
||||
<title>if,elseif,else</title>
|
||||
<para>
|
||||
<emphasis>{if}</emphasis>-Statements in Smarty erlauben die selbe
|
||||
Flexibilit<69>t wie in PHP, bis auf ein paar Erweiterungen f<EFBFBD>r die
|
||||
Template-Engine. Jedes <emphasis>{if}</emphasis> muss mit einem
|
||||
<emphasis>{/if}</emphasis> kombiniert
|
||||
sein. <emphasis>{else}</emphasis> und <emphasis>{elseif}</emphasis>
|
||||
sind ebenfalls erlaubt. Alle PHP Vergleichsoperatoren, wie
|
||||
<emphasis>||</emphasis>, <emphasis>or</emphasis>,
|
||||
<emphasis>&&</emphasis>, <emphasis>and</emphasis>, etc. sind
|
||||
erlaubt.
|
||||
</para>
|
||||
<para>
|
||||
Hier eine Liste der erlaubten Operatoren. Bedingungsoperatoren
|
||||
m<>ssen von umgebenden Elementen mit Leerzeichen abgetrennt werden.
|
||||
PHP-<2D>quivalente sind, sofern vorhanden, angeben.
|
||||
</para>
|
||||
<informaltable frame="all">
|
||||
<tgroup cols="5">
|
||||
<colspec colname="Operator" align="center" />
|
||||
<colspec colname="Alternativen" align="center" />
|
||||
<colspec colname="Syntax Beispiel" />
|
||||
<colspec colname="Bedeutung" />
|
||||
<colspec colname="PHP <20>quivalent" />
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Operator</entry>
|
||||
<entry>Alternativen</entry>
|
||||
<entry>Syntax Beispiel</entry>
|
||||
<entry>Bedeutung</entry>
|
||||
<entry>PHP <20>quivalent</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>==</entry>
|
||||
<entry>eq</entry>
|
||||
<entry>$a eq $b</entry>
|
||||
<entry>ist gleich</entry>
|
||||
<entry>==</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>!=</entry>
|
||||
<entry>ne, neq</entry>
|
||||
<entry>$a neq $b</entry>
|
||||
<entry>ist ungleich</entry>
|
||||
<entry>!=</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>></entry>
|
||||
<entry>gt</entry>
|
||||
<entry>$a gt $b</entry>
|
||||
<entry>gr<EFBFBD><EFBFBD>er als</entry>
|
||||
<entry>></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><</entry>
|
||||
<entry>lt</entry>
|
||||
<entry>$a lt $b</entry>
|
||||
<entry>kleiner als</entry>
|
||||
<entry><</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>>=</entry>
|
||||
<entry>gte, ge</entry>
|
||||
<entry>$a ge $b</entry>
|
||||
<entry>gr<EFBFBD><EFBFBD>er oder gleich</entry>
|
||||
<entry>>=</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><=</entry>
|
||||
<entry>lte, le</entry>
|
||||
<entry>$a le $b</entry>
|
||||
<entry>kleiner oder gleich</entry>
|
||||
<entry><=</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>===</entry>
|
||||
<entry></entry>
|
||||
<entry>$a === 0</entry>
|
||||
<entry>identisch</entry>
|
||||
<entry>===</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>!</entry>
|
||||
<entry>not</entry>
|
||||
<entry>not $a</entry>
|
||||
<entry>Negation</entry>
|
||||
<entry>!</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>%</entry>
|
||||
<entry>mod</entry>
|
||||
<entry>$a mod $b</entry>
|
||||
<entry>Modulo</entry>
|
||||
<entry>%</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>is [not] div by</entry>
|
||||
<entry></entry>
|
||||
<entry>$a is not div by 4</entry>
|
||||
<entry>Ist [nicht] teilbar durch</entry>
|
||||
<entry>$a % $b == 0</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>is [not] even</entry>
|
||||
<entry></entry>
|
||||
<entry>$a is not even</entry>
|
||||
<entry>ist [k]eine gerade Zahl</entry>
|
||||
<entry>$a % 2 == 0</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>is [not] even by</entry>
|
||||
<entry></entry>
|
||||
<entry>$a is [not] even by $b</entry>
|
||||
<entry>[k]eine gerade Gruppierung</entry>
|
||||
<entry>($a / $b) % 2 == 0</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>is [not] odd</entry>
|
||||
<entry></entry>
|
||||
<entry>$a is not odd</entry>
|
||||
<entry>ist [k]eine ungerade Zahl</entry>
|
||||
<entry>$a % 2 != 0</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>is [not] odd by</entry>
|
||||
<entry></entry>
|
||||
<entry>$a is not odd by $b</entry>
|
||||
<entry>[k]eine ungerade Gruppierung</entry>
|
||||
<entry>($a / $b) % 2 != 0</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<example>
|
||||
<title>if Anweisung</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{* ein Beispiel mit 'eq' (gleich) *}
|
||||
{if $name eq "Fred"}
|
||||
Willkommen der Herr.
|
||||
@@ -45,12 +169,12 @@
|
||||
|
||||
|
||||
{* Klammern sind erlaubt *}
|
||||
{if ( $anzahl < 0 or $anzahl > 1000 ) and $menge >= #minMengeAmt#}
|
||||
{if ( $anzahl < 0 or $anzahl > 1000 ) and $menge >= #minMengeAmt#}
|
||||
...
|
||||
{/if}
|
||||
|
||||
|
||||
{* einbetten von php Funktionsaufrufen ('gt' steht für 'grösser als') *}
|
||||
{* einbetten von php Funktionsaufrufen ('gt' steht f<EFBFBD>r 'gr<67>sser als') *}
|
||||
{if count($var) gt 0}
|
||||
...
|
||||
{/if}
|
||||
@@ -83,7 +207,9 @@
|
||||
{* 0=gerade, 1=gerade, 2=gerade, 3=ungerade, 4=ungerade, 5=ungerade, etc *}
|
||||
{if $var is even by 3}
|
||||
...
|
||||
{/if}</programlisting>
|
||||
{/if}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
@@ -1,111 +1,120 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.1 Maintainer: andreas Status: ready -->
|
||||
<sect1 id="language.function.include.php">
|
||||
<title>include_php (PHP-Code einbinden)</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>file</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Ja</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Der Name der einzubindenden PHP-Datei.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>once</entry>
|
||||
<entry>boolean</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>true</emphasis></entry>
|
||||
<entry>Definiert ob die Datei mehrmals geladen werden soll, falls sie mehrmals eingebunden wird.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>assign</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Der Name der Variable, der die Ausgabe von include_php zugewiesen wird.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<para>
|
||||
include_php-Tags werden verwendet, um PHP-Skripte in Ihre Templates
|
||||
einzubinden. Falls 'Sicherheit' aktiviert ist,
|
||||
muss das einzubindende Skript im '$trusted_dir' Pfad liegen.
|
||||
'include_php' muss das Attribut 'file' übergeben werden,
|
||||
das den Pfad - entweder relativ zu '$trusted_dir' oder absolut -
|
||||
zum Skript enthält.
|
||||
</para>
|
||||
<para>
|
||||
include_php ist ein einfacher Weg, um modularisierte Templates zu
|
||||
verwenden und PHP-Code von HTML zu separieren. Sie haben zum Beispiel
|
||||
ein Template für die Seitennavigation, welche direkt
|
||||
aus der Datenbank bezogen wird. Die Logik, die den Datenbankinhalt bezieht,
|
||||
können sie in einer eigenen Datei ablegen und am
|
||||
Anfang Ihres Templates einbinden. Nun können Sie das Template
|
||||
überall wiederverwenden, ohne sich Gedanken zu machen, wie der Inhalt
|
||||
in die Navigationsstruktur gelangt.
|
||||
</para>
|
||||
<para>
|
||||
Normalerweise wird ein PHP-Skript nur einmal pro Aufruf geladen,
|
||||
selbst wenn es mehrfach eingebunden wird. Sie können dieses
|
||||
Verhalten durch die Verwendung des <emphasis>once</emphasis> Attributs
|
||||
steuern. Wenn Sie 'once' auf 'false' setzen, wird die Datei immer
|
||||
wenn sie eingebunden wird auch neu geladen.
|
||||
</para>
|
||||
<para>
|
||||
Optional kann das <emphasis>assign</emphasis> Attribut übergeben werden.
|
||||
Die Ausgabe von <emphasis>include_php</emphasis> wird dann nicht direkt eingefügt,
|
||||
sondern in der durch assign benannten Template-Variable abgelegt.
|
||||
</para>
|
||||
<para>
|
||||
Das Objekt '$smarty' kann in dem eingebundenen PHP-Script über '$this' angesprochen werden.
|
||||
</para>
|
||||
<example>
|
||||
<title>Funktion include_php</title>
|
||||
<programlisting>
|
||||
lade_nav.php
|
||||
-------------
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
// lade die Variablen aus einer MySQL-Datenbank und weise sie dem Template zu
|
||||
require_once("MySQL.class.php");
|
||||
$sql = new MySQL;
|
||||
$sql->query("select * from site_nav_sections order by name",SQL_ALL);
|
||||
$this->assign($sections,$sql->record);
|
||||
|
||||
?>
|
||||
|
||||
|
||||
index.tpl
|
||||
---------
|
||||
|
||||
<!-- EN-Revision: 1.8 Maintainer: andreas Status: ready -->
|
||||
<sect1 id="language.function.include.php">
|
||||
<title>include_php (PHP-Code einbinden)</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>file</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Ja</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Der Name der einzubindenden PHP-Datei.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>once</entry>
|
||||
<entry>boolean</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>true</emphasis></entry>
|
||||
<entry>Definiert ob die Datei mehrmals geladen werden soll, falls sie mehrmals eingebunden wird.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>assign</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Der Name der Variable, der die Ausgabe von include_php zugewiesen wird.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<para>
|
||||
Die Verwendung von {include_php} wird nicht mehr empfohlen, die
|
||||
gleiche funktionalit<69>t kann auch mit <link
|
||||
linkend="tips.componentized.templates">Template/Script
|
||||
Komponenten</link> erreicht werden.
|
||||
</para>
|
||||
<para>
|
||||
Falls <link linkend="variable.security">Sicherheit</link> aktiviert
|
||||
ist, muss das einzubindende Skript im <link
|
||||
linkend="variable.trusted.dir">$trusted_dir</link> Pfad
|
||||
liegen. {include_php} muss das Attribut 'file' <20>bergeben werden, das
|
||||
den Pfad - entweder relativ zu <link
|
||||
linkend="variable.trusted.dir">$trusted_dir</link> oder absolut -
|
||||
zum Skript enth<74>lt.
|
||||
</para>
|
||||
<para>
|
||||
Normalerweise wird ein PHP-Skript nur einmal pro Aufruf geladen,
|
||||
selbst wenn es mehrfach eingebunden wird. Sie k<>nnen dieses
|
||||
Verhalten durch die Verwendung des <emphasis>once</emphasis>
|
||||
Attributs steuern. Wenn Sie 'once' auf 'false' setzen, wird die
|
||||
Datei immer wenn sie eingebunden wird auch neu geladen.
|
||||
</para>
|
||||
<para>
|
||||
Optional kann das <emphasis>assign</emphasis> Attribut <20>bergeben
|
||||
werden. Die Ausgabe von <emphasis>include_php</emphasis> wird dann
|
||||
nicht direkt eingef<65>gt, sondern in der durch assign benannten
|
||||
Template-Variable abgelegt.
|
||||
</para>
|
||||
<para>
|
||||
Das Objekt '$smarty' kann in dem eingebundenen PHP-Script <20>ber
|
||||
'$this' angesprochen werden.
|
||||
</para>
|
||||
<example>
|
||||
<title>Funktion include_php</title>
|
||||
<para>lade_nav.php</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
<?php
|
||||
|
||||
// lade die Variablen aus einer MySQL-Datenbank und weise sie dem Template zu
|
||||
require_once("MySQL.class.php");
|
||||
$sql = new MySQL;
|
||||
$sql->query("select * from site_nav_sections order by name",SQL_ALL);
|
||||
$this->assign($sections,$sql->record);
|
||||
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
Bei folgendem index.tpl:
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{* absoluter Pfad, oder relativ zu '$trusted_dir' *}
|
||||
{include_php file="/pfad/zu/lade_nav.php"}
|
||||
|
||||
{foreach item=$aktuelle_section from=$sections}
|
||||
<a href="{$aktuelle_section.url}">{$aktuelle_section.name}</a><br>
|
||||
{/foreach}</programlisting>
|
||||
</example>
|
||||
<a href="{$aktuelle_section.url}">{$aktuelle_section.name}</a><br>
|
||||
{/foreach}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Siehe auch <link
|
||||
linkend="language.function.include">{include}</link>, <link
|
||||
linkend="language.function.php">{php}</link>, <link
|
||||
linkend="language.function.capture">{capture}</link>, <link
|
||||
linkend="template.resources">Template Ressourcen</link> and <link
|
||||
linkend="tips.componentized.templates">Template/Script
|
||||
Komponenten</link>
|
||||
</para>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
|
@@ -1,104 +1,130 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.1 Maintainer: andreas Status: ready -->
|
||||
<sect1 id="language.function.include">
|
||||
<title>include (einbinden)</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>file</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Ja</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Name der Template-Datei, die eingebunden werden soll.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>assign</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Variable, welcher der eingebundene Inhalt zugewiesen werden soll.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>[var ...]</entry>
|
||||
<entry>[var typ]</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Variablen welche dem Template lokal übergeben werden sollen.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<para>
|
||||
Include Tags werden verwendet, um andere Templates in das aktuelle Template einzubinden.
|
||||
Alle Variablen des aktuellen Templates sind auch im eingebundenen Template verfügbar.
|
||||
Das include-Tag muss ein 'file' Attribut mit dem Pfad zum einzubindenden
|
||||
Template enthalten.
|
||||
</para>
|
||||
<para>
|
||||
Optional kann mit dem <emphasis>assign</emphasis> Attribut definiert werden,
|
||||
in welcher Variable die Ausgabe des mit <emphasis>include</emphasis> eingebundenen
|
||||
Templates abgelegt werden soll statt sie auszugeben.
|
||||
</para>
|
||||
<example>
|
||||
<title>function include (einbinden)</title>
|
||||
<programlisting>
|
||||
{include file="header.tpl"}
|
||||
<!-- EN-Revision: 1.8 Maintainer: andreas Status: ready -->
|
||||
<sect1 id="language.function.include">
|
||||
<title>include (einbinden)</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>file</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Ja</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Name der Template-Datei, die eingebunden werden soll.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>assign</entry>
|
||||
<entry>string</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Variable, welcher der eingebundene Inhalt zugewiesen werden soll.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>[var ...]</entry>
|
||||
<entry>[var typ]</entry>
|
||||
<entry>Nein</entry>
|
||||
<entry><emphasis>n/a</emphasis></entry>
|
||||
<entry>Variablen welche dem Template lokal <EFBFBD>bergeben werden sollen.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<para>
|
||||
Include Tags werden verwendet, um andere Templates in das aktuelle
|
||||
Template einzubinden. Alle Variablen des aktuellen Templates sind
|
||||
auch im eingebundenen Template verf<72>gbar. Das include-Tag muss ein
|
||||
'file' Attribut mit dem Pfad zum einzubindenden Template enthalten.
|
||||
</para>
|
||||
<para>
|
||||
Optional kann mit dem <emphasis>assign</emphasis> Attribut definiert
|
||||
werden, in welcher Variable die Ausgabe des mit
|
||||
<emphasis>include</emphasis> eingebundenen Templates abgelegt werden
|
||||
soll statt sie auszugeben.
|
||||
</para>
|
||||
<example>
|
||||
<title>function include (einbinden)</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
<html>
|
||||
<head>
|
||||
<title>{$title}</title>
|
||||
</head>
|
||||
<body>
|
||||
{include file="page_header.tpl"}
|
||||
|
||||
{* hier kommt der body des Templates *}
|
||||
{include file="/$tpl_name.tpl"} <-- $tpl_name wird durch eine Wert ersetzt
|
||||
|
||||
{include file="footer.tpl"}</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Sie können dem einzubindenden Template Variablen
|
||||
als Attribute übergeben. Alle explizit übergebenen
|
||||
Variablen sind nur im Anwendungsbereich (scope) dieses Template
|
||||
verfügbar. Attribut-Variablen überschreiben
|
||||
aktuelle Template-Variablen, falls sie den gleichen Namen haben.
|
||||
</para>
|
||||
<example>
|
||||
<title>include-Funktion und Variablen Übergabe</title>
|
||||
<programlisting>
|
||||
{include file="page_footer.tpl"}
|
||||
</body>
|
||||
</html>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Sie k<>nnen dem einzubindenden Template Variablen als Attribute
|
||||
<20>bergeben. Alle explizit <20>bergebenen Variablen sind nur im
|
||||
Anwendungsbereich (scope) dieses Template
|
||||
verf<72>gbar. Attribut-Variablen <20>berschreiben aktuelle
|
||||
Template-Variablen, falls sie den gleichen Namen haben.
|
||||
</para>
|
||||
<example>
|
||||
<title>include-Funktion und Variablen <20>bergabe</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{include file="header.tpl" title="Hauptmenu" table_bgcolor="#c0c0c0"}
|
||||
|
||||
{* hier kommt der body des Templates *}
|
||||
|
||||
{include file="footer.tpl" logo="http://my.domain.com/logo.gif"}</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Benutzen sie die Syntax von <link linkend="template.resources">template resources</link>,
|
||||
um Templates ausserhalb des '$template_dir' einzubinden:
|
||||
</para>
|
||||
<example>
|
||||
<title>Beispiele für Template-Ressourcen bei der 'include'-Funktion</title>
|
||||
<programlisting>
|
||||
{include file="footer.tpl" logo="http://my.domain.com/logo.gif"}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Benutzen sie die Syntax von <link
|
||||
linkend="template.resources">template resources</link>, um Templates
|
||||
ausserhalb des '$template_dir' einzubinden:
|
||||
</para>
|
||||
<example>
|
||||
<title>Beispiele f<>r Template-Ressourcen bei der 'include'-Funktion</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{* absoluter Dateipfad *}
|
||||
{include file="/usr/local/include/templates/header.tpl"}
|
||||
|
||||
{* absoluter Dateipfad (gleich) *}
|
||||
{include file="file:/usr/local/include/templates/header.tpl"}
|
||||
|
||||
{* absoluter Dateipfad unter Windows ("file:"-Prefix MUSS übergeben werden) *}
|
||||
{* absoluter Dateipfad unter Windows ("file:"-Prefix MUSS <EFBFBD>bergeben werden) *}
|
||||
{include file="file:C:/www/pub/templates/header.tpl"}
|
||||
|
||||
{* einbinden aus Template-Ressource namens 'db' *}
|
||||
{include file="db:header.tpl"}</programlisting>
|
||||
</example>
|
||||
{include file="db:header.tpl"}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Siehe auch
|
||||
<link linkend="language.function.include.php">{include_php}</link>,
|
||||
<link linkend="language.function.php">{php}</link>,
|
||||
<link linkend="template.resources">Template Ressourcen</link> und
|
||||
<link linkend="tips.componentized.templates">Template/Skript Komponenten</link>.
|
||||
</para>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
|
Reference in New Issue
Block a user