Files
smarty/docs/fr/designers/language-builtin-functions/language-function-insert.xml

169 lines
6.1 KiB
XML
Raw Normal View History

2004-04-13 15:43:47 +00:00
<?xml version="1.0" encoding="iso-8859-1"?>
2005-05-10 21:15:40 +00:00
<!-- $Revision$ -->
2006-10-01 11:18:39 +00:00
<!-- EN-Revision: 1.10 Maintainer: gerald Status: ready -->
2005-12-01 20:28:15 +00:00
2005-05-10 21:15:40 +00:00
<sect1 id="language.function.insert">
2005-05-26 18:10:32 +00:00
<title>{insert}</title>
2005-12-01 20:28:15 +00:00
<para>
2006-10-01 11:18:39 +00:00
Les balises <varname>{insert}</varname> fonctionnent <20> peu pr<70>s comme les balises
<link linkend="language.function.include"><varname>{include}</varname></link>,
2005-12-01 20:28:15 +00:00
<20> l'exception que leur sortie n'est PAS plac<61>e en cache lorsque
2006-04-09 21:59:55 +00:00
<link linkend="caching">le cache</link> du template est activ<69>.
2005-12-01 20:28:15 +00:00
Les balises {insert} seront ex<65>cut<75>es <20> chaque appel du template.
</para>
2005-05-10 21:15:40 +00:00
<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>name</entry>
<entry>cha<EFBFBD>ne de caract<63>res</entry>
<entry>Oui</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>le nom de la fonction insert (insert_name)</entry>
</row>
<row>
<entry>assign</entry>
<entry>cha<EFBFBD>ne de caract<63>re</entry>
<entry>Non</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Le nom de la variable qui recevra la sortie</entry>
</row>
<row>
<entry>script</entry>
<entry>cha<EFBFBD>ne de caract<63>res</entry>
<entry>Non</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Le nom du script PHP inclus avant que la fonction
2004-05-23 15:50:53 +00:00
insert ne soit appel<65>e.</entry>
2005-05-10 21:15:40 +00:00
</row>
<row>
<entry>[var ...]</entry>
<entry>[var type]</entry>
<entry>Non</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Variable <20> passer <20> la fonction insert</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>
Supposons que vous avez un template avec un emplacement
pour un bandeau publicitaire en haut de page.
Ce bandeau publicitaire peut contenir toutes sortes de contenus
HTML, images, flash, etc. Nous ne pouvons pas placer du contenu
statique <20> cet endroit. Nous ne voulons pas non plus que ce
2005-12-01 20:28:15 +00:00
contenu fasse partie du cache. Arrive alors la balise {insert}.
2005-05-10 21:15:40 +00:00
Le template connais #emplacement_bandeau# et #id_site# (r<>cup<75>r<EFBFBD>s
2005-12-01 20:28:15 +00:00
depuis un <link linkend="config.files">fichier de configuration</link>),
et <20> besoin d'un appel de fonction pour r<>cup<75>rer le contenu du bandeau.
2005-05-10 21:15:40 +00:00
</para>
<example>
2005-12-01 20:28:15 +00:00
<title>Fonction {insert}</title>
2005-05-10 21:15:40 +00:00
<programlisting>
2005-12-01 20:28:15 +00:00
{* exemple de r<>cup<75>ration d'un bandeau publicitaire *}
{insert name="getBanner" lid=#emplacement_bandeau# sid=#id_site#}
2005-05-24 20:46:11 +00:00
</programlisting>
2005-05-10 21:15:40 +00:00
</example>
<para>
2006-10-01 11:18:39 +00:00
Dans cet exemple, nous utilisons le nom <quote>getBanner</quote> et lui passons les
2005-05-10 21:15:40 +00:00
param<61>tres #emplacement_bandeau# et #id_site#. Smarty va rechercher une
fonction appel<65>e insert_getBanner () dans votre application PHP, et lui
passer les valeurs #banner_location_id# et #site_id# comme premier
2005-12-01 20:28:15 +00:00
param<61>tre, dans un tableau associatif. Tous les noms des fonctions {insert}
2005-05-10 21:15:40 +00:00
de votre application doivent <20>tre prefix<69>es de "insert_" pour rem<65>dier
<20> d'<27>ventuels conflits de nommage. Votre fonction insert_getBanner ()
est suppos<6F>e traiter les valeurs pass<73>es et retourner
un r<>sultat. Ces r<>sultats sont affich<63>s dans le template en lieu et
place de la balise. Dans cet exemple, Smarty appellera cette fonction
insert_getBanner(array("lid" => "12345","sid" => "67890")); et affichera
2005-12-01 20:28:15 +00:00
le r<>sultat retourn<72> <20> la place de la balise {insert}.
2005-05-10 21:15:40 +00:00
</para>
2006-10-01 11:18:39 +00:00
<itemizedlist>
<listitem>
2004-05-23 15:44:59 +00:00
<para>
2006-10-01 11:18:39 +00:00
Si vous donnez une valeur <20> l'attribut <parameter>assign</parameter>, la sortie de la balise
<varname>{insert}</varname> sera assign<67> <20> une variable de template de ce nom au lieu d'<27>tre
affich<63>e directement.
<note>
<para>
Assigner la sortie <20> une variable n'est pas
tr<74>s utile lorsque le <link linkend="variable.caching">cache</link> est activ<69>.
</para>
</note>
</para></listitem>
<listitem>
2005-05-10 21:15:40 +00:00
<para>
2006-10-01 11:18:39 +00:00
Si vous donnez une valeur <20> l'attribut <parameter>script</parameter>, ce script PHP sera
inclus (une seule fois) avant l'ex<65>cution de la fonction <varname>{insert}</varname>.
Le cas peut survenir lorsque la fonction <varname>{insert}</varname> n'existe pas encore,
et que le script PHP charg<72> de sa d<>finission doit <20>tre inclus.
2005-05-10 21:15:40 +00:00
</para>
2006-10-01 11:18:39 +00:00
<para>
Le chemin doit <20>tre absolu ou relatif <20>
<link linkend="variable.trusted.dir"><parameter>$trusted_dir</parameter></link>.
Lorsque
<link linkend="variable.security"><parameter>$security</parameter></link> est actif,
le script doit <20>tre situ<74> dans
<link linkend="variable.trusted.dir"><parameter>$trusted_dir</parameter></link>.
</para></listitem>
</itemizedlist>
2005-05-10 21:15:40 +00:00
<para>
L'objet Smarty est pass<73> comme second argument. De cette fa<66>on, vous
pouvez utiliser ou modifier des informations sur l'objet Smarty,
2006-10-01 11:18:39 +00:00
directement depuis votre fonction <varname>{insert}</varname>.
2005-05-10 21:15:40 +00:00
</para>
<note>
<title>Note technique</title>
2004-05-23 15:44:59 +00:00
<para>
2005-05-10 21:15:40 +00:00
Il est possible d'avoir des portions de template qui ne soient pas
g<>rables par le cache. M<>me si vous avez activ<69> l'option
2006-10-01 11:18:39 +00:00
<link linkend="caching">caching</link>, les balises <varname>{insert}</varname>
2005-05-10 21:15:40 +00:00
ne feront pas partie du cache. Elles retourneront un contenu dynamique
<20> chaque invocation de la page. Cette m<>thode est tr<74>s pratique pour
des <20>l<EFBFBD>ments tels que les bandeaux publicitaires, les enqu<71>tes,
la m<>t<EFBFBD>o, les r<>sultats de recherche, retours utilisateurs, etc.
2004-05-23 15:50:53 +00:00
</para>
2005-05-10 21:15:40 +00:00
</note>
2006-02-17 22:40:55 +00:00
<para>
Voir aussi
2006-10-01 11:18:39 +00:00
<link linkend="language.function.include"><varname>{include}</varname></link>
2006-02-17 22:40:55 +00:00
</para>
2005-05-10 21:15:40 +00:00
</sect1>
2005-05-26 18:10:32 +00:00
2005-05-10 21:15:40 +00:00
<!-- 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
2005-05-26 18:10:32 +00:00
-->