Get Smarty

Donate

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Buy cheap glasses from Cheapglasses123.com and save up to 80%.

Where to buy prescription glasses? EyewearCanada.com is your best choice!

Advertisement

insert (einfügen)

{insert}-Tags funktionieren ähnlich den {include}-Tags, werden aber nicht gecached, falls caching eingeschaltet ist. Sie werden bei jedem Aufruf des Templates ausgeführt.

Attribut Name Typ Erforderlich Standardwert Beschreibung
name string Ja n/a Der Name der Insert-Funktion
assign string Nein n/a Name der Template-Variable, in der die Ausgabe der 'insert'-Funktion optional abgelegt wird.
script string Nein n/a Name des PHP-Skriptes, das vor Aufruf der 'insert'-Funktion eingebunden werden soll.
[var ...] [var typ] Nein n/a Variablen die der 'insert'-Funktion übergeben werden sollen.

Stellen Sie sich vor, sie hätten ein Template mit einem Werbebanner. Dieser Banner kann verschiedene Arten von Inhalten haben: Bilder, HTML, Flash, etc. Deshalb können wir nicht einfach einen statischen Link verwenden und müssen vermeiden, dass dieser Inhalt gecached wird. Hier kommt das {insert}-Tag ins Spiel. Das Template kennt die Variablen '#banner_location_id#' und '#site_id#' (zum Beispiel aus einer Konfigurationsdatei) und soll eine Funktion aufrufen, die den Inhalt des Banners liefert.

Example 7.13. Funktion 'insert'

{* erzeugen des Banners *}
{insert name="getBanner" lid=#banner_location_id# sid=#site_id#}
  

In diesem Beispiel verwenden wir die Funktion 'getBanner' und übergeben die Parameter '#banner_location_id#' und '#site_id#'. Smarty wird daraufhin in Ihrer Applikatiopn nach einer Funktion namens 'getBanner' suchen und diese mit den Parametern '#banner_location_id#' und '#site_id#' aufrufen. Allen 'insert'-Funktionen in Ihrer Applikation muss 'insert_' vorangestellt werden, um Konflikte im Namensraum zu vermeiden. Ihre 'insert_getBanner()'-Funktion sollte etwas mit den übergebenen Parametern unternehmen und das Resultat zurückgeben. Dieses Resultat wird an der Stelle des 'insert'-Tags in Ihrem Template ausgegeben. In diesem Beispiel würde Smarty folgende Funktion aufrufen: insert_getBanner(array("lid" => "12345","sid" => "67890")) und die erhaltenen Resultate an Stelle des 'insert'-Tags ausgeben.

Falls Sie das 'assign'-Attribut übergeben, wird die Ausgabe des 'insert'-Tags in dieser Variablen abgelegt. Bemerkung: dies ist nicht sinnvoll, wenn Caching eingeschaltet ist.

Falls Sie das 'script'-Attribut übergeben, wird das angegebene PHP-Skript vor der Ausführung der {insert}-Funktion eingebunden. Dies ist nützlich, um die {insert}-Funktion erst in diesem Skript zu definieren. Der Pfad kann absolut oder relativ zu $trusted_dir angegeben werden. Wenn Sicherheit eingeschaltet ist, muss das Skript in $trusted_dir liegen.

Als zweites Argument wird der {insert}-Funktion das Smarty-Objekt selbst übergeben. Damit kann dort auf die Informationen im Smarty-Objekt zugegriffen werden.

Technische Bemerkung

Es gibt die Möglichkeit, Teile des Templates nicht zu cachen. Wenn Sie caching eingeschaltet haben, werden {insert}-Tags nicht gecached. Sie werden jedesmal ausgeführt, wenn die Seite erstellt wird - selbst innerhalb gecachter Seiten. Dies funktioniert gut für Dinge wie Werbung (Banner), Abstimmungen, Wetterberichte, Such-Resultate, Benutzer-Feedback-Ecke, etc.

Comments
No comments for this page.

Advertisement