Files
smarty/docs/de/designers/language-builtin-functions/language-function-include.xml
2005-12-10 09:33:47 +00:00

164 lines
4.9 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1.10 Maintainer: andreas Status: ready -->
<sect1 id="language.function.include">
<title>include (einbinden)</title>
<para>
{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.
</para>
<para>
Optional kann mit dem <emphasis>assign</emphasis> Attribut definiert
werden, in welcher Variable die Ausgabe des mit
<emphasis>include</emphasis> eingebundenen Templates abgelegt werden
soll statt sie auszugeben.
</para>
<para>
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.
</para>
<informaltable frame="all">
<tgroup cols="5">
<colspec colname="param" align="center" />
<colspec colname="type" align="center" />
<colspec colname="required" align="center" />
<colspec colname="default" align="center" />
<colspec colname="desc" />
<thead>
<row>
<entry>Attribut Name</entry>
<entry>Typ</entry>
<entry>Erforderlich</entry>
<entry>Standardwert</entry>
<entry>Beschreibung</entry>
</row>
</thead>
<tbody>
<row>
<entry>file</entry>
<entry>string</entry>
<entry>Ja</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Name der Template-Datei, die eingebunden werden soll.</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Nein</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Variable, welcher der eingebundene Inhalt zugewiesen werden soll.</entry>
</row>
<row>
<entry>[var ...]</entry>
<entry>[var typ]</entry>
<entry>Nein</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Variablen welche dem Template lokal übergeben werden sollen.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>function include (einbinden)</title>
<programlisting>
<![CDATA[
<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>
]]>
</programlisting>
</example>
<para>
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.
</para>
<example>
<title>include-Funktion und Variablen Übergabe</title>
<programlisting>
<![CDATA[
{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'}
]]>
</programlisting>
</example>
<para>
Benutzen sie die Syntax von <link
linkend="template.resources">template resources</link>, um Templates
ausserhalb des '$template_dir' einzubinden:
</para>
<example>
<title>Beispiele für Template-Ressourcen bei der 'include'-Funktion</title>
<programlisting>
<![CDATA[
{* 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'}
]]>
</programlisting>
</example>
<para>
Siehe auch
<link linkend="language.function.include.php">{include_php}</link>,
<link linkend="language.function.php">{php}</link>,
<link linkend="template.resources">Template Ressourcen</link> und
<link linkend="tips.componentized.templates">Template/Skript Komponenten</link>.
</para>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->