Scriptindex.de

[ Menü ]

Home
News
Scripts
Neuzugänge
Suchen
Bücher
Manuals

[ Inhalt ]

Script eintragen
Tutorial eintragen
Newsletter
Umfragen
Link zu uns
Werbung bei uns
Kontakt
Impressum

[ Statistik ]

Hits gesamt: 5080572
Hits Heute: 647
max. Hits (10.07.07): 6964
User Online: 49
Scripts: 2828

[ Partner ]

CodeBase
I.S.U.M.
LUG Bayreuth
PEAR NEWS
PHP Classes

[ Facebook ]

[ Eigene Domain? ]

[ Buchtipp ]

Visual C++.NET. Das Buch.
Visual C++.NET. Das Buch.

Manuals > Smarty > section,sectionelse

7.11. section,sectionelse

Attribut NameTypErforderlichStandardwertBeschreibung
namestringJan/aDer Name der 'section'
loop[$variable_name]Jan/aDer Name des Zählers für die Iterationen.
startintegerNein0 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.
stepintegerNein1 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.
maxintegerNein1Maximale Anzahl an Iterationen, die Durchlaufen werden.
showbooleanNeintrueDefiniert ob diese 'section' angezeigt werden soll oder nicht.

Template-'sections' werden verwendet, um durch Arrays zu iterieren. Jedes section-Tag muss mit einem /section-Tag kombiniert werden. name und loop 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. sectionelse wird ausgeführt, wenn keine Werte in der 'loop'-Variable enthalten sind.

Beispiel 7-15. section

{* dieses Beispiel gibt alle Werte des $KundenId Arrays aus *} {section name=kunde loop=$KundenId} id: <br> AUSGABE: id: 1000<br> id: 1001<br> id: 1002<br>

Beispiel 7-16. section loop Variable

{* die 'loop'-Variable definiert nur die Anzahl der Iterationen, 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: <br> name: <br> address: <br> <p> 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>

Beispiel 7-17. section names

{* die 'name'-Variable definiert den Namen der verwendet werden soll, um Daten aus dieser 'section' zu referenzieren *} {section name=meinedaten loop=$KundenId} id: <br> name: <br> address: <br> <p>

Beispiel 7-18. nested sections (verschachtelte 'sections')

{* 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: <br> name: <br> address: <br> {section name=contact loop=$contact_type[customer]} : <br> <p> 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: john@mydomain.com<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: jack@mydomain.com<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: jane@mydomain.com<br> <p>

Beispiel 7-19. sections und assoziative Arrays

{* Dies ist ein Beispiel wie man einen assoziativen Array in einer 'section' ausgeben kann.*} {section name=customer loop=$contacts} name: <br> home: <br> cell: <br> e-mail: <p> {* Anm. d. übersetzers: Oft ist die Anwendung von 'foreach' kürzer. *} {foreach item=customer from=$contacts} name: <br> home: <br> cell: <br> e-mail: <p> AUSGABE: name: John Smith<br> home: 555-555-5555<br> cell: 555-555-5555<br> e-mail: john@mydomain.com<p> name: Jack Jones<br> home phone: 555-555-5555<br> cell phone: 555-555-5555<br> e-mail: jack@mydomain.com<p> name: Jane Munson<br> home phone: 555-555-5555<br> cell phone: 555-555-5555<br> e-mail: jane@mydomain.com<p>

Beispiel 7-20. sectionelse

{* sectionelse wird aufgerufen, wenn keine $custid Werte vorhanden sind *} {section name=customer loop=$custid} id: <br> keine Werte in $custid gefunden

Die Eigenschaften der 'section' werden in besonderen Variablen abgelegt. Diese sind wie folgt aufgebaut:

Bermerkung: Seit Smarty 1.5.0 hat sich die Syntax der 'section' Eigenschaften von zu geändert. Die alte Syntax wird noch immer unterstützt, die Dokumentation erwähnt jedoch nur noch die neue Schreibweise.

7.11.1. index

'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).

AnmerkungTechnische Bemerkung
 

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.

Beispiel 7-21. 'section'-Eigenschaft 'index'

{section name=customer loop=$custid} id: <br> AUSGABE: 0 id: 1000<br> 1 id: 1001<br> 2 id: 1002<br>

7.11.2. index_prev

'index_prev' wird verwendet um den vorhergehenden Schleifen-Index auszugeben. Bei der ersten Iteration ist dieser Wert -1.

Beispiel 7-22. section'-Eigenschaft 'index_prev'

{section name=customer loop=$custid} id: <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> 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>

7.11.3. index_next

'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).

Beispiel 7-23. section'-Eigenschaft 'index_next'

{section name=customer loop=$custid} id: <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> 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>

7.11.4. iteration

'iteration' wird verwendet um die aktuelle Iteration auszugeben.

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.

Beispiel 7-24. 'section'-Eigenschaft 'iteration'

{section name=customer loop=$custid start=5 step=2} aktuelle loop iteration: <br> id: <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> 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>

7.11.5. first

'first' ist 'true', wenn die aktuelle Iteration die erste dieser 'section' ist.

Beispiel 7-25. 'section'-Eigenschaft 'first'

{section name=customer loop=$custid} {if $smarty.section.customer.first} <table> <tr><td> id: </td></tr> {if $smarty.section.customer.last} </table> AUSGABE: <table> <tr><td>0 id: 1000</td></tr> <tr><td>1 id: 1001</td></tr> <tr><td>2 id: 1002</td></tr> </table>

7.11.6. last

'last' ist 'true' wenn die aktuelle Iteration die letzte dieser 'section' ist.

Beispiel 7-26. 'section'-Eigenschaft 'last'

{section name=customer loop=$custid} {if $smarty.section.customer.first} <table> <tr><td> id: </td></tr> {if $smarty.section.customer.last} </table> AUSGABE: <table> <tr><td>0 id: 1000</td></tr> <tr><td>1 id: 1001</td></tr> <tr><td>2 id: 1002</td></tr> </table>

7.11.7. rownum

'rownum' wird verwendet um die aktuelle Iteration (startend bei 1) auszugeben. 'rownum' ist ein Alias für 'iteration' und arbeitet identisch.

Beispiel 7-27. 'section'-Eigenschaft 'rownum'

{section name=customer loop=$custid} id: <br> AUSGABE: 1 id: 1000<br> 2 id: 1001<br> 3 id: 1002<br>

7.11.8. loop

'loop' wird verwendet, um die Nummer letzte Iteration der 'section' auszugeben. Dieser Wert kann inner- und ausserhalb der 'section' verwendet werden.

Beispiel 7-28. 'section'-Eigenschaft 'loop'

{section name=customer loop=$custid} id: <br> Es wurden Kunden angezeigt. AUSGABE: 0 id: 1000<br> 1 id: 1001<br> 2 id: 1002<br> Es wurden 3 Kunden angezeigt.

7.11.9. show

show 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.

Beispiel 7-29. 'section'-Eigenschaft 'show'

{section name=customer loop=$custid show=$show_customer_info} id: <br> {if $smarty.section.customer.show} die 'section' wurde angezeigt die 'section' wurde nicht angezeigt AUSGABE: 1 id: 1000<br> 2 id: 1001<br> 3 id: 1002<br> die 'section' wurde angezeigt

7.11.10. total

Wird verwendet um die Anzahl der durchlaufenen Iterationen einer 'section' auszugeben. Kann innerhalb oder ausserhalb der 'section' verwendet werden.

Beispiel 7-30. 'section'-Eigenschaft 'total'

{section name=customer loop=$custid step=2} id: <br> Es wurden Kunden angezeigt. OUTPUT: 0 id: 1000<br> 2 id: 1001<br> 4 id: 1002<br> Es wurden 3 Kunden angezeigt.

Copyright 1998 - 2009 by I.S.U.M.