PageRenderTime 6ms CodeModel.GetById 1ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/documentation/de/designers/language-builtin-functions/language-function-foreach.xml

https://bitbucket.org/hallgrennetworks/smarty
XML | 235 lines | 206 code | 7 blank | 22 comment | 0 complexity | 6b8fe8f1b57cdaa114c1d06beba93cc4 MD5 | raw file
  1<?xml version="1.0" encoding="UTF-8"?>
  2<!-- $Revision: 2978 $ -->
  3<!-- EN-Revision: 1.8 Maintainer: andreas Status: ready -->
  4<sect1 id="language.function.foreach">
  5 <title>{foreach}, {foreachelse}</title>
  6 <para>
  7   Die <emphasis>foreach</emphasis> Schleife ist eine Alternative zu
  8   <link
  9   linkend="language.function.section"><emphasis>section</emphasis></link>.
 10   <emphasis>foreach</emphasis> wird verwendet, um ein assoziatives
 11   Array zu durchlaufen. Die Syntax von
 12   <emphasis>foreach</emphasis>-Schleifen ist viel einfacher als die
 13   von <emphasis>section</emphasis>. <emphasis>{foreach}</emphasis>
 14   Tags müssen mit <emphasis>{/foreach}</emphasis> tags kombiniert
 15   werden. Erforderliche Parameter sind: <emphasis>from</emphasis> und
 16   <emphasis>item</emphasis>. Der Name der {foreach}-Schleife kann
 17   frei vergeben werden und sowohl Buchstaben, Zahlen als auch
 18   Unterstriche enthalten. <emphasis>foreach</emphasis>-Schleifen
 19   können verschachtelt werden, dabei ist zu beachten, dass sich die
 20   definierten Namen voneinander unterscheiden. Die
 21   <emphasis>from</emphasis> Variable (normalerweise ein assoziatives
 22   Array) definiert die Anzahl der von <emphasis>foreach</emphasis> zu
 23   durchlaufenen Iterationen. <emphasis>foreachelse</emphasis> wird
 24   ausgeführt wenn keine Werte in der <emphasis>from</emphasis>
 25   Variable übergeben wurden.
 26 </para>
 27 <informaltable frame="all">
 28  <tgroup cols="5">
 29   <colspec colname="param" align="center" />
 30   <colspec colname="type" align="center" />
 31   <colspec colname="required" align="center" />
 32   <colspec colname="default" align="center" />
 33   <colspec colname="desc" />
 34   <thead>
 35    <row>
 36     <entry>Attribut Name</entry>
 37     <entry>Typ</entry>
 38     <entry>Erforderlich</entry>       
 39     <entry>Standardwert</entry>
 40     <entry>Beschreibung</entry>
 41    </row>
 42   </thead>
 43   <tbody>
 44    <row>
 45     <entry>from</entry>
 46     <entry>string</entry>
 47     <entry>Ja</entry>
 48     <entry><emphasis>n/a</emphasis></entry>
 49     <entry>Name des zu durchlaufenden Array.</entry>
 50    </row>
 51    <row>
 52     <entry>item</entry>
 53     <entry>string</entry>
 54     <entry>Ja</entry>
 55     <entry><emphasis>n/a</emphasis></entry>
 56     <entry>Name für das aktuelle Element.</entry>
 57    </row>
 58    <row>
 59     <entry>key</entry>
 60     <entry>string</entry>
 61     <entry>Nein</entry>
 62     <entry><emphasis>n/a</emphasis></entry>
 63     <entry>Name für den aktuellen Schlüssel.</entry>
 64     </row>
 65     <row>
 66      <entry>name</entry>
 67      <entry>string</entry>
 68      <entry>Nein</entry>
 69      <entry><emphasis>n/a</emphasis></entry>
 70      <entry>Name der 'foreach'-Schleife, für die Abfrage der 'foreach'-Eigenschaften.</entry>
 71     </row>
 72    </tbody>
 73   </tgroup>
 74  </informaltable>
 75 <example>
 76  <title>{foreach} - item</title>
 77  <programlisting role="php">
 78<![CDATA[
 79<?php
 80$arr = array( 1001,1002,1003);
 81$smarty->assign('custid', $arr);
 82?>
 83]]>
 84  </programlisting>
 85  <programlisting>
 86<![CDATA[
 87<?php
 88{* dieses Beispiel gibt alle Werte aus dem $KundenId Array aus *}
 89{foreach from=$KundenId item=aktuelle_id}
 90 id: {$aktuelle_id}<br>
 91{/foreach}
 92]]>
 93  </programlisting>
 94  <para>
 95   Das obige Beispiel erzeugt folgende Ausgabe:
 96  </para>
 97  <screen>
 98<![CDATA[
 99id: 1000<br>
100id: 1001<br>
101id: 1002<br>
102]]>
103  </screen>
104 </example>
105
106 <example>
107 <title>{foreach} - item und key</title>
108  <programlisting role="php">
109<![CDATA[
110// Der Schlüssel enthält den Schlüssel des jeweils iterierten Wertes
111// die Zuweisung sieht wie folgt aus:
112<?php
113 $smarty->assign('kontakte', array(
114                             array('phone' => '1',
115                                   'fax' => '2',
116                                   'cell' => '3'),
117                             array('phone' => '555-4444',
118                                   'fax' => '555-3333',
119                                   'cell' => '760-1234')
120                             ));
121?>
122]]>
123  </programlisting>
124  <programlisting>
125<![CDATA[
126{foreach name=aussen item=kontakt from=$kontakte}
127  <hr />
128  {foreach key=schluessel item=wert from=$kontakt}
129    {$schluessel}: {$wert}<br>
130  {/foreach}
131{/foreach}
132  </programlisting>
133  <para>
134   Das obige Beispiel erzeugt folgende Ausgabe:
135  </para>
136  <screen>
137<![CDATA[
138<hr />
139   phone: 1<br>
140   fax: 2<br>
141   cell: 3<br>
142<hr />
143   phone: 555-4444<br>
144   fax: 555-3333<br>
145   cell: 760-1234<br>
146]]>
147  </programlisting>
148 </example>
149
150 <example>
151  <title>{foreach} - Beispiel mit Datenbankzugriff (z.B. PEAR oder ADODB)</title>
152  <programlisting role="php">
153<![CDATA[
154<?php
155  $sql = 'SELECT contact_id, name, nick FROM contacts ORDER BY contact';
156  $smarty->assign('kontakte', $db->getAssoc($sql));
157?>
158]]>
159  </programlisting>
160  <programlisting>
161<![CDATA[
162{foreach key=cid item=con from=$kontakte}
163  <a href="kontact.php?contact_id={$cid}">{$con.name} - {$con.nick}</a><br />
164{/foreach}
165]]>
166  </programlisting>
167 </example>
168
169 <para>
170  Foreach-Loops haben auch eigene Variablen welche die Foreach
171  Eigenschaften enthalten. Diese werden wie folgt ausgewiesen:
172  {$smarty.foreach.foreachname.varname}. foreachname ist der Name der
173  als <emphasis>name</emphasis> Attribut von Foreach übergeben wurden.
174 </para>
175
176 <sect2 id="foreach.property.iteration">
177  <title>iteration</title>
178  <para>
179   gibt die aktuelle iteration aus
180  </para>
181  <para>
182   iteration beginnt immer mit 1 und wird danach bei jedem durchgang um 1 inkrementiert.
183  </para>
184 </sect2>
185
186 <sect2 id="foreach.property.first">
187  <title>first</title>
188  <para>
189   <emphasis>first</emphasis> ist TRUE wenn die aktuelle Iteration die erste ist
190  </para>
191 </sect2>
192 <sect2 id="foreach.property.last">
193  <title>last</title>
194  <para>
195   <emphasis>last</emphasis> ist TRUE wenn die aktuelle Iteration die letzte ist
196  </para>
197 </sect2>
198
199 <sect2 id="foreach.property.show">
200  <title>show</title>
201  <para>
202   <emphasis>show</emphasis> wird als Parameter von foreach verwedet
203   und ist ein boolscher Wert, TRUE oder FALSE. Auf FALSE wird nichts
204   ausgegeben und wenn foreachelse gefunden wird, dieser angezeigt.
205  </para>
206 </sect2>
207
208 <sect2 id="foreach.property.total">
209  <title>total</title>
210  <para>
211   <emphasis>total</emphasis> gibt die Anzahl Iterationen des Foreach
212   Loops aus und kann in- oder nach- Foreach Blöcken verwendet werden.
213  </para>
214 </sect2>
215</sect1>
216<!-- Keep this comment at the end of the file
217Local variables:
218mode: sgml
219sgml-omittag:t
220sgml-shorttag:t
221sgml-minimize-attributes:nil
222sgml-always-quote-attributes:t
223sgml-indent-step:1
224sgml-indent-data:t
225indent-tabs-mode:nil
226sgml-parent-document:nil
227sgml-default-dtd-file:"../../../../manual.ced"
228sgml-exposed-tags:nil
229sgml-local-catalogs:nil
230sgml-local-ecat-files:nil
231End:
232vim600: syn=xml fen fdm=syntax fdl=2 si
233vim: et tw=78 syn=sgml
234vi: ts=1 sw=1
235-->