Files
smarty/docs/fr/designers/language-builtin-functions/language-function-include.xml
2006-03-22 17:30:04 +00:00

199 lines
5.7 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1.13 Maintainer: yannick Status: ready -->
<sect1 id="language.function.include">
<title>{include}</title>
<para>
Les balises "{include}" sont utilisées pour inclure des templates à
l'intérieur d'autres templates. Toutes les variables disponibles
dans le template réalisant l'inclusion sont disponibles dans le
template inclus. La balise {include} doit disposer de l'attribut
<emphasis>'file'</emphasis>, qui contient le chemin de la
ressource template.
</para>
<para>
Vous pouvez spécifier un attribut optionnel <emphasis>'assign'</emphasis>
qui définit une variable de template dans laquelle la sortie de
{include} sera stockée plutôt qu'affichée.
</para>
<para>
Toutes les valeurs des variables assignées sont restaurées lorsque
le template inclus est terminé. Ceci signifie que vous pouvez utiliser
toutes les variables d'un template inclus dans le template qui l'inclut.
Mais les modifications des variables dans le template inclus ne sont pas
visibles dans le template qui l'inclut après l'instruction {include}.
</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>Nom attribut</entry>
<entry>Type</entry>
<entry>Requis</entry>
<entry>Defaut</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>file</entry>
<entry>chaîne de caractères</entry>
<entry>Oui</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Le nom du template à inclure</entry>
</row>
<row>
<entry>assign</entry>
<entry>chaîne de caractères</entry>
<entry>Non</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Le nom de la variable dans laquelle sera assignée
la sortie de include</entry>
</row>
<row>
<entry>[var ...]</entry>
<entry>[type de variable]</entry>
<entry>Non</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Variables à passer au template</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>fonction {include}</title>
<programlisting>
<![CDATA[
<html>
<head>
<title>{$title}</title>
</head>
<body>
{include file='page_header.tpl'}
{* body of template goes here *}
{include file='$tpl_name.tpl'} <-- remplace $tpl_name avec la valeur
{include file='page_footer.tpl'}
</body>
</html>
]]>
</programlisting>
</example>
<para>
Vous pouvez également passer des variables au template inclus
sous forme d'<link linkend="language.syntax.attributes">attributs</link>.
Les variables passées au template par ce moyen ne sont accessibles que
dans la portée de ce dernier. Les variables passées en tant qu'attribut
remplacent les variables déjà définies, qui auraient le même nom.
</para>
<example>
<title>fonction {include}, passage de variables</title>
<programlisting>
<![CDATA[
{include file='header.tpl' title='Menu principal' table_bgcolor='#c0c0c0'}
{* Le corps du template vient ici *}
{include file='footer.tpl' logo='http://mon.example.com/logo.gif'}
]]>
</programlisting>
<para>où header.tpl est :</para>
<programlisting>
<![CDATA[
<table border='1' width='100%' bgcolor='{$table_bgcolor|default:"#0000FF"}'>
<tr><td>
<h1>{$title}</h1>
</td></tr>
</table>
]]>
</programlisting>
</example>
<example>
<title>{include} et assignement à une variable</title>
<para>Cet exemple assigne le contenu de nav.tpl à la variable $navbar,
qui est alors affichée en haut et en bas de la page.
</para>
<programlisting>
<![CDATA[
<body>
{include file='nav.tpl' assign=navbar}
{include file='header.tpl' title='Main Menu' table_bgcolor='#c0c0c0'}
{$navbar}
{* body of template goes here *}
{include file='footer.tpl' logo='http://my.example.com/logo.gif'}
{$navbar}
</body>
]]>
</programlisting>
</example>
<para>
Utilisez la syntaxe <link
linkend="template.resources">ressource template</link> pour inclure
des fichiers situés en dehors du répertoire $template_dir.
</para>
<example>
<title>fonction {include}, exemple de ressource template</title>
<programlisting>
<![CDATA[
{* chemin absolu *}
{include file='/usr/local/include/templates/header.tpl'}
{* chemin absolu (même chose) *}
{include file='file:/usr/local/include/templates/header.tpl'}
{* chemin absolu windows (DOIT utiliser le préfixe "file:") *}
{include file='file:C:/www/pub/templates/header.tpl'}
{* inclusion d'une ressource template "db" *}
{include file='db:header.tpl'}
{* inclusion d'un template $variable - eg $module = 'contacts' *}
{include file="$module.tpl"}
{* ne fonctionne pas avec des simples guillemets ie aucun substitution de variables *}
{include file='$module.tpl'}
]]>
</programlisting>
</example>
<para>
Voir aussi
<link linkend="language.function.include.php">{include_php}</link>,
<link linkend="language.function.insert">{insert}</link>,
<link linkend="language.function.php">{php}</link>,
<link linkend="template.resources">les ressources de template</link> et
<link linkend="tips.componentized.templates">les templates composants</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
-->