Files
smarty/docs/fr/designers/language-builtin-functions/language-function-include.xml
2006-10-01 11:18:39 +00:00

215 lines
6.4 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1.14 Maintainer: yannick Status: ready -->
<sect1 id="language.function.include">
<title>{include}</title>
<para>
Les balises <varname>{include}</varname> 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.
</para>
<itemizedlist>
<listitem><para>
La balise <varname>{include}</varname> doit contenir l'attribut
<parameter>file</parameter> qui contient le chemin vers la ressource de
template.
</para></listitem>
<listitem><para>
La définition de l'attribut optionnel <parameter>assign</parameter>
spécifie la variable de template assignée à la sortie de
<varname>{include}</varname> au lieu d'être affichée. Similaire à
<link linkend="language.function.assign"><varname>{assign}</varname></link>.
</para></listitem>
<listitem><para>
Les variables peuvent être passées à des templates inclus comme
<link linkend="language.syntax.attributes">attributs</link>.
Toutes les variables explicitement passées à un template inclus
ne sont disponibles que dans le contexte du fichier inclus.
Les attributs de variables écrasent les variables courantes de template,
dans le cas où les noms sont les mêmes.
</para></listitem>
<listitem><para>
Toutes les valeurs de variables assignées sont restaurées une fois le contexte
du template inclus refermés. Ceci signifie que vous pouvez utiliser toutes les
variables depuis un template inclus dans le template inclus. Mais les modifications
faites aux variables dans le template inclus ne sont pas visibles dans le template
incluant, parès l'instruction <varname>{include}</varname> statement.
</para></listitem>
<listitem><para>
Utilisez la synthaxe pour les
<link linkend="template.resources">ressources de template</link> aux fichiers
<varname>{include}</varname> en dehors du dossier
<link linkend="variable.template.dir"><parameter>$template_dir</parameter></link>.
</para></listitem>
</itemizedlist>
<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>Exemple avec {include}</title>
<programlisting>
<![CDATA[
<html>
<head>
<title>{$title}</title>
</head>
<body>
{include file='page_header.tpl'}
{* Le corps du template va ici, la variable $tpl_name est remplacé par
une valeur, e.g.'contact.pl' *}
{include file='$tpl_name.tpl'}
{include file='page_footer.tpl'}
</body>
</html>
]]>
</programlisting>
</example>
<example>
<title>Fonction {include}, passage de variables</title>
<programlisting>
<![CDATA[
{include file='links.tpl' title='Newest links' links=$link_array}
{* body of template goes here *}
{include file='footer.tpl' foo='bar'}
]]>
</programlisting>
<para>Le template ci-dessus inclut l'exemple <filename>links.tpl</filename></para>
<programlisting>
<![CDATA[
<div id="box">
<h3>{$title}{/h3>
<ul>
{foreach from=$links item=l}
.. faites quelques choses ici ...
</foreach}
</ul>
</div>
]]>
</programlisting>
</example>
<example>
<title>{include} et assignement à une variable</title>
<para>Cet exemple assigne le contenu de <filename>nav.tpl</filename> à la variable
<varname>$navbar</varname>, 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='Smarty is cool'}
{$navbar}
{* le corps du template va ici *}
{$navbar}
{include file='footer.tpl'}
</body>
]]>
</programlisting>
</example>
<example>
<title>Divers {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'}
{* include a multi $variable template - eg amber/links.view.tpl *}
{include file="$style_dir/$module.$view.tpl"}
]]>
</programlisting>
</example>
<para>
Voir aussi
<link linkend="language.function.include.php"><varname>{include_php}</varname></link>,
<link linkend="language.function.insert"><varname>{insert}</varname></link>,
<link linkend="language.function.php"><varname>{php}</varname></link>,
les <link linkend="template.resources">ressources de template</link> et
les <link linkend="tips.componentized.templates">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
-->