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

Advertisement

include (einbinden)

{include}-Tags werden verwendet, um andere Templates in das aktuelle Template einzubinden. Alle Variablen des aktuellen Templates sind auch im eingebundenen Template verfügbar. Das {include}-Tag muss ein 'file' Attribut mit dem Pfad zum einzubindenden Template enthalten.

Optional kann mit dem assign Attribut definiert werden, in welcher Variable die Ausgabe des mit include eingebundenen Templates abgelegt werden soll statt sie auszugeben.

Die Werte aller zugewiesenen Variablen werden wiederhergestellt, sobald ein eingebundenes Template wieder verlassen wurde. Das bedeutet, dass in einem eingebundenen Template alle Variablen des einbindenden Template verwendet und verändert werden können, diese Änderungen aber verloren sind, sobald das {include} abgearbeitet wurde.

Attribut Name Typ Erforderlich Standardwert Beschreibung
file string Ja n/a Name der Template-Datei, die eingebunden werden soll.
assign string Nein n/a Variable, welcher der eingebundene Inhalt zugewiesen werden soll.
[var ...] [var typ] Nein n/a Variablen welche dem Template lokal übergeben werden sollen.

Example 7.9. function include (einbinden)


<html>
<head>
  <title>{$title}</title>
</head>
<body>
{include file='page_header.tpl'}

{* hier kommt der body des Templates *}
{include file="$tpl_name.tpl"} <-- $tpl_name wird durch eine Wert ersetzt

{include file='page_footer.tpl'}
</body>
</html>

  

Sie können dem einzubindenden Template Variablen als Attribute übergeben. Alle explizit übergebenen Variablen sind nur im Anwendungsbereich (scope) dieses Template verfügbar. Attribut-Variablen überschreiben aktuelle Template-Variablen, falls sie den gleichen Namen haben.

Example 7.10. include-Funktion und Variablen Übergabe


{include file='header.tpl' title='Hauptmenu' table_bgcolor='#c0c0c0'}

{* hier kommt der body des Templates *}

{include file='footer.tpl' logo='http://my.domain.com/logo.gif'}

  

Benutzen sie die Syntax von template resources, um Templates ausserhalb des '$template_dir' einzubinden:

Example 7.11. Beispiele für Template-Ressourcen bei der 'include'-Funktion


{* absoluter Dateipfad *}
{include file='/usr/local/include/templates/header.tpl'}

{* absoluter Dateipfad (gleich) *}
{include file='file:/usr/local/include/templates/header.tpl'}

{* absoluter Dateipfad unter Windows ("file:"-Prefix MUSS übergeben werden) *}
{include file='file:C:/www/pub/templates/header.tpl'}

{* einbinden aus Template-Ressource namens 'db' *}
{include file='db:header.tpl'}

{* einbinden eines Variablen Templates - z.B. $module = 'contacts' *}
{include file="$module.tpl"} 
{*
  Dies hier Funktioniert nicht, da Variablen innerhalb einfacher
  Anführungszeichen nicht interpoliert werden.
*}
{include file='$module.tpl'}

  

Siehe auch {include_php}, {php}, Template Ressourcen und Template/Skript Komponenten.