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. |
Caution
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}.