What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Table of Contents
Smarty enthält eine Reihe eingebauter Funktionen. Eingebaute Funktionen sind integral für die Template-Sprache. Sie können sie weder verändern noch eigene Funktionen unter selbem Namen erstellen.
{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 über $smarty.capture.foo angesprochen werden. Falls kein 'name'-Attribut übergeben wurde, wird der Inhalt in 'default' (also $smarty.capture.default) abgelegt. Jede {capture} Sektion muss mit {/capture} beendet werden. {capture}-Blöcke können verschachtelt sein.
Attribut Name | Typ | Benötigt | Standardwert | Beschreibung |
---|---|---|---|---|
name | string | no | default | Der Name des abgefangenen Blocks |
assign | string | No | n/a | Der Name der Variable welcher der Wert zugewiesen werden soll. |
Seien Sie vorsichtig, wenn sie die Ausgabe von {insert} abfangen wollen. Sie sollten die Ausgabe nicht abfangen, wenn Caching eingeschaltet ist und Sie einen {insert} Befehl verwenden, um Ausgaben vom Caching auszuschliessen.
Example 7.1. Template-Inhalte abfangen
{* Tabellenzeile nur ausgeben, wenn Inhalt vorhanden *} {capture name=banner} {include file='get_banner.tpl'} {/capture} {if $smarty.capture.banner ne ""} <table> <tr> <td> {$smarty.capture.banner} </td> </tr> </table> {/if}
Example 7.2. Template-Inhalte abfangen
Hier ist ein Beispiel das das Zusammenspiel mit der Funktion {popup} demonstriert.
{capture name=some_content assign=popText} .... some content .... {/capture} <a href="#" {popup caption='Help' text=$popText}>help</a>
Siehe auch: $smarty.capture, {eval}, {fetch}, fetch() and {assign}.