sync with en

This commit is contained in:
messju
2005-06-23 18:56:00 +00:00
parent c765bf7377
commit 40e9b14b19
6 changed files with 778 additions and 517 deletions

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.2 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.8 Maintainer: andreas Status: ready -->
<sect1 id="language.function.capture"> <sect1 id="language.function.capture">
<title>capture (Ausgabe abfangen)</title> <title>capture (Ausgabe abfangen)</title>
<informaltable frame="all"> <informaltable frame="all">
@@ -14,7 +14,7 @@
<row> <row>
<entry>Attribut Name</entry> <entry>Attribut Name</entry>
<entry>Typ</entry> <entry>Typ</entry>
<entry>Ben&ouml;tigt</entry> <entry>Ben<EFBFBD>tigt</entry>
<entry>Standardwert</entry> <entry>Standardwert</entry>
<entry>Beschreibung</entry> <entry>Beschreibung</entry>
</row> </row>
@@ -38,13 +38,15 @@
</tgroup> </tgroup>
</informaltable> </informaltable>
<para> <para>
'capture' wird verwendet, um die Template-Ausgabe abzufangen und in einer 'capture' wird verwendet, um die Template-Ausgabe abzufangen und in
Variable zu speichern. Der Inhalt zwischen {capture name="foo"} und {/capture} einer Variable zu speichern. Der Inhalt zwischen {capture
wird unter der im 'name' Attribut angegebenen Variable abgelegt und kann &uuml;ber name="foo"} und {/capture} wird unter der im 'name' Attribut
'$smarty.capture.foo' angesprochen werden. Falls kein 'name'-Attribut angegebenen Capture-Variablen abgelegt und kann <20>ber <link
&uuml;bergeben wurde, wird der Inhalt in 'default' abgelegt. linkend="language.variables.smarty.capture">$smarty.capture.foo</link>
Jede {capture} Sektion muss mit {/capture} beendet werden. angesprochen werden. Falls kein 'name'-Attribut <20>bergeben wurde,
'capture'-Bl&ouml;cke k&ouml;nnen verschachtelt sein. 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> </para>
<note> <note>
<title>Technische Bemerkung</title> <title>Technische Bemerkung</title>
@@ -56,28 +58,35 @@
</note> </note>
<caution> <caution>
<para> <para>
Seien Sie vorsichtig, wenn sie die Ausgabe von <command>insert</command> Seien Sie vorsichtig, wenn sie die Ausgabe von <link
abfangen wollen. Sie sollten die Ausgabe nicht abfangen, wenn Caching linkend="language.function.insert">{insert}</link> abfangen
eingeschaltet ist und Sie einen <command>insert</command> wollen. Sie sollten die Ausgabe nicht abfangen, wenn Caching
Befehl verwenden, um Ausgaben vom Caching auszuschliessen. eingeschaltet ist und Sie einen <link
linkend="language.function.insert">{insert}</link> Befehl
verwenden, um Ausgaben vom Caching auszuschliessen.
</para> </para>
</caution> </caution>
<para> <para>
<example> <example>
<title>Template-Inhalte abfangen</title> <title>Template-Inhalte abfangen</title>
<programlisting> <programlisting>
<![CDATA[
{* Tabellenzeile nur ausgeben, wenn Inhalt vorhanden *} {* Tabellenzeile nur ausgeben, wenn Inhalt vorhanden *}
{capture name=banner} {capture name=banner}
{include file="get_banner.tpl"} {include file="get_banner.tpl"}
{/capture} {/capture}
{if $smarty.capture.banner ne ""} {if $smarty.capture.banner ne ""}
&lt;tr&gt; <table>
&lt;td&gt; <tr>
<td>
{$smarty.capture.banner} {$smarty.capture.banner}
&lt;/td&gt; </td>
&lt;/tr&gt; </tr>
{/if}</programlisting> </table>
{/if}
]]>
</programlisting>
</example> </example>
</para> </para>
</sect1> </sect1>

View File

@@ -41,11 +41,12 @@
<entry><emphasis>local</emphasis></entry> <entry><emphasis>local</emphasis></entry>
<entry> <entry>
Definiert den Geltungsbereich der zu ladenden Variablen. Definiert den Geltungsbereich der zu ladenden Variablen.
Erlaubte Werte sind 'local','parent' und 'global'. 'local' bedeutet, Erlaubte Werte sind 'local','parent' und 'global'. 'local'
dass die Variablen in den Context des lokalen Template geladen werden. bedeutet, dass die Variablen in den Context des lokalen Template
'parent' bedeutet, dass die Variablen sowohl in den lokalen Context, geladen werden. 'parent' bedeutet, dass die Variablen sowohl in
als auch in den Context des aufrufenden Templates eingebunden werden. den lokalen Context, als auch in den Context des aufrufenden
'global' bedeutet, dass die Variablen von allen Templates zug&auml;nglich sind. Templates eingebunden werden. 'global' bedeutet, dass die
Variablen von allen Templates zug<75>nglich sind.
</entry> </entry>
</row> </row>
<row> <row>
@@ -54,26 +55,47 @@
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>No</emphasis></entry> <entry><emphasis>No</emphasis></entry>
<entry> <entry>
DEPRECATED: Definiert, ob die Variablen von allen Templates aus zug<75>nglich
Definiert, ob die Variablen von allen Templates aus zug&auml;nglich sind. sind. WICHTIG: Dieses Attribut wird von 'scope' abgel<65>st und
Dieses Attribut wird von 'scope' abgel&ouml;st und sollte nicht mehr sollte nicht mehr verwendet werden. Falls 'scope' <20>bergeben
verwendet werden. Falls 'scope' &uuml;bergeben wurde, wird 'global' ignoriert. wurde, wird 'global' ignoriert.
</entry> </entry>
</row> </row>
</tbody> </tbody>
</tgroup> </tgroup>
</informaltable> </informaltable>
<para> <para>
Diese Funktion wird verwendet, um Variablen aus einer Konfigurationsdatei Diese Funktion wird verwendet, um <link
in das Template zu laden. Sehen sie <link linkend="config.files">Config Files (Konfigurationsdateien)</link> linkend="language.config.variables">Variablen aus einer
f&uuml;r weitere Informationen. Konfigurationsdatei</link> in das Template zu laden. Sehen sie
<link linkend="config.files">Config Files
(Konfigurationsdateien)</link> f<>r weitere Informationen.
</para> </para>
<example> <example>
<title>Funktion config_load</title> <title>Funktion config_load</title>
<para>
beispiel.conf
</para>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
{config_load file="farben.conf"} #Dies ist ein Konfigurationsdateikommentar
# 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="example.conf"}
<html> <html>
<title>{#seitenTitel#}</title> <title>{#seitenTitel#}</title>
<body bgcolor="{#bodyHintergrundFarbe#}"> <body bgcolor="{#bodyHintergrundFarbe#}">
@@ -90,20 +112,22 @@
</programlisting> </programlisting>
</example> </example>
<para> <para>
Konfigurationsdateien k&ouml;nnen Abschnitte enthalten. Um Variablen <link linkend="config.files">Konfigurationsdateien</link> k<>nnen
aus einem Abschnitt zu laden, k&ouml;nnen Sie das Attribut Abschnitte enthalten. Um Variablen aus einem Abschnitt zu laden,
<emphasis>section</emphasis> &uuml;bergeben. k<EFBFBD>nnen Sie das Attribut <emphasis>section</emphasis> <EFBFBD>bergeben.
</para> </para>
<para> <para>
Bemerkung: <emphasis>Konfigurationdatei-Abschnitte (sections)</emphasis> und die Bemerkung: <emphasis>Konfigurationdatei-Abschnitte
eingebaute Template Funktion namens <emphasis>section</emphasis> haben ausser dem (sections)</emphasis> und die eingebaute Template Funktion namens
Namen nichts gemeinsam. <link linkend="language.function.section">section</link> haben ausser
dem Namen nichts gemeinsam.
</para> </para>
<example> <example>
<title>Funktion config_load mit Abschnitten</title> <title>Funktion config_load mit Abschnitten</title>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
{config_load file="farben.conf" section="Kunde"} {config_load file="beispiel.conf" section="Kunde"}
<html> <html>
<title>{#seitenTitel#}</title> <title>{#seitenTitel#}</title>
<body bgcolor="{#bodyHintergrundFarbe#}"> <body bgcolor="{#bodyHintergrundFarbe#}">
@@ -119,6 +143,16 @@
]]> ]]>
</programlisting> </programlisting>
</example> </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> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.1 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.7 Maintainer: andreas Status: ready -->
<sect1 id="language.function.foreach"> <sect1 id="language.function.foreach">
<title>foreach, foreachelse</title> <title>{foreach}, {foreachelse}</title>
<informaltable frame="all"> <informaltable frame="all">
<tgroup cols="5"> <tgroup cols="5">
<colspec colname="param" align="center" /> <colspec colname="param" align="center" />
@@ -32,91 +32,148 @@
<entry>string</entry> <entry>string</entry>
<entry>Ja</entry> <entry>Ja</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>Name f&uuml;r das aktuelle Element.</entry> <entry>Name f<EFBFBD>r das aktuelle Element.</entry>
</row> </row>
<row> <row>
<entry>key</entry> <entry>key</entry>
<entry>string</entry> <entry>string</entry>
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>Name f&uuml;r den aktuellen Schl&uuml;ssel.</entry> <entry>Name f<EFBFBD>r den aktuellen Schl<EFBFBD>ssel.</entry>
</row> </row>
<row> <row>
<entry>name</entry> <entry>name</entry>
<entry>string</entry> <entry>string</entry>
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>Name der 'foreach'-Schleife, f&uuml;r die Abfrage der 'foreach'-Eigenschaften.</entry> <entry>Name der 'foreach'-Schleife, f<EFBFBD>r die Abfrage der 'foreach'-Eigenschaften.</entry>
</row> </row>
</tbody> </tbody>
</tgroup> </tgroup>
</informaltable> </informaltable>
<para> <para>
Die <emphasis>foreach</emphasis> Schleife ist eine Alternative zu <emphasis>section</emphasis>.
<emphasis>foreach</emphasis> wird verwendet, um ein assoziatives Array Die <emphasis>foreach</emphasis> Schleife ist eine Alternative zu
zu durchlaufen. Die Syntax von <emphasis>foreach</emphasis>-Schleifen ist viel einfacher als <link
die von <emphasis>section</emphasis>. <emphasis>foreach</emphasis> tags m&uuml;ssen mit <emphasis>/foreach</emphasis> linkend="language.function.section"><emphasis>section</emphasis></link>.
tags kombiniert werden. Erforderliche Parameter sind: <emphasis>from</emphasis> und <emphasis>foreach</emphasis> wird verwendet, um ein assoziatives
<emphasis>item</emphasis>. Der Name der 'foreach'-Schleife kann frei vergeben werden Array zu durchlaufen. Die Syntax von
und sowohl Buchstaben, Zahlen als auch Unterstriche enthalten. <emphasis>foreach</emphasis>-Schleifen ist viel einfacher als die
<emphasis>foreach</emphasis>-Schleifen k&ouml;nnen verschachtelt werden, dabei ist von <emphasis>section</emphasis>. <emphasis>{foreach}</emphasis>
zu beachten, dass sich die definierten Namen voneinander unterscheiden. Tags m<>ssen mit <emphasis>{/foreach}</emphasis> tags kombiniert
Die <emphasis>from</emphasis> Variable (normalerweise werden. Erforderliche Parameter sind: <emphasis>from</emphasis> und
ein assoziatives Array) definiert die Anzahl der von <emphasis>foreach</emphasis> <emphasis>item</emphasis>. Der Name der {foreach}-Schleife kann
zu durchlaufenen Iterationen. <emphasis>foreachelse</emphasis> wird ausgef&uuml;hrt wenn frei vergeben werden und sowohl Buchstaben, Zahlen als auch
keine Werte in der <emphasis>from</emphasis> Variable &uuml;bergeben wurden. 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> </para>
<example> <example>
<title>foreach</title> <title>{foreach} - item</title>
<programlisting role="php">
<![CDATA[
<?php
$arr = array( 1001,1002,1003);
$smarty->assign('custid', $arr);
?>
]]>
</programlisting>
<programlisting> <programlisting>
<![CDATA[
<?php
{* dieses Beispiel gibt alle Werte aus dem $KundenId Array aus *} {* dieses Beispiel gibt alle Werte aus dem $KundenId Array aus *}
{foreach from=$KundenId item=aktuelle_id} {foreach from=$KundenId item=aktuelle_id}
id: {$aktuelle_id}&lt;br&gt; id: {$aktuelle_id}<br>
{/foreach} {/foreach}
]]>
AUSGABE: </programlisting>
<para>
id: 1000&lt;br&gt; Das obige Beispiel erzeugt folgende Ausgabe:
id: 1001&lt;br&gt; </para>
id: 1002&lt;br&gt;</programlisting> <screen>
<![CDATA[
id: 1000<br>
id: 1001<br>
id: 1002<br>
]]>
</screen>
</example> </example>
<example> <example>
<title>foreach key</title> <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> <programlisting>
{* Der Schl&uuml;ssel enth&auml;lt den Schl&uuml;ssel des jeweils iterierten Wertes <![CDATA[
die Zuweisung sieht wie folgt aus:
$smarty->assign("kontakte", array(array("phone" =&gt; "1", "fax" =&gt; "2", "cell" =&gt; "3"),
array("phone" =&gt; "555-4444", "fax" =&gt; "555-3333", "cell" =&gt; "760-1234")));
*}
{foreach name=aussen item=kontakt from=$kontakte} {foreach name=aussen item=kontakt from=$kontakte}
<hr />
{foreach key=schluessel item=wert from=$kontakt} {foreach key=schluessel item=wert from=$kontakt}
{$schluessel}: {$wert}&lt;br&gt; {$schluessel}: {$wert}<br>
{/foreach} {/foreach}
{/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>
phone: 1&lt;br&gt; <programlisting role="php">
fax: 2&lt;br&gt; <![CDATA[
cell: 3&lt;br&gt; <?php
phone: 555-4444&lt;br&gt; $sql = 'SELECT contact_id, name, nick FROM contacts ORDER BY contact';
fax: 555-3333&lt;br&gt; $smarty->assign('kontakte', $db->getAssoc($sql));
cell: 760-1234&lt;br&gt;</programlisting> ?>
]]>
</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> </example>
<para> <para>
Foreach-Loops haben auch eigene Variablen welche die Foreach Eigenschaften enthalten. Foreach-Loops haben auch eigene Variablen welche die Foreach
Diese werden wie folgt ausgewiesen: {$smarty.foreach.foreachname.varname}. foreachname Eigenschaften enthalten. Diese werden wie folgt ausgewiesen:
ist der Name der als <emphasis>name</emphasis> Attribut von Foreach &uuml;bergeben wurden. {$smarty.foreach.foreachname.varname}. foreachname ist der Name der
als <emphasis>name</emphasis> Attribut von Foreach <20>bergeben wurden.
</para> </para>
<sect2 id="foreach.property.iteration"> <sect2 id="foreach.property.iteration">
<title>iteration</title> <title>iteration</title>
<para> <para>
@@ -133,7 +190,6 @@ cell: 760-1234&lt;br&gt;</programlisting>
<emphasis>first</emphasis> ist TRUE wenn die aktuelle Iteration die erste ist <emphasis>first</emphasis> ist TRUE wenn die aktuelle Iteration die erste ist
</para> </para>
</sect2> </sect2>
<sect2 id="foreach.property.last"> <sect2 id="foreach.property.last">
<title>last</title> <title>last</title>
<para> <para>
@@ -144,18 +200,19 @@ cell: 760-1234&lt;br&gt;</programlisting>
<sect2 id="foreach.property.show"> <sect2 id="foreach.property.show">
<title>show</title> <title>show</title>
<para> <para>
<emphasis>show</emphasis> wird als Parameter von foreach verwedet und ist ein boolscher Wert, TRUE oder FALSE. Auf FALSE wird <emphasis>show</emphasis> wird als Parameter von foreach verwedet
nichts ausgegeben und wenn foreachelse gefunden wird, dieser angezeigt. und ist ein boolscher Wert, TRUE oder FALSE. Auf FALSE wird nichts
ausgegeben und wenn foreachelse gefunden wird, dieser angezeigt.
</para> </para>
</sect2> </sect2>
<sect2 id="foreach.property.total"> <sect2 id="foreach.property.total">
<title>total</title> <title>total</title>
<para> <para>
<emphasis>total</emphasis> gibt die Anzahl Iterationen des Foreach Loops aus und kann in- oder nach- Foreach Bl&ouml;cken verwendet werden. <emphasis>total</emphasis> gibt die Anzahl Iterationen des Foreach
Loops aus und kann in- oder nach- Foreach Bl<42>cken verwendet werden.
</para> </para>
</sect2> </sect2>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:

View File

@@ -4,19 +4,143 @@
<sect1 id="language.function.if"> <sect1 id="language.function.if">
<title>if,elseif,else</title> <title>if,elseif,else</title>
<para> <para>
'if'-Statements in Smarty erlauben die selbe Flexibilit&auml;t <emphasis>{if}</emphasis>-Statements in Smarty erlauben die selbe
wie in PHP, bis auf ein paar Erweiterungen f&uuml;r die Template-Engine. Flexibilit<69>t wie in PHP, bis auf ein paar Erweiterungen f<EFBFBD>r die
Jedes <emphasis>if</emphasis> muss mit einem <emphasis>/if</emphasis> Template-Engine. Jedes <emphasis>{if}</emphasis> muss mit einem
kombiniert sein. <emphasis>else</emphasis> und <emphasis>elseif</emphasis> <emphasis>{/if}</emphasis> kombiniert
sind ebenfalls erlaubt. "eq", "ne","neq","gt", "lt", "lte", "le", "gte" "ge", sein. <emphasis>{else}</emphasis> und <emphasis>{elseif}</emphasis>
"is even","is odd", "is noteven","is not odd","not","mod","div by","even by", sind ebenfalls erlaubt. Alle PHP Vergleichsoperatoren, wie
"odd by","==","!=","&gt;", "&lt;","&lt;=","&gt;=" sind alles erlaubte Bedingungen, <emphasis>||</emphasis>, <emphasis>or</emphasis>,
und m&uuml;ssen von umgebenden Elementen mit Leerzeichen abgetrennt werden. <emphasis>&amp;&amp;</emphasis>, <emphasis>and</emphasis>, etc. sind
erlaubt.
</para> </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>&gt;</entry>
<entry>gt</entry>
<entry>$a gt $b</entry>
<entry>gr<EFBFBD><EFBFBD>er als</entry>
<entry>&gt;</entry>
</row>
<row>
<entry>&lt;</entry>
<entry>lt</entry>
<entry>$a lt $b</entry>
<entry>kleiner als</entry>
<entry>&lt;</entry>
</row>
<row>
<entry>&gt;=</entry>
<entry>gte, ge</entry>
<entry>$a ge $b</entry>
<entry>gr<EFBFBD><EFBFBD>er oder gleich</entry>
<entry>&gt;=</entry>
</row>
<row>
<entry>&lt;=</entry>
<entry>lte, le</entry>
<entry>$a le $b</entry>
<entry>kleiner oder gleich</entry>
<entry>&lt;=</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> <example>
<title>if Anweisung</title> <title>if Anweisung</title>
<programlisting> <programlisting>
<![CDATA[
{* ein Beispiel mit 'eq' (gleich) *} {* ein Beispiel mit 'eq' (gleich) *}
{if $name eq "Fred"} {if $name eq "Fred"}
Willkommen der Herr. Willkommen der Herr.
@@ -45,12 +169,12 @@
{* Klammern sind erlaubt *} {* Klammern sind erlaubt *}
{if ( $anzahl &lt; 0 or $anzahl &gt; 1000 ) and $menge &gt;= #minMengeAmt#} {if ( $anzahl < 0 or $anzahl > 1000 ) and $menge >= #minMengeAmt#}
... ...
{/if} {/if}
{* einbetten von php Funktionsaufrufen ('gt' steht f&uuml;r 'gr&ouml;sser als') *} {* einbetten von php Funktionsaufrufen ('gt' steht f<EFBFBD>r 'gr<67>sser als') *}
{if count($var) gt 0} {if count($var) gt 0}
... ...
{/if} {/if}
@@ -83,7 +207,9 @@
{* 0=gerade, 1=gerade, 2=gerade, 3=ungerade, 4=ungerade, 5=ungerade, etc *} {* 0=gerade, 1=gerade, 2=gerade, 3=ungerade, 4=ungerade, 5=ungerade, etc *}
{if $var is even by 3} {if $var is even by 3}
... ...
{/if}</programlisting> {/if}
]]>
</programlisting>
</example> </example>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.1 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.8 Maintainer: andreas Status: ready -->
<sect1 id="language.function.include.php"> <sect1 id="language.function.include.php">
<title>include_php (PHP-Code einbinden)</title> <title>include_php (PHP-Code einbinden)</title>
<informaltable frame="all"> <informaltable frame="all">
@@ -45,46 +45,43 @@
</tgroup> </tgroup>
</informaltable> </informaltable>
<para> <para>
include_php-Tags werden verwendet, um PHP-Skripte in Ihre Templates Die Verwendung von {include_php} wird nicht mehr empfohlen, die
einzubinden. Falls 'Sicherheit' aktiviert ist, gleiche funktionalit<69>t kann auch mit <link
muss das einzubindende Skript im '$trusted_dir' Pfad liegen. linkend="tips.componentized.templates">Template/Script
'include_php' muss das Attribut 'file' &uuml;bergeben werden, Komponenten</link> erreicht werden.
das den Pfad - entweder relativ zu '$trusted_dir' oder absolut -
zum Skript enth&auml;lt.
</para> </para>
<para> <para>
include_php ist ein einfacher Weg, um modularisierte Templates zu Falls <link linkend="variable.security">Sicherheit</link> aktiviert
verwenden und PHP-Code von HTML zu separieren. Sie haben zum Beispiel ist, muss das einzubindende Skript im <link
ein Template f&uuml;r die Seitennavigation, welche direkt linkend="variable.trusted.dir">$trusted_dir</link> Pfad
aus der Datenbank bezogen wird. Die Logik, die den Datenbankinhalt bezieht, liegen. {include_php} muss das Attribut 'file' <20>bergeben werden, das
k&ouml;nnen sie in einer eigenen Datei ablegen und am den Pfad - entweder relativ zu <link
Anfang Ihres Templates einbinden. Nun k&ouml;nnen Sie das Template linkend="variable.trusted.dir">$trusted_dir</link> oder absolut -
&uuml;berall wiederverwenden, ohne sich Gedanken zu machen, wie der Inhalt zum Skript enth<74>lt.
in die Navigationsstruktur gelangt.
</para> </para>
<para> <para>
Normalerweise wird ein PHP-Skript nur einmal pro Aufruf geladen, Normalerweise wird ein PHP-Skript nur einmal pro Aufruf geladen,
selbst wenn es mehrfach eingebunden wird. Sie k&ouml;nnen dieses selbst wenn es mehrfach eingebunden wird. Sie k<EFBFBD>nnen dieses
Verhalten durch die Verwendung des <emphasis>once</emphasis> Attributs Verhalten durch die Verwendung des <emphasis>once</emphasis>
steuern. Wenn Sie 'once' auf 'false' setzen, wird die Datei immer Attributs steuern. Wenn Sie 'once' auf 'false' setzen, wird die
wenn sie eingebunden wird auch neu geladen. Datei immer wenn sie eingebunden wird auch neu geladen.
</para> </para>
<para> <para>
Optional kann das <emphasis>assign</emphasis> Attribut &uuml;bergeben werden. Optional kann das <emphasis>assign</emphasis> Attribut <EFBFBD>bergeben
Die Ausgabe von <emphasis>include_php</emphasis> wird dann nicht direkt eingef&uuml;gt, werden. Die Ausgabe von <emphasis>include_php</emphasis> wird dann
sondern in der durch assign benannten Template-Variable abgelegt. nicht direkt eingef<65>gt, sondern in der durch assign benannten
Template-Variable abgelegt.
</para> </para>
<para> <para>
Das Objekt '$smarty' kann in dem eingebundenen PHP-Script &uuml;ber '$this' angesprochen werden. Das Objekt '$smarty' kann in dem eingebundenen PHP-Script <EFBFBD>ber
'$this' angesprochen werden.
</para> </para>
<example> <example>
<title>Funktion include_php</title> <title>Funktion include_php</title>
<para>lade_nav.php</para>
<programlisting> <programlisting>
lade_nav.php <![CDATA[
------------- <?php
&lt;?php
// lade die Variablen aus einer MySQL-Datenbank und weise sie dem Template zu // lade die Variablen aus einer MySQL-Datenbank und weise sie dem Template zu
require_once("MySQL.class.php"); require_once("MySQL.class.php");
@@ -92,20 +89,32 @@ lade_nav.php
$sql->query("select * from site_nav_sections order by name",SQL_ALL); $sql->query("select * from site_nav_sections order by name",SQL_ALL);
$this->assign($sections,$sql->record); $this->assign($sections,$sql->record);
?&gt; ?>
]]>
</programlisting>
index.tpl <para>
--------- Bei folgendem index.tpl:
</para>
<programlisting>
<![CDATA[
{* absoluter Pfad, oder relativ zu '$trusted_dir' *} {* absoluter Pfad, oder relativ zu '$trusted_dir' *}
{include_php file="/pfad/zu/lade_nav.php"} {include_php file="/pfad/zu/lade_nav.php"}
{foreach item=$aktuelle_section from=$sections} {foreach item=$aktuelle_section from=$sections}
&lt;a href="{$aktuelle_section.url}"&gt;{$aktuelle_section.name}&lt;/a&gt;&lt;br&gt; <a href="{$aktuelle_section.url}">{$aktuelle_section.name}</a><br>
{/foreach}</programlisting> {/foreach}
]]>
</programlisting>
</example> </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> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.1 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.8 Maintainer: andreas Status: ready -->
<sect1 id="language.function.include"> <sect1 id="language.function.include">
<title>include (einbinden)</title> <title>include (einbinden)</title>
<informaltable frame="all"> <informaltable frame="all">
@@ -39,66 +39,92 @@
<entry>[var typ]</entry> <entry>[var typ]</entry>
<entry>Nein</entry> <entry>Nein</entry>
<entry><emphasis>n/a</emphasis></entry> <entry><emphasis>n/a</emphasis></entry>
<entry>Variablen welche dem Template lokal &uuml;bergeben werden sollen.</entry> <entry>Variablen welche dem Template lokal <EFBFBD>bergeben werden sollen.</entry>
</row> </row>
</tbody> </tbody>
</tgroup> </tgroup>
</informaltable> </informaltable>
<para> <para>
Include Tags werden verwendet, um andere Templates in das aktuelle Template einzubinden. Include Tags werden verwendet, um andere Templates in das aktuelle
Alle Variablen des aktuellen Templates sind auch im eingebundenen Template verf&uuml;gbar. Template einzubinden. Alle Variablen des aktuellen Templates sind
Das include-Tag muss ein 'file' Attribut mit dem Pfad zum einzubindenden auch im eingebundenen Template verf<72>gbar. Das include-Tag muss ein
Template enthalten. 'file' Attribut mit dem Pfad zum einzubindenden Template enthalten.
</para> </para>
<para> <para>
Optional kann mit dem <emphasis>assign</emphasis> Attribut definiert werden, Optional kann mit dem <emphasis>assign</emphasis> Attribut definiert
in welcher Variable die Ausgabe des mit <emphasis>include</emphasis> eingebundenen werden, in welcher Variable die Ausgabe des mit
Templates abgelegt werden soll statt sie auszugeben. <emphasis>include</emphasis> eingebundenen Templates abgelegt werden
soll statt sie auszugeben.
</para> </para>
<example> <example>
<title>function include (einbinden)</title> <title>function include (einbinden)</title>
<programlisting> <programlisting>
{include file="header.tpl"} <![CDATA[
<html>
<head>
<title>{$title}</title>
</head>
<body>
{include file="page_header.tpl"}
{* hier kommt der body des Templates *} {* hier kommt der body des Templates *}
{include file="/$tpl_name.tpl"} <-- $tpl_name wird durch eine Wert ersetzt
{include file="footer.tpl"}</programlisting> {include file="page_footer.tpl"}
</body>
</html>
]]>
</programlisting>
</example> </example>
<para> <para>
Sie k&ouml;nnen dem einzubindenden Template Variablen Sie k<EFBFBD>nnen dem einzubindenden Template Variablen als Attribute
als Attribute &uuml;bergeben. Alle explizit &uuml;bergebenen <20>bergeben. Alle explizit <EFBFBD>bergebenen Variablen sind nur im
Variablen sind nur im Anwendungsbereich (scope) dieses Template Anwendungsbereich (scope) dieses Template
verf&uuml;gbar. Attribut-Variablen &uuml;berschreiben verf<EFBFBD>gbar. Attribut-Variablen <EFBFBD>berschreiben aktuelle
aktuelle Template-Variablen, falls sie den gleichen Namen haben. Template-Variablen, falls sie den gleichen Namen haben.
</para> </para>
<example> <example>
<title>include-Funktion und Variablen &Uuml;bergabe</title> <title>include-Funktion und Variablen <EFBFBD>bergabe</title>
<programlisting> <programlisting>
<![CDATA[
{include file="header.tpl" title="Hauptmenu" table_bgcolor="#c0c0c0"} {include file="header.tpl" title="Hauptmenu" table_bgcolor="#c0c0c0"}
{* hier kommt der body des Templates *} {* hier kommt der body des Templates *}
{include file="footer.tpl" logo="http://my.domain.com/logo.gif"}</programlisting> {include file="footer.tpl" logo="http://my.domain.com/logo.gif"}
]]>
</programlisting>
</example> </example>
<para> <para>
Benutzen sie die Syntax von <link linkend="template.resources">template resources</link>, Benutzen sie die Syntax von <link
um Templates ausserhalb des '$template_dir' einzubinden: linkend="template.resources">template resources</link>, um Templates
ausserhalb des '$template_dir' einzubinden:
</para> </para>
<example> <example>
<title>Beispiele f&uuml;r Template-Ressourcen bei der 'include'-Funktion</title> <title>Beispiele f<EFBFBD>r Template-Ressourcen bei der 'include'-Funktion</title>
<programlisting> <programlisting>
<![CDATA[
{* absoluter Dateipfad *} {* absoluter Dateipfad *}
{include file="/usr/local/include/templates/header.tpl"} {include file="/usr/local/include/templates/header.tpl"}
{* absoluter Dateipfad (gleich) *} {* absoluter Dateipfad (gleich) *}
{include file="file:/usr/local/include/templates/header.tpl"} {include file="file:/usr/local/include/templates/header.tpl"}
{* absoluter Dateipfad unter Windows ("file:"-Prefix MUSS &uuml;bergeben werden) *} {* absoluter Dateipfad unter Windows ("file:"-Prefix MUSS <EFBFBD>bergeben werden) *}
{include file="file:C:/www/pub/templates/header.tpl"} {include file="file:C:/www/pub/templates/header.tpl"}
{* einbinden aus Template-Ressource namens 'db' *} {* einbinden aus Template-Ressource namens 'db' *}
{include file="db:header.tpl"}</programlisting> {include file="db:header.tpl"}
]]>
</programlisting>
</example> </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> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables: