fix accents broken by boots last year

This commit is contained in:
didou
2004-03-29 01:40:48 +00:00
parent 84ddbe714f
commit 81e2f1f9ac
6 changed files with 635 additions and 635 deletions

View File

@@ -1,43 +1,43 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<chapter id="advanced.features"> <chapter id="advanced.features">
<title>FonctionnalitTs avancTes</title> <title>Fonctionnalit<EFBFBD>s avanc<EFBFBD>es</title>
<sect1 id="advanced.features.objects"> <sect1 id="advanced.features.objects">
<title>Objets</title> <title>Objets</title>
<para> <para>
Smarty donne l'accFs aux objets PHP a travers les templates. Il y Smarty donne l'acc<EFBFBD>s aux objets PHP a travers les templates. Il y
a 2 moyens d'y avoir accFs. Le premier consiste a allouer les objets a 2 moyens d'y avoir acc<EFBFBD>s. Le premier consiste a allouer les objets
au template puis de les utiliser avec une syntaxe similaire a celles au template puis de les utiliser avec une syntaxe similaire a celles
des fonctions personnalisTes. Le deuxiFme moyen consiste a allouer des fonctions personnalis<EFBFBD>es. Le deuxi<EFBFBD>me moyen consiste a allouer
des objets aux templates et de les utiliser comme n'importe quelle des objets aux templates et de les utiliser comme n'importe quelle
variable. La premiFre mTthode a une syntaxe beaucoup plus sympathique. variable. La premi<EFBFBD>re m<EFBFBD>thode a une syntaxe beaucoup plus sympathique.
Elle est aussi plus sTcurisTe, puisqu'un objet allouT ne peut avoir accFs Elle est aussi plus s<EFBFBD>curis<EFBFBD>e, puisqu'un objet allou<EFBFBD> ne peut avoir acc<EFBFBD>s
qu'a certaines mTthodes et propriTtTs. NTanmoins, un objet allouT qu'a certaines m<EFBFBD>thodes et propri<EFBFBD>t<EFBFBD>s. NTanmoins, un objet allou<EFBFBD>
ne peut pas avoir de lien sur lui-mOme ou Otre mis dans un tableau ne peut pas avoir de lien sur lui-m<EFBFBD>me ou Otre mis dans un tableau
d'objet, etc. Vous devez choisir la mTthode qui correspond a vos d'objet, etc. Vous devez choisir la m<EFBFBD>thode qui correspond a vos
besoins, mais tGchez d'utiliser la premiFre mTthode autant que possible besoins, mais tGchez d'utiliser la premi<EFBFBD>re m<EFBFBD>thode autant que possible
afin de rTduire la syntaxe des templates au minimum. afin de r<EFBFBD>duire la syntaxe des templates au minimum.
</para> </para>
<para> <para>
Si l'option de sTcuritT est activTe, aucune mTthode ou fonctions privTes Si l'option de s<EFBFBD>curit<EFBFBD> est activ<EFBFBD>e, aucune m<EFBFBD>thode ou fonctions priv<EFBFBD>es
n'est accessible (commentant par "_"). S'il existe une mTthode et une n'est accessible (commentant par "_"). S'il existe une m<EFBFBD>thode et une
propriTtT du mOme nom, c'est la mTthode qui sera utilisTe. propri<EFBFBD>t<EFBFBD> du m<EFBFBD>me nom, c'est la m<EFBFBD>thode qui sera utilis<EFBFBD>e.
</para> </para>
<para> <para>
Vous pouvez restreindre l'accFs aux mTthodes et aux propriTtTs en Vous pouvez restreindre l'acc<EFBFBD>s aux m<EFBFBD>thodes et aux propri<EFBFBD>t<EFBFBD>s en
les listant dans un tableau en tant que troisiFme paramFtre les listant dans un tableau en tant que troisi<EFBFBD>me param<EFBFBD>tre
d'allocation. d'allocation.
</para> </para>
<para> <para>
Par dTfaut, les paramFtres passTs aux objets depuis le templates le sont de la Par d<EFBFBD>faut, les param<EFBFBD>tres pass<EFBFBD>s aux objets depuis le templates le sont de la
mOme faton que les fonctions utilisateurs les rTcupFrent. m<EFBFBD>me faton que les fonctions utilisateurs les r<EFBFBD>cup<EFBFBD>rent.
Le premier paramFtre correspond a un tableau associatif, le second a l'objet Le premier param<EFBFBD>tre correspond a un tableau associatif, le second a l'objet
Smarty. Si vous souhaitez que les paramFtres soient passTes un a un, comme Smarty. Si vous souhaitez que les param<EFBFBD>tres soient pass<EFBFBD>es un a un, comme
dans un appel traditionnel, dTfinissez registration, quatriFme paramFtre optionnel, dans un appel traditionnel, d<EFBFBD>finissez registration, quatri<EFBFBD>me param<EFBFBD>tre optionnel,
a false. a false.
</para> </para>
<example> <example>
<title>utilisation d'un objet allouT ou assignT</title> <title>utilisation d'un objet allou<EFBFBD> ou assign<EFBFBD></title>
<programlisting> <programlisting>
&lt;?php &lt;?php
// la classe // la classe
@@ -51,12 +51,12 @@ class My_Object() {
$myobj = new My_Object; $myobj = new My_Object;
// enregistre l'objet // enregistre l'objet
$smarty->register_object("foobar",$myobj); $smarty->register_object("foobar",$myobj);
// on restreint l'accFs a certaines mTthodes et propriTtTs en les listant // on restreint l'acc<EFBFBD>s a certaines m<EFBFBD>thodes et propri<EFBFBD>t<EFBFBD>s en les listant
$smarty->register_object("foobar",$myobj,array('meth1','meth2','prop1')); $smarty->register_object("foobar",$myobj,array('meth1','meth2','prop1'));
// pour utiliser le format habituel de paramFtre objet, passez le boolTen = false // pour utiliser le format habituel de param<EFBFBD>tre objet, passez le bool<EFBFBD>en = false
$smarty->register_object("foobar",$myobj,null,false); $smarty->register_object("foobar",$myobj,null,false);
// on peut aussi assigner des objets. Assignez par rTfTrence quand c'est possible // on peut aussi assigner des objets. Assignez par r<EFBFBD>f<EFBFBD>rence quand c'est possible
$smarty->assign_by_ref("myobj", $myobj); $smarty->assign_by_ref("myobj", $myobj);
$smarty->display("index.tpl"); $smarty->display("index.tpl");
@@ -64,7 +64,7 @@ $smarty->display("index.tpl");
TEMPLATE: TEMPLATE:
{* accFs a notre objet enregistrT *} {* acc<EFBFBD>s a notre objet enregistr<EFBFBD> *}
{foobar->meth1 p1="foo" p2=$bar} {foobar->meth1 p1="foo" p2=$bar}
{* on peut aussi assigner la sortie *} {* on peut aussi assigner la sortie *}
@@ -76,23 +76,23 @@ the output was {$output)
</example> </example>
</sect1> </sect1>
<sect1 id="advanced.features.prefilters"> <sect1 id="advanced.features.prefilters">
<title>Filtres de prT-compilation</title> <title>Filtres de pr<EFBFBD>-compilation</title>
<para> <para>
Les filtres de prT-compilation sont des fonctions PHP que vos templates Les filtres de pr<EFBFBD>-compilation sont des fonctions PHP que vos templates
exTcutent avant qu'ils ne soient compilTs. Cela peut Otre utile ex<EFBFBD>cutent avant qu'ils ne soient compil<EFBFBD>s. Cela peut Otre utile
pour prT-traiter vos templates afin d'enlever les commentaires pour pr<EFBFBD>-traiter vos templates afin d'enlever les commentaires
inutiles, garder un oeil sur ce que les gens mettent dans leurs templates, etc. inutiles, garder un oeil sur ce que les gens mettent dans leurs templates, etc.
Les filtre de prT-compilations peuvent Otre soit Les filtre de pr<EFBFBD>-compilations peuvent Otre soit
<link linkend="api.register.prefilter">dTclarTs</link> soit chargTs <link linkend="api.register.prefilter">d<EFBFBD>clar<EFBFBD>s</link> soit charg<EFBFBD>s
a partir des rTpertoires de plugins en utilisant la fonction a partir des r<EFBFBD>pertoires de plugins en utilisant la fonction
<link linkend="api.load.filter">load_filter()</link> ou en rTglant <link linkend="api.load.filter">load_filter()</link> ou en r<EFBFBD>glant
la variable la variable
<link linkend="variable.autoload.filters">$autoload_filters</link>. <link linkend="variable.autoload.filters">$autoload_filters</link>.
Smarty passera a la fonction le code source en tant que premier argument, Smarty passera a la fonction le code source en tant que premier argument,
et attendra en retour le code modifiT. et attendra en retour le code modifi<EFBFBD>.
</para> </para>
<example> <example>
<title>Utilisation un filtre de prT-compilation de template</title> <title>Utilisation un filtre de pr<EFBFBD>-compilation de template</title>
<programlisting> <programlisting>
&lt;?php &lt;?php
// mettre ceci dans votre application // mettre ceci dans votre application
@@ -101,13 +101,13 @@ function remove_dw_comments($tpl_source, &amp;$smarty)
return preg_replace("/&lt;!--#.*--&gt;/U","",$tpl_source); return preg_replace("/&lt;!--#.*--&gt;/U","",$tpl_source);
} }
// enregistrer le filtre de prT-compilation // enregistrer le filtre de pr<EFBFBD>-compilation
$smarty->register_prefilter("remove_dw_comments"); $smarty->register_prefilter("remove_dw_comments");
$smarty->display("index.tpl"); $smarty->display("index.tpl");
?&gt; ?&gt;
{* template Smarty index.tpl *} {* template Smarty index.tpl *}
&lt;!--# cette ligne va Otre supprimTe par le filtre de prT-compilation --&gt;</programlisting> &lt;!--# cette ligne va Otre supprim<EFBFBD>e par le filtre de pr<EFBFBD>-compilation --&gt;</programlisting>
</example> </example>
</sect1> </sect1>
@@ -115,13 +115,13 @@ $smarty->display("index.tpl");
<title>Filtres de post-compilation</title> <title>Filtres de post-compilation</title>
<para> <para>
Les filtres de post-compilation sont des fonctions PHP que vos templates Les filtres de post-compilation sont des fonctions PHP que vos templates
exTcutent aprFs avoir TtT compilTs. Les filtres de post-compilation peuvent ex<EFBFBD>cutent apr<EFBFBD>s avoir Tt<EFBFBD> compil<EFBFBD>s. Les filtres de post-compilation peuvent
Otre soit <link linkend="api.register.postfilter">dTclarTs</link> soit chargTs Otre soit <link linkend="api.register.postfilter">d<EFBFBD>clar<EFBFBD>s</link> soit charg<EFBFBD>s
depuis les rTpertoires des plugins en utilisant la fonction depuis les r<EFBFBD>pertoires des plugins en utilisant la fonction
<link linkend="api.load.filter">load_filter()</link> ou en rTglant <link linkend="api.load.filter">load_filter()</link> ou en r<EFBFBD>glant
la variable <link linkend="variable.autoload.filters">$autoload_filters</link>. la variable <link linkend="variable.autoload.filters">$autoload_filters</link>.
Smarty passera le template compilT en tant que premier paramFtre et attendra Smarty passera le template compil<EFBFBD> en tant que premier param<EFBFBD>tre et attendra
de la fonction qu'elle retourne le rTsultat de l'exTcution. de la fonction qu'elle retourne le r<EFBFBD>sultat de l'ex<EFBFBD>cution.
</para> </para>
<example> <example>
<title>utilisation d'un filtre de post-compilation de templates</title> <title>utilisation d'un filtre de post-compilation de templates</title>
@@ -138,7 +138,7 @@ $smarty->register_postfilter("add_header_comment");
$smarty->display("index.tpl"); $smarty->display("index.tpl");
?&gt; ?&gt;
{* template Smarty compilT index.tpl *} {* template Smarty compil<EFBFBD> index.tpl *}
&lt;!-- Created by Smarty! --&gt; &lt;!-- Created by Smarty! --&gt;
{* reste du contenu du template... *}</programlisting> {* reste du contenu du template... *}</programlisting>
</example> </example>
@@ -147,21 +147,21 @@ $smarty->display("index.tpl");
<sect1 id="advanced.features.outputfilters"> <sect1 id="advanced.features.outputfilters">
<title>Filtres de sortie</title> <title>Filtres de sortie</title>
<para> <para>
Quand le template est appelT via les fonctions display() ou fetch(), Quand le template est appel<EFBFBD> via les fonctions display() ou fetch(),
sa sortie est envoyTe a travers un ou plusieurs filtres de sorties. sa sortie est envoy<EFBFBD>e a travers un ou plusieurs filtres de sorties.
Ils diffFrent des filtres de post-compilation dans le sens ou ils agissent Ils diff<EFBFBD>rent des filtres de post-compilation dans le sens ou ils agissent
sur la sortie des templates, une fois exTcutTs, et non sur les sources sur la sortie des templates, une fois ex<EFBFBD>cut<EFBFBD>s, et non sur les sources
des templates. des templates.
</para> </para>
<para> <para>
Les filtres de sortie peuvent Otre soit Les filtres de sortie peuvent Otre soit
<link linkend="api.register.outputfilter">dTclarTs</link> soit <link linkend="api.register.outputfilter">d<EFBFBD>clar<EFBFBD>s</link> soit
chargTs depuis les rTpertoires des plugins en utilisant la fonction charg<EFBFBD>s depuis les r<EFBFBD>pertoires des plugins en utilisant la fonction
<link linkend="api.load.filter">load_filter()</link> <link linkend="api.load.filter">load_filter()</link>
ou en rTglant la variable ou en r<EFBFBD>glant la variable
<link linkend="variable.autoload.filters">$autoload_filters</link>. <link linkend="variable.autoload.filters">$autoload_filters</link>.
Smarty passera la sortie du template en premier argument et attendra Smarty passera la sortie du template en premier argument et attendra
de la fonction qu'elle retourne le rTsultat de l'exTcution. de la fonction qu'elle retourne le r<EFBFBD>sultat de l'ex<EFBFBD>cution.
</para> </para>
<example> <example>
<title>utilisation d'un filtre de sortie</title> <title>utilisation d'un filtre de sortie</title>
@@ -180,7 +180,7 @@ function protect_email($tpl_output, &amp;$smarty)
$smarty->register_outputfilter("protect_email"); $smarty->register_outputfilter("protect_email");
$smarty->display("index.tpl"); $smarty->display("index.tpl");
// dorTnavant toute occurence d'un adresse email dans le rTsultat du template // dor<EFBFBD>navant toute occurence d'un adresse email dans le r<EFBFBD>sultat du template
// aura un protection simple contre les robots spammers // aura un protection simple contre les robots spammers
?&gt;</programlisting> ?&gt;</programlisting>
</example> </example>
@@ -189,25 +189,25 @@ $smarty->display("index.tpl");
<sect1 id="section.template.cache.handler.func"> <sect1 id="section.template.cache.handler.func">
<title>Fonction de gestion du cache</title> <title>Fonction de gestion du cache</title>
<para> <para>
Une alternative au mTcanisme de cache par dTfaut (basT sur des fichiers Une alternative au m<EFBFBD>canisme de cache par d<EFBFBD>faut (bas<EFBFBD> sur des fichiers
de cache) consiste a spTcifier une fonction de gestion de cache utilisateur de cache) consiste a sp<EFBFBD>cifier une fonction de gestion de cache utilisateur
qui sera utilisTe pour lire, Tcrire et effacer les fichiers de cache. qui sera utilis<EFBFBD>e pour lire, Tcrire et effacer les fichiers de cache.
</para> </para>
<para> <para>
Il suffit de crTer dans votre application une fonction que Smarty Il suffit de cr<EFBFBD>er dans votre application une fonction que Smarty
utilisera pour la gestion du cache et d'assigner le nom de cette utilisera pour la gestion du cache et d'assigner le nom de cette
fonction a la variable de classe fonction a la variable de classe
<link linkend="variable.cache.handler.func">$cache_handler_func</link>. <link linkend="variable.cache.handler.func">$cache_handler_func</link>.
Smarty utilisera alors cette fonction pour gTrer les donnTes du cache. Smarty utilisera alors cette fonction pour g<EFBFBD>rer les donn<EFBFBD>es du cache.
Le premier argument est l'action, qui sera 'read', 'write' ou 'clear'. Le premier argument est l'action, qui sera 'read', 'write' ou 'clear'.
Le second paramFtre est l'objet Smarty. Le troisiFme est le contenu Le second param<EFBFBD>tre est l'objet Smarty. Le troisi<EFBFBD>me est le contenu
du cache. Pour Tcrire, Smarty passe le contenu du cache dans ces paramFtres. du cache. Pour Tcrire, Smarty passe le contenu du cache dans ces param<EFBFBD>tres.
Pour lire, Smarty s'attend a ce que votre fonction accepte ce paramFtre Pour lire, Smarty s'attend a ce que votre fonction accepte ce param<EFBFBD>tre
par rTfTrence et que vous le remplissiez avec les donnTes du cache. Pour effacer, par r<EFBFBD>f<EFBFBD>rence et que vous le remplissiez avec les donn<EFBFBD>es du cache. Pour effacer,
il suffit de passer une variable fictive car cette derniFre n'est pas utilisTe. il suffit de passer une variable fictive car cette derni<EFBFBD>re n'est pas utilis<EFBFBD>e.
Le quatriFme paramFtre est le nom du fichier de template (utile pour Le quatri<EFBFBD>me param<EFBFBD>tre est le nom du fichier de template (utile pour
lire/Tcrire), le cinquiFme paramFtre est l'identifiant de cache (optionnel) lire/Tcrire), le cinqui<EFBFBD>me param<EFBFBD>tre est l'identifiant de cache (optionnel)
et le sixiFme est l'identifiant de compilation. et le sixi<EFBFBD>me est l'identifiant de compilation.
</para> </para>
<example> <example>
<title>exemple d'utilisation de MySQL pour la source du cache</title> <title>exemple d'utilisation de MySQL pour la source du cache</title>
@@ -246,7 +246,7 @@ function mysql_cache_handler($action, &amp;$smarty_obj, &amp;$cache_content, $tp
$db_name = 'SMARTY_CACHE'; $db_name = 'SMARTY_CACHE';
$use_gzip = false; $use_gzip = false;
// crTe un identifiant de cache unique // cr<EFBFBD>e un identifiant de cache unique
$CacheID = md5($tpl_file.$cache_id.$compile_id); $CacheID = md5($tpl_file.$cache_id.$compile_id);
if(! $link = mysql_pconnect($db_host, $db_user, $db_pass)) { if(! $link = mysql_pconnect($db_host, $db_user, $db_pass)) {
@@ -257,7 +257,7 @@ function mysql_cache_handler($action, &amp;$smarty_obj, &amp;$cache_content, $tp
switch ($action) { switch ($action) {
case 'read': case 'read':
// rTcupFre le cache dans la base de donnTes // r<EFBFBD>cup<EFBFBD>re le cache dans la base de donn<EFBFBD>es
$results = mysql_query("select CacheContents from CACHE_PAGES where CacheID='$CacheID'"); $results = mysql_query("select CacheContents from CACHE_PAGES where CacheID='$CacheID'");
if(!$results) { if(!$results) {
$smarty_obj-&gt;_trigger_error_msg("cache_handler: query failed."); $smarty_obj-&gt;_trigger_error_msg("cache_handler: query failed.");
@@ -272,7 +272,7 @@ function mysql_cache_handler($action, &amp;$smarty_obj, &amp;$cache_content, $tp
$return = $results; $return = $results;
break; break;
case 'write': case 'write':
// sauvegarde le cache dans la base de donnTes // sauvegarde le cache dans la base de donn<EFBFBD>es
if($use_gzip &amp;&amp; function_exists("gzcompress")) { if($use_gzip &amp;&amp; function_exists("gzcompress")) {
// compresse le contenu pour gagner de la place // compresse le contenu pour gagner de la place
@@ -290,7 +290,7 @@ function mysql_cache_handler($action, &amp;$smarty_obj, &amp;$cache_content, $tp
$return = $results; $return = $results;
break; break;
case 'clear': case 'clear':
// efface les donnTes du cache // efface les donn<EFBFBD>es du cache
if(empty($cache_id) &amp;&amp; empty($compile_id) &amp;&amp; empty($tpl_file)) { if(empty($cache_id) &amp;&amp; empty($compile_id) &amp;&amp; empty($tpl_file)) {
// les efface toutes // les efface toutes
$results = mysql_query("delete from CACHE_PAGES"); $results = mysql_query("delete from CACHE_PAGES");
@@ -320,19 +320,19 @@ function mysql_cache_handler($action, &amp;$smarty_obj, &amp;$cache_content, $tp
<sect1 id="template.resources"> <sect1 id="template.resources">
<title>Ressources</title> <title>Ressources</title>
<para> <para>
Les templates peuvent provenir d'une grande variTtT de ressources. Quand vous Les templates peuvent provenir d'une grande vari<EFBFBD>t<EFBFBD> de ressources. Quand vous
affichez ou rTcupTrez un template, ou quand vous incluez un template affichez ou r<EFBFBD>cup<EFBFBD>rez un template, ou quand vous incluez un template
dans un autre template, vous fournissez un type de ressource, suivi dans un autre template, vous fournissez un type de ressource, suivi
par le chemin appropriT et le nom du template. par le chemin appropri<EFBFBD> et le nom du template.
</para> </para>
<sect2 id="templates.from.template.dir"> <sect2 id="templates.from.template.dir">
<title>Templates depuis $template_dir</title> <title>Templates depuis $template_dir</title>
<para> <para>
Les templates du rTpertoire $template_dir n'ont pas Les templates du r<EFBFBD>pertoire $template_dir n'ont pas
besoin d'une ressource template, bien que vous puissiez utiliser besoin d'une ressource template, bien que vous puissiez utiliser
la ressource "file" pour Otre cohTrent. Vous n'avez qu'a fournir la ressource "file" pour Otre coh<EFBFBD>rent. Vous n'avez qu'a fournir
le chemin vers le template que vous voulez utiliser, relatif le chemin vers le template que vous voulez utiliser, relatif
au rTpertoire racine $template_dir. au r<EFBFBD>pertoire racine $template_dir.
</para> </para>
<example> <example>
<title>Utilisation de templates depuis $template_dir</title> <title>Utilisation de templates depuis $template_dir</title>
@@ -340,22 +340,22 @@ function mysql_cache_handler($action, &amp;$smarty_obj, &amp;$cache_content, $tp
// le script PHP // le script PHP
$smarty->display("index.tpl"); $smarty->display("index.tpl");
$smarty->display("admin/menu.tpl"); $smarty->display("admin/menu.tpl");
$smarty->display("file:admin/menu.tpl"); // le mOme que celui ci-dessus $smarty->display("file:admin/menu.tpl"); // le m<EFBFBD>me que celui ci-dessus
{* le template Smarty *} {* le template Smarty *}
{include file="index.tpl"} {include file="index.tpl"}
{include file="file:index.tpl"} {* le mOme que celui ci-dessus *}</programlisting> {include file="file:index.tpl"} {* le m<EFBFBD>me que celui ci-dessus *}</programlisting>
</example> </example>
</sect2> </sect2>
<sect2 id="templates.from.any.dir"> <sect2 id="templates.from.any.dir">
<title>Templates a partir de n'importe quel rTpertoire</title> <title>Templates a partir de n'importe quel r<EFBFBD>pertoire</title>
<para> <para>
Les templates en-dehors du rTpertoire $template_dir nTcessitent Les templates en-dehors du r<EFBFBD>pertoire $template_dir n<EFBFBD>cessitent
le type de ressource template, suivi du chemin absolu et du nom du le type de ressource template, suivi du chemin absolu et du nom du
template. template.
</para> </para>
<example> <example>
<title>utilisation d'un template depuis n'importe quel rTpertoire</title> <title>utilisation d'un template depuis n'importe quel r<EFBFBD>pertoire</title>
<programlisting> <programlisting>
// le script PHP // le script PHP
$smarty->display("file:/export/templates/index.tpl"); $smarty->display("file:/export/templates/index.tpl");
@@ -369,9 +369,9 @@ $smarty->display("file:/path/to/my/templates/menu.tpl");
<title>Chemin de fichiers Windows</title> <title>Chemin de fichiers Windows</title>
<para> <para>
Si vous utilisez Windows, les chemins de fichiers sont la plupart Si vous utilisez Windows, les chemins de fichiers sont la plupart
du temps sur un disque identifiT par une lettre (c:) au dTbut du chemin. du temps sur un disque identifi<EFBFBD> par une lettre (c:) au d<EFBFBD>but du chemin.
Assurez-vous de bien mettre "file:" dans le chemin pour Tviter des Assurez-vous de bien mettre "file:" dans le chemin pour Tviter des
conflits d'espace de nommage et obtenir les rTsultats escomptTs. conflits d'espace de nommage et obtenir les r<EFBFBD>sultats escompt<EFBFBD>s.
</para> </para>
<example> <example>
<title>utilisation de templates avec des chemins de fichiers Windows</title> <title>utilisation de templates avec des chemins de fichiers Windows</title>
@@ -389,20 +389,20 @@ $smarty->display("file:F:/path/to/my/templates/menu.tpl");
<sect2 id="templates.from.elsewhere"> <sect2 id="templates.from.elsewhere">
<title>Templates depuis d'autres sources</title> <title>Templates depuis d'autres sources</title>
<para> <para>
Vous pouvez rTcupTrer les templates a partir n'importe quelle Vous pouvez r<EFBFBD>cup<EFBFBD>rer les templates a partir n'importe quelle
source a laquelle vous avez accFs avec PHP : base de donnTes, source a laquelle vous avez acc<EFBFBD>s avec PHP : base de donn<EFBFBD>es,
sockets, LDAP et ainsi de suite. Il suffit d'Tcrire les fonctions sockets, LDAP et ainsi de suite. Il suffit d'Tcrire les fonctions
de ressource plugins et de les enregistrer auprFs de Smarty. de ressource plugins et de les enregistrer aupr<EFBFBD>s de Smarty.
</para> </para>
<para> <para>
Reportez-vous a la section <link linkend="plugins.resources">ressource plugins</link> Reportez-vous a la section <link linkend="plugins.resources">ressource plugins</link>
pour plus d'informations sur les fonctions que vous Otes censT fournir. pour plus d'informations sur les fonctions que vous Otes cens<EFBFBD> fournir.
</para> </para>
<note> <note>
<para> <para>
Notez que vous ne pouvez pas Tcraser la ressource <literal>file</literal> native, Notez que vous ne pouvez pas Tcraser la ressource <literal>file</literal> native,
toutefois, vous pouvez fournir une ressource qui rTcupFre un template depuis toutefois, vous pouvez fournir une ressource qui r<EFBFBD>cup<EFBFBD>re un template depuis
le systFme de fichier par un autre moyen en l'enregistrant sous un autre le syst<EFBFBD>me de fichier par un autre moyen en l'enregistrant sous un autre
nom de ressource. nom de ressource.
</para> </para>
</note> </note>
@@ -414,7 +414,7 @@ $smarty->display("file:F:/path/to/my/templates/menu.tpl");
// mettez ces fonctions quelque part dans votre application // mettez ces fonctions quelque part dans votre application
function db_get_template ($tpl_name, &amp;$tpl_source, &amp;$smarty_obj) function db_get_template ($tpl_name, &amp;$tpl_source, &amp;$smarty_obj)
{ {
// requOte BD pour rTcupTrer le template // requ<EFBFBD>te BD pour r<EFBFBD>cup<EFBFBD>rer le template
// et remplir $tpl_source // et remplir $tpl_source
$sql = new SQL; $sql = new SQL;
$sql->query("select tpl_source $sql->query("select tpl_source
@@ -430,7 +430,7 @@ function db_get_template ($tpl_name, &amp;$tpl_source, &amp;$smarty_obj)
function db_get_timestamp($tpl_name, &amp;$tpl_timestamp, &amp;$smarty_obj) function db_get_timestamp($tpl_name, &amp;$tpl_timestamp, &amp;$smarty_obj)
{ {
// requOte BD pour remplir $tpl_timestamp // requ<EFBFBD>te BD pour remplir $tpl_timestamp
$sql = new SQL; $sql = new SQL;
$sql->query("select tpl_timestamp $sql->query("select tpl_timestamp
from my_table from my_table
@@ -451,7 +451,7 @@ function db_get_secure($tpl_name, &amp;$smarty_obj)
function db_get_trusted($tpl_name, &amp;$smarty_obj) function db_get_trusted($tpl_name, &amp;$smarty_obj)
{ {
// pas utilisTe pour les templates dans notre cas // pas utilis<EFBFBD>e pour les templates dans notre cas
} }
// enregistre le nom de ressource "db" // enregistre le nom de ressource "db"
@@ -469,15 +469,15 @@ $smarty->display("db:index.tpl");
</sect2> </sect2>
<sect2 id="default.template.handler.function"> <sect2 id="default.template.handler.function">
<title>Fonction de gestion de template par dTfaut</title> <title>Fonction de gestion de template par d<EFBFBD>faut</title>
<para> <para>
Vous pouvez spTcifier une fonction qui sera utilisTe pour Vous pouvez sp<EFBFBD>cifier une fonction qui sera utilis<EFBFBD>e pour
rTcupTrer le contenu d'un template dans le cas o<> le template r<EFBFBD>cup<EFBFBD>rer le contenu d'un template dans le cas o<> le template
ne peut pas Otre rTcupTrT depuis sa ressource. Une utilisation possible est ne peut pas Otre r<EFBFBD>cup<EFBFBD>r<EFBFBD> depuis sa ressource. Une utilisation possible est
la crTation de templates a la volTe. la cr<EFBFBD>ation de templates a la vol<EFBFBD>e.
</para> </para>
<example> <example>
<title>utilisation de la fonction de gestion de template par dTfaut</title> <title>utilisation de la fonction de gestion de template par d<EFBFBD>faut</title>
<programlisting> <programlisting>
&lt;?php &lt;?php
// mettez cette fonction quelque part dans votre application // mettez cette fonction quelque part dans votre application
@@ -486,7 +486,7 @@ function make_template ($resource_type, $resource_name, &amp;$template_source, &
{ {
if( $resource_type == 'file' ) { if( $resource_type == 'file' ) {
if ( ! is_readable ( $resource_name )) { if ( ! is_readable ( $resource_name )) {
// crTe le fichier de template et renvoie le contenu // cr<EFBFBD>e le fichier de template et renvoie le contenu
$template_source = "This is a new template."; $template_source = "This is a new template.";
$template_timestamp = time(); $template_timestamp = time();
$smarty_obj->_write_file($resource_name,$template_source); $smarty_obj->_write_file($resource_name,$template_source);
@@ -498,7 +498,7 @@ function make_template ($resource_type, $resource_name, &amp;$template_source, &
} }
} }
// rTgle la fonction par dTfaut // r<EFBFBD>gle la fonction par d<EFBFBD>faut
$smarty->default_template_handler_func = 'make_template'; $smarty->default_template_handler_func = 'make_template';
?&gt;</programlisting> ?&gt;</programlisting>
</example> </example>
@@ -524,4 +524,4 @@ End:
vim600: syn=xml fen fdm=syntax fdl=2 si vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml vim: et tw=78 syn=sgml
vi: ts=1 sw=1 vi: ts=1 sw=1
--> -->

View File

@@ -22,21 +22,21 @@
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour ajouter un TlTment a un tableau assignT. Si vous utilisez Utilis<EFBFBD>e pour ajouter un Tl<EFBFBD>ment a un tableau assign<EFBFBD>. Si vous utilisez
cette fonction avec une chaene de caractFre, elle est convertie en cette fonction avec une chaene de caract<EFBFBD>re, elle est convertie en
tableau auquel on ajoute ensuite l'TlTment. Vous pouvez explicitement passer tableau auquel on ajoute ensuite l'Tl<EFBFBD>ment. Vous pouvez explicitement passer
des paires nom/valeur. Si vous passez le troisiFme paramFtre des paires nom/valeur. Si vous passez le troisi<EFBFBD>me param<EFBFBD>tre
(optionel) a vrai, la valeur sera fusionnTe avec le tableau plut(t que (optionel) a vrai, la valeur sera fusionn<EFBFBD>e avec le tableau plut(t que
d'Otre ajoutTe. d'Otre ajout<EFBFBD>e.
</para> </para>
<note> <note>
<title>Note technique</title> <title>Note technique</title>
<para> <para>
Le paramFtre de fusion respecte les clTs des tableaux, ainsi si vous Le param<EFBFBD>tre de fusion respecte les cl<EFBFBD>s des tableaux, ainsi si vous
fusionnez deux tableaux indexTs numTriquement, ils pourront s'Tcraser fusionnez deux tableaux index<EFBFBD>s num<EFBFBD>riquement, ils pourront s'Tcraser
l'un l'autre ou donner des clTs qui ne se suivent pas. Cela diffFre l'un l'autre ou donner des cl<EFBFBD>s qui ne se suivent pas. Cela diff<EFBFBD>re
donc de la fonction PHP array_merge() qui supprime les clTs numTriques donc de la fonction PHP array_merge() qui supprime les cl<EFBFBD>s num<EFBFBD>riques
et les renumTrote. et les renum<EFBFBD>rote.
</para> </para>
</note> </note>
<example> <example>
@@ -66,23 +66,23 @@ $smarty->append(array("city" => "Lincoln","state" => "Nebraska"));</programlisti
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour ajouter des valeurs a un template par rTfTrence plut(t que Utilis<EFBFBD>e pour ajouter des valeurs a un template par r<EFBFBD>f<EFBFBD>rence plut(t que
par copie. Si vous ajoutez une variable par rTfTrence puis changez sa par copie. Si vous ajoutez une variable par r<EFBFBD>f<EFBFBD>rence puis changez sa
valeur, le changement est aussi rTpercutT sur la valeur assignTe. valeur, le changement est aussi r<EFBFBD>percut<EFBFBD> sur la valeur assign<EFBFBD>e.
Pour les objets, append_by_ref ne fait pas de copie en mTmoire de l'objet Pour les objets, append_by_ref ne fait pas de copie en m<EFBFBD>moire de l'objet
assignT. Voir la documentation PHP pour plus d'informations sur les assign<EFBFBD>. Voir la documentation PHP pour plus d'informations sur les
rTfTrences de variable. r<EFBFBD>f<EFBFBD>rences de variable.
Si vous passez le troisiFme paramFtre a vrai, la valeur sera fusionnTe Si vous passez le troisi<EFBFBD>me param<EFBFBD>tre a vrai, la valeur sera fusionn<EFBFBD>e
avec le tableau courant plut(t que d'Otre ajoutTe. avec le tableau courant plut(t que d'Otre ajout<EFBFBD>e.
</para> </para>
<note> <note>
<title>Note technique</title> <title>Note technique</title>
<para> <para>
Le paramFtre de fusion respecte les clTs des tableaux, ainsi si vous Le param<EFBFBD>tre de fusion respecte les cl<EFBFBD>s des tableaux, ainsi si vous
fusionnez deux tableaux indexTs numTriquement, ils pourront s'Tcraser fusionnez deux tableaux index<EFBFBD>s num<EFBFBD>riquement, ils pourront s'Tcraser
l'un l'autre ou donner des clTs qui ne se suivent pas. Cela diffFre l'un l'autre ou donner des cl<EFBFBD>s qui ne se suivent pas. Cela diff<EFBFBD>re
donc de la fonction PHP array_merge() qui supprime les clTs numTriques donc de la fonction PHP array_merge() qui supprime les cl<EFBFBD>s num<EFBFBD>riques
et les renumTrote. et les renum<EFBFBD>rote.
</para> </para>
</note> </note>
<example> <example>
@@ -107,7 +107,7 @@ $smarty->append_by_ref("Address",$address);</programlisting>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour assigner des valeurs aux templates. Vous pouvez Utilis<EFBFBD>e pour assigner des valeurs aux templates. Vous pouvez
explicitement passer des paires nom/valeur, ou des tableaux explicitement passer des paires nom/valeur, ou des tableaux
associatifs contenant des paires nom/valeur. associatifs contenant des paires nom/valeur.
</para> </para>
@@ -132,18 +132,18 @@ $smarty->assign(array("city" => "Lincoln","state" => "Nebraska"));</programlisti
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour assigner des valeurs aux templates par rTfTrence plut(t Utilis<EFBFBD>e pour assigner des valeurs aux templates par r<EFBFBD>f<EFBFBD>rence plut(t
que par copie. RTfTrez-vous au manuel PHP pour une explication plus prTcise que par copie. RTf<EFBFBD>rez-vous au manuel PHP pour une explication plus pr<EFBFBD>cise
sur les rTfTrences des variables. sur les r<EFBFBD>f<EFBFBD>rences des variables.
</para> </para>
<note> <note>
<title>Note technique</title> <title>Note technique</title>
<para> <para>
Si vous assignez une variable par rTfTrence puis changez sa Si vous assignez une variable par r<EFBFBD>f<EFBFBD>rence puis changez sa
valeur, le changement est aussi rTpercutT sur la valeur assignTe. valeur, le changement est aussi r<EFBFBD>percut<EFBFBD> sur la valeur assign<EFBFBD>e.
Pour les objets, assign_by_ref ne fait pas de copie en mTmoire de l'objet Pour les objets, assign_by_ref ne fait pas de copie en m<EFBFBD>moire de l'objet
assignT. RTfTrez-vous au manuel PHP pour une explication plus prTcise sur assign<EFBFBD>. RTf<EFBFBD>rez-vous au manuel PHP pour une explication plus pr<EFBFBD>cise sur
les rTfTrences de variable. les r<EFBFBD>f<EFBFBD>rences de variable.
</para> </para>
</note> </note>
<example> <example>
@@ -163,12 +163,12 @@ $smarty->assign_by_ref("Address",$address);</programlisting>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour effacer les valeurs de toutes les variables assignTes. Utilis<EFBFBD>e pour effacer les valeurs de toutes les variables assign<EFBFBD>es.
</para> </para>
<example> <example>
<title>clear_all_assign</title> <title>clear_all_assign</title>
<programlisting> <programlisting>
// efface toutes les variables assignTes // efface toutes les variables assign<EFBFBD>es
$smarty->clear_all_assign();</programlisting> $smarty->clear_all_assign();</programlisting>
</example> </example>
</sect1> </sect1>
@@ -181,9 +181,9 @@ $smarty->clear_all_assign();</programlisting>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour effacer les fichiers de cache des templates. Vous pouvez passer un Utilis<EFBFBD>e pour effacer les fichiers de cache des templates. Vous pouvez passer un
paramFtre optionnel afin d'indiquer l'Gge minimun que doivent avoir param<EFBFBD>tre optionnel afin d'indiquer l'Gge minimun que doivent avoir
les fichiers de cache pour qu'ils soient effacTs. les fichiers de cache pour qu'ils soient effac<EFBFBD>s.
</para> </para>
<example> <example>
<title>clear_all_cache</title> <title>clear_all_cache</title>
@@ -201,7 +201,7 @@ $smarty->clear_all_cache();</programlisting>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
Efface la valeur d'une variable assignTe. Il peut s'agir Efface la valeur d'une variable assign<EFBFBD>e. Il peut s'agir
d'une simple valeur ou d'un tableau de valeur. d'une simple valeur ou d'un tableau de valeur.
</para> </para>
<example> <example>
@@ -224,17 +224,17 @@ $smarty->clear_assign(array("Name","Address","Zip"));</programlisting>
<methodparam choice="opt"><type>string</type><parameter>expire time</parameter></methodparam> <methodparam choice="opt"><type>string</type><parameter>expire time</parameter></methodparam>
</methodsynopsis> </methodsynopsis>
<para> <para>
UtilisTe pour nettoyer le(s) fichier(s) de cache d'un template en particulier. Utilis<EFBFBD>e pour nettoyer le(s) fichier(s) de cache d'un template en particulier.
Si vous avez plusieurs fichiers de cache pour ce template vous Si vous avez plusieurs fichiers de cache pour ce template vous
pouvez en spTcifier un en particulier en passant son identifiant pouvez en sp<EFBFBD>cifier un en particulier en passant son identifiant
en deuxiFme paramFtre. Vous pouvez aussi passer un identifiant en deuxi<EFBFBD>me param<EFBFBD>tre. Vous pouvez aussi passer un identifiant
de compilation en troisiFme paramFtre. Vous pouvez grouper des de compilation en troisi<EFBFBD>me param<EFBFBD>tre. Vous pouvez grouper des
templates ensemble afin qu'ils puissent Otre supprimTs en groupe. templates ensemble afin qu'ils puissent Otre supprim<EFBFBD>s en groupe.
RTfTrez-vous a la section sur le RTf<EFBFBD>rez-vous a la section sur le
<link linkend="caching">cache</link> <link linkend="caching">cache</link>
pour plus d'informations. Vous pouvez passer un quatriFme paramFtre pour plus d'informations. Vous pouvez passer un quatri<EFBFBD>me param<EFBFBD>tre
pour indiquer un Gge minimum en secondes que le fichier en cache doit pour indiquer un Gge minimum en secondes que le fichier en cache doit
avoir avant d'Otre effacT. avoir avant d'Otre effac<EFBFBD>.
</para> </para>
<example> <example>
<title>clear_cache</title> <title>clear_cache</title>
@@ -255,17 +255,17 @@ $smarty->clear_cache("index.tpl","CACHEID");</programlisting>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour effacer la version compilTe du template spTcifiT ou Utilis<EFBFBD>e pour effacer la version compil<EFBFBD>e du template sp<EFBFBD>cifi<EFBFBD> ou
de tous les templates si aucun n'est spTcifiT. Cette fonction de tous les templates si aucun n'est sp<EFBFBD>cifi<EFBFBD>. Cette fonction
est destinTe a un usage avancT et n'est pas habituellement utilisTe. est destin<EFBFBD>e a un usage avanc<EFBFBD> et n'est pas habituellement utilis<EFBFBD>e.
</para> </para>
<example> <example>
<title>clear_compiled_tpl</title> <title>clear_compiled_tpl</title>
<programlisting> <programlisting>
// efface la version compilTe du template spTcifiT // efface la version compil<EFBFBD>e du template sp<EFBFBD>cifi<EFBFBD>
$smarty->clear_compiled_tpl("index.tpl"); $smarty->clear_compiled_tpl("index.tpl");
// efface tout le contenu du rTpertoire des templates compilTs // efface tout le contenu du r<EFBFBD>pertoire des templates compil<EFBFBD>s
$smarty->clear_compiled_tpl();</programlisting> $smarty->clear_compiled_tpl();</programlisting>
</example> </example>
</sect1> </sect1>
@@ -276,14 +276,14 @@ $smarty->clear_compiled_tpl();</programlisting>
<methodparam choice="opt"><type>string</type><parameter>var</parameter></methodparam> <methodparam choice="opt"><type>string</type><parameter>var</parameter></methodparam>
</methodsynopsis> </methodsynopsis>
<para> <para>
UtilisTe pour effacer toutes les variables de configuration s'Ttant Utilis<EFBFBD>e pour effacer toutes les variables de configuration s'Ttant
vues assigner une valeur. Si une variable est spTcifiTe, seule cette vues assigner une valeur. Si une variable est sp<EFBFBD>cifi<EFBFBD>e, seule cette
variable est effacTe. variable est effac<EFBFBD>e.
</para> </para>
<example> <example>
<title>clear_config</title> <title>clear_config</title>
<programlisting> <programlisting>
// efface toutes les variables de configuration assignTes // efface toutes les variables de configuration assign<EFBFBD>es
$smarty->clear_config(); $smarty->clear_config();
// efface une seule variable // efface une seule variable
@@ -298,7 +298,7 @@ $smarty->clear_config('foobar');</programlisting>
<methodparam choice="opt"><type>string</type><parameter>section</parameter></methodparam> <methodparam choice="opt"><type>string</type><parameter>section</parameter></methodparam>
</methodsynopsis> </methodsynopsis>
<para> <para>
UtilisTe pour charger des donnTes d'un fichier de config et les Utilis<EFBFBD>e pour charger des donn<EFBFBD>es d'un fichier de config et les
assigner a un template. Cette fonction fonctionne exactement comme assigner a un template. Cette fonction fonctionne exactement comme
la fonction de template <link la fonction de template <link
linkend="language.function.config.load">config_load</link>. linkend="language.function.config.load">config_load</link>.
@@ -306,11 +306,11 @@ $smarty->clear_config('foobar');</programlisting>
<note> <note>
<title>Note technique</title> <title>Note technique</title>
<para> <para>
Comme pour Smarty 2.4.0, les variables de templates assignTes Comme pour Smarty 2.4.0, les variables de templates assign<EFBFBD>es
sont conservTes entre chaque appel a fetch et display. sont conserv<EFBFBD>es entre chaque appel a fetch et display.
Les variables de configuration chargTes avec config_load sont Les variables de configuration charg<EFBFBD>es avec config_load sont
globales. Les fichiers de config sont aussi compilTs pour une globales. Les fichiers de config sont aussi compil<EFBFBD>s pour une
exTcution plus rapide et respecte les rTglages de <link ex<EFBFBD>cution plus rapide et respecte les r<EFBFBD>glages de <link
linkend="variable.force.compile">force_compile</link> et de <link linkend="variable.force.compile">force_compile</link> et de <link
linkend="variable.compile.check">compile_check</link>. linkend="variable.compile.check">compile_check</link>.
</para> </para>
@@ -334,21 +334,21 @@ $smarty->config_load('my.conf','foobar');</programlisting>
<methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam> <methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam>
</methodsynopsis> </methodsynopsis>
<para> <para>
UtilisTe pour afficher un template. Il faut fournir un type et un Utilis<EFBFBD>e pour afficher un template. Il faut fournir un type et un
chemin de <link chemin de <link
linkend="template.resources">ressource template</link> linkend="template.resources">ressource template</link>
valides. Vous pouvez passer en second paramFtre un identifiant valides. Vous pouvez passer en second param<EFBFBD>tre un identifiant
de fichier de cache. Reportez-vous a la section de fichier de cache. Reportez-vous a la section
<link linkend="caching">cache</link> pour plus de renseignements. <link linkend="caching">cache</link> pour plus de renseignements.
</para> </para>
<para> <para>
Le troisiFme paramFtre optionnel est un identifiant de compilation. Le troisi<EFBFBD>me param<EFBFBD>tre optionnel est un identifiant de compilation.
Cela s'avFre utile quand vous voulez compiler diffTrentes versions Cela s'av<EFBFBD>re utile quand vous voulez compiler diff<EFBFBD>rentes versions
d'un mOme template, pour par exemple avoir des templates d'un m<EFBFBD>me template, pour par exemple avoir des templates
compilTs sTparTs pour diffTrents langages. Une autre utilitT de ce compil<EFBFBD>s s<EFBFBD>par<EFBFBD>s pour diff<EFBFBD>rents langages. Une autre utilit<EFBFBD> de ce
paramFtre est le cas o<> vous utilisez plus d'un $template_dir mais un seul param<EFBFBD>tre est le cas o<> vous utilisez plus d'un $template_dir mais un seul
$compile_dir, car certains templates avec le mOme nom s'Tcraseraient $compile_dir, car certains templates avec le m<EFBFBD>me nom s'Tcraseraient
entre eux. Vous pouvez aussi rTgler la variable <link entre eux. Vous pouvez aussi r<EFBFBD>gler la variable <link
linkend="variable.compile.id">$compile_id</link> une seule linkend="variable.compile.id">$compile_id</link> une seule
fois au lieu de la passer a chaque appel. fois au lieu de la passer a chaque appel.
</para> </para>
@@ -359,12 +359,12 @@ include("Smarty.class.php");
$smarty = new Smarty; $smarty = new Smarty;
$smarty->caching = true; $smarty->caching = true;
// ne fait un appel a la base de donnTes que si le fichier // ne fait un appel a la base de donn<EFBFBD>es que si le fichier
// de cache n'existe pas // de cache n'existe pas
if(!$smarty->is_cached("index.tpl")) if(!$smarty->is_cached("index.tpl"))
{ {
// quelques donnTes // quelques donn<EFBFBD>es
$address = "245 N 50th"; $address = "245 N 50th";
$db_data = array( $db_data = array(
"City" => "Lincoln", "City" => "Lincoln",
@@ -384,7 +384,7 @@ $smarty->display("index.tpl");</programlisting>
<para> <para>
Utilisez la syntaxe des <link Utilisez la syntaxe des <link
linkend="template.resources">ressources templates</link> linkend="template.resources">ressources templates</link>
pour afficher des fichiers en-dehors du rTpertoire pour afficher des fichiers en-dehors du r<EFBFBD>pertoire
$template_dir $template_dir
</para> </para>
@@ -397,7 +397,7 @@ $smarty->display("/usr/local/include/templates/header.tpl");
// chemin absolu (pareil) // chemin absolu (pareil)
$smarty->display("file:/usr/local/include/templates/header.tpl"); $smarty->display("file:/usr/local/include/templates/header.tpl");
// chemin absolu Windows (on DOIT utiliser le prTfixe "file:") // chemin absolu Windows (on DOIT utiliser le pr<EFBFBD>fixe "file:")
$smarty->display("file:C:/www/pub/templates/header.tpl"); $smarty->display("file:C:/www/pub/templates/header.tpl");
// inclue a partir de la ressource template "db" // inclue a partir de la ressource template "db"
@@ -414,21 +414,21 @@ $smarty->display("db:header.tpl");</programlisting>
<methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam> <methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam>
</methodsynopsis> </methodsynopsis>
<para> <para>
UtilisTe pour renvoyer le rTsultat du template plut(t que de l'afficher. Utilis<EFBFBD>e pour renvoyer le r<EFBFBD>sultat du template plut(t que de l'afficher.
Il faut passer un type et un chemin de <link Il faut passer un type et un chemin de <link
linkend="template.resources">ressource template</link> linkend="template.resources">ressource template</link>
valides. Vous pouvez passer un identifiant de cache en deuxiFme valides. Vous pouvez passer un identifiant de cache en deuxi<EFBFBD>me
paramFtre. Reportez-vous a la section <link linkend="caching">cache param<EFBFBD>tre. Reportez-vous a la section <link linkend="caching">cache
</link> pour plus de renseignements. </link> pour plus de renseignements.
</para> </para>
<para> <para>
Un troisiFme paramFtre optionnel est un identifiant de compilation. Un troisi<EFBFBD>me param<EFBFBD>tre optionnel est un identifiant de compilation.
Cela s'avFre utile quand vous voulez compiler diffTrentes versions Cela s'av<EFBFBD>re utile quand vous voulez compiler diff<EFBFBD>rentes versions
d'un mOme template, pour par exemple avoir des templates d'un m<EFBFBD>me template, pour par exemple avoir des templates
compilTs sTparTs pour diffTrents langages. Une autre utilitT de ce compil<EFBFBD>s s<EFBFBD>par<EFBFBD>s pour diff<EFBFBD>rents langages. Une autre utilit<EFBFBD> de ce
paramFtre est le cas o<> vous utilisez plus d'un $template_dir param<EFBFBD>tre est le cas o<> vous utilisez plus d'un $template_dir
mais un seul $compile_dir, car certains templates avec le mOme nom mais un seul $compile_dir, car certains templates avec le m<EFBFBD>me nom
s'Tcraseraient entre eux. Vous pouvez aussi rTgler la variable <link s'Tcraseraient entre eux. Vous pouvez aussi r<EFBFBD>gler la variable <link
linkend="variable.compile.id">$compile_id</link> une seule linkend="variable.compile.id">$compile_id</link> une seule
fois plut(t que de la passer a chaque appel. fois plut(t que de la passer a chaque appel.
</para> </para>
@@ -440,12 +440,12 @@ $smarty = new Smarty;
$smarty->caching = true; $smarty->caching = true;
// ne fait un appel a la base de donnTes que si le fichier // ne fait un appel a la base de donn<EFBFBD>es que si le fichier
// de cache n'existe pas // de cache n'existe pas
if(!$smarty->is_cached("index.tpl")) if(!$smarty->is_cached("index.tpl"))
{ {
// quelques donnTes // quelques donn<EFBFBD>es
$address = "245 N 50th"; $address = "245 N 50th";
$db_data = array( $db_data = array(
"City" => "Lincoln", "City" => "Lincoln",
@@ -459,7 +459,7 @@ if(!$smarty->is_cached("index.tpl"))
} }
// rTcupFre le rTsultat // r<EFBFBD>cup<EFBFBD>re le r<EFBFBD>sultat
$output = $smarty->fetch("index.tpl"); $output = $smarty->fetch("index.tpl");
// fait quelque chose avec $output // fait quelque chose avec $output
@@ -474,17 +474,17 @@ echo $output;</programlisting>
<methodparam choice="opt"><type>string</type><parameter>varname</parameter></methodparam> <methodparam choice="opt"><type>string</type><parameter>varname</parameter></methodparam>
</methodsynopsis> </methodsynopsis>
<para> <para>
Retourne la valeur de la variable de configuration passTe en paramFtre. Retourne la valeur de la variable de configuration pass<EFBFBD>e en param<EFBFBD>tre.
Si aucun paramFtre n'est donnT, un tableau de toutes les variables de Si aucun param<EFBFBD>tre n'est donn<EFBFBD>, un tableau de toutes les variables de
configuration chargTes est renvoyT. configuration charg<EFBFBD>es est renvoy<EFBFBD>.
</para> </para>
<example> <example>
<title>get_config_vars</title> <title>get_config_vars</title>
<programlisting> <programlisting>
// rTcupFre la variable de configuration chargTe 'foo' // r<EFBFBD>cup<EFBFBD>re la variable de configuration charg<EFBFBD>e 'foo'
$foo = $smarty->get_config_vars('foo'); $foo = $smarty->get_config_vars('foo');
// rTcupFre toutes les variables de configuration chargTes // r<EFBFBD>cup<EFBFBD>re toutes les variables de configuration charg<EFBFBD>es
$config_vars = $smarty->get_config_vars(); $config_vars = $smarty->get_config_vars();
// les affiche a l'Tcran // les affiche a l'Tcran
@@ -500,8 +500,8 @@ print_r($config_vars);</programlisting>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
Retourne la rTfTrence d'un objet enregistrT. Utile quand vous Retourne la r<EFBFBD>f<EFBFBD>rence d'un objet enregistr<EFBFBD>. Utile quand vous
voulez accTder directement a un objet enregistrT avec une voulez acc<EFBFBD>der directement a un objet enregistr<EFBFBD> avec une
fonction utilisateur. fonction utilisateur.
</para> </para>
<example> <example>
@@ -509,9 +509,9 @@ print_r($config_vars);</programlisting>
<programlisting> <programlisting>
function smarty_block_foo($params, &amp;$smarty) { function smarty_block_foo($params, &amp;$smarty) {
if (isset[$params['object']]) { if (isset[$params['object']]) {
// rTcupFre la rTfTrence de l'objet enregistrT // r<EFBFBD>cup<EFBFBD>re la r<EFBFBD>f<EFBFBD>rence de l'objet enregistr<EFBFBD>
$obj_ref =&amp; $smarty->get_registered_object($params['object']); $obj_ref =&amp; $smarty->get_registered_object($params['object']);
// $obj_ref est maintenant une rTfTrence vers l'objet // $obj_ref est maintenant une r<EFBFBD>f<EFBFBD>rence vers l'objet
} }
}</programlisting> }</programlisting>
</example> </example>
@@ -523,18 +523,18 @@ function smarty_block_foo($params, &amp;$smarty) {
<methodparam choice="opt"><type>string</type><parameter>varname</parameter></methodparam> <methodparam choice="opt"><type>string</type><parameter>varname</parameter></methodparam>
</methodsynopsis> </methodsynopsis>
<para> <para>
Retourne la valeur assignTe passTe en paramFtre. Si aucun paramFtre Retourne la valeur assign<EFBFBD>e pass<EFBFBD>e en param<EFBFBD>tre. Si aucun param<EFBFBD>tre
n'est donnT, un tableau de toutes les variables assignTes est n'est donn<EFBFBD>, un tableau de toutes les variables assign<EFBFBD>es est
renvoyT. renvoy<EFBFBD>.
</para> </para>
<example> <example>
<title>get_template_vars</title> <title>get_template_vars</title>
<programlisting> <programlisting>
// rTcupFre la variable 'foo' assignTe au template // r<EFBFBD>cup<EFBFBD>re la variable 'foo' assign<EFBFBD>e au template
// get assigned template var 'foo' // get assigned template var 'foo'
$foo = $smarty->get_template_vars('foo'); $foo = $smarty->get_template_vars('foo');
// rTcupFre toutes les variables assignTes a ce template // r<EFBFBD>cup<EFBFBD>re toutes les variables assign<EFBFBD>es a ce template
$tpl_vars = $smarty->get_template_vars(); $tpl_vars = $smarty->get_template_vars();
// les affiche a l'Tcran // les affiche a l'Tcran
@@ -561,14 +561,14 @@ print_r($tpl_vars);</programlisting>
$smarty->caching = true; $smarty->caching = true;
if(!$smarty->is_cached("index.tpl")) { if(!$smarty->is_cached("index.tpl")) {
// faire des requOtes base de donnTes et assigner // faire des requ<EFBFBD>tes base de donn<EFBFBD>es et assigner
// des variables ici. // des variables ici.
} }
$smarty->display("index.tpl");</programlisting> $smarty->display("index.tpl");</programlisting>
</example> </example>
<para> <para>
Vous pouvez aussi passer en second paramFtre un identifiant Vous pouvez aussi passer en second param<EFBFBD>tre un identifiant
de cache au cas o<> vous voudriez plusieurs fichiers de cache de cache au cas o<> vous voudriez plusieurs fichiers de cache
pour ce template. pour ce template.
</para> </para>
@@ -578,7 +578,7 @@ $smarty->display("index.tpl");</programlisting>
$smarty->caching = true; $smarty->caching = true;
if(!$smarty->is_cached("index.tpl","FrontPage")) { if(!$smarty->is_cached("index.tpl","FrontPage")) {
// faire des requOtes base de donnTes et assigner // faire des requ<EFBFBD>tes base de donn<EFBFBD>es et assigner
// des variables ici. // des variables ici.
} }
@@ -595,17 +595,17 @@ $smarty->display("index.tpl","FrontPage");</programlisting>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
Cette fonction peut Otre utilisTe pour charger un plugin Cette fonction peut Otre utilis<EFBFBD>e pour charger un plugin
de filtrage. Le premier argument spTcifie le type du filtre de filtrage. Le premier argument sp<EFBFBD>cifie le type du filtre
et peut prendre l'une des valeurs suivantes : 'pre', 'post' et peut prendre l'une des valeurs suivantes : 'pre', 'post'
ou 'output'. Le second argument spTcifie le nom du plugin ou 'output'. Le second argument sp<EFBFBD>cifie le nom du plugin
de filtrage, par exemple 'trim'. de filtrage, par exemple 'trim'.
</para> </para>
<example> <example>
<title>Chargement de plugins de filtrage</title> <title>Chargement de plugins de filtrage</title>
<programlisting> <programlisting>
$smarty->load_filter('pre', 'trim'); // charge le filtre 'trim' de type 'pre' $smarty->load_filter('pre', 'trim'); // charge le filtre 'trim' de type 'pre'
$smarty->load_filter('pre', 'datefooter'); // charge un autre filtre de type 'pre' appelT 'datefooter' $smarty->load_filter('pre', 'datefooter'); // charge un autre filtre de type 'pre' appel<EFBFBD> 'datefooter'
$smarty->load_filter('output', 'compress'); // charge le filtre 'compress' de type 'output'</programlisting> $smarty->load_filter('output', 'compress'); // charge le filtre 'compress' de type 'output'</programlisting>
</example> </example>
</sect1> </sect1>
@@ -619,9 +619,9 @@ $smarty->load_filter('output', 'compress'); // charge le filtre 'compress' de ty
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTclarrer dynamiquement des plugins de fonction Utilis<EFBFBD>e pour d<EFBFBD>clarrer dynamiquement des plugins de fonction
de blocs. Il faut passer en paramFtre le nom de la fonction de blocs. Il faut passer en param<EFBFBD>tre le nom de la fonction
de blocs, suivi du nom de la fonction PHP qui l'implTmente. de blocs, suivi du nom de la fonction PHP qui l'impl<EFBFBD>mente.
</para> </para>
<example> <example>
<title>register_block</title> <title>register_block</title>
@@ -653,10 +653,10 @@ function do_translation ($params, $content, &amp;$smarty) {
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTclarer dynamiquement un plugin de fonction Utilis<EFBFBD>e pour d<EFBFBD>clarer dynamiquement un plugin de fonction
de compilation. Il faut passer en paramFtres le nom de la fonction de compilation. Il faut passer en param<EFBFBD>tres le nom de la fonction
de compilation, suivi par la fonction PHP qui de compilation, suivi par la fonction PHP qui
l'implTmente. l'impl<EFBFBD>mente.
</para> </para>
</sect1> </sect1>
<sect1 id="api.register.function"> <sect1 id="api.register.function">
@@ -669,9 +669,9 @@ function do_translation ($params, $content, &amp;$smarty) {
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTclarer dynamiquement des plugins de fonction Utilis<EFBFBD>e pour d<EFBFBD>clarer dynamiquement des plugins de fonction
de templates. Il faut passer en paramFtres le nom de la fonction de templates. Il faut passer en param<EFBFBD>tres le nom de la fonction
de templates, suivi par le nom de la fonction PHP qui l'implTmente. de templates, suivi par le nom de la fonction PHP qui l'impl<EFBFBD>mente.
</para> </para>
<example> <example>
<title>register_function</title> <title>register_function</title>
@@ -700,9 +700,9 @@ function print_current_date ($params) {
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTclarer dynamiquement un plugin de modificateur. Utilis<EFBFBD>e pour d<EFBFBD>clarer dynamiquement un plugin de modificateur.
Il faut passer en paramFtre le nom du modificateur de variables, Il faut passer en param<EFBFBD>tre le nom du modificateur de variables,
suivi de la fonction PHP qui l'implTmente. suivi de la fonction PHP qui l'impl<EFBFBD>mente.
</para> </para>
<example> <example>
<title>register_modifier</title> <title>register_modifier</title>
@@ -726,7 +726,7 @@ $smarty->register_modifier("sslash","stripslashes");
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour enregistrer un objet a utiliser dans un template. Utilis<EFBFBD>e pour enregistrer un objet a utiliser dans un template.
Reportez-vous a la section Reportez-vous a la section
<link linkend="advanced.features.objects">objet</link> de <link linkend="advanced.features.objects">objet</link> de
ce manuel pour des exemples. ce manuel pour des exemples.
@@ -741,8 +741,8 @@ $smarty->register_modifier("sslash","stripslashes");
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTclarer dynamiquement des filtres de sortie, pour Utilis<EFBFBD>e pour d<EFBFBD>clarer dynamiquement des filtres de sortie, pour
agir sur la sortie d'un template avant qu'elle ne soit affichTe. agir sur la sortie d'un template avant qu'elle ne soit affich<EFBFBD>e.
Reportez-vous a la section <link linkend="advanced.features.outputfilters"> Reportez-vous a la section <link linkend="advanced.features.outputfilters">
filtres de sortie</link> pour plus d'information sur le sujet. filtres de sortie</link> pour plus d'information sur le sujet.
</para> </para>
@@ -756,11 +756,11 @@ $smarty->register_modifier("sslash","stripslashes");
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTclarer dynamiquement des filtres de post-compilation pour y faire Utilis<EFBFBD>e pour d<EFBFBD>clarer dynamiquement des filtres de post-compilation pour y faire
passer des templates une fois qu'ils ont TtT compilTs. Reportez-vous passer des templates une fois qu'ils ont Tt<EFBFBD> compil<EFBFBD>s. Reportez-vous
a la section a la section
<link linkend="advanced.features.postfilters">filtres de post-compilation de templates</link> <link linkend="advanced.features.postfilters">filtres de post-compilation de templates</link>
pour avoir plus de renseignements sur la faton de paramTtrer les fonctions pour avoir plus de renseignements sur la faton de param<EFBFBD>trer les fonctions
de post-compilation. de post-compilation.
</para> </para>
</sect1> </sect1>
@@ -773,12 +773,12 @@ $smarty->register_modifier("sslash","stripslashes");
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTclarer dynamiquement des filtres de prT-compilation pour y faire Utilis<EFBFBD>e pour d<EFBFBD>clarer dynamiquement des filtres de pr<EFBFBD>-compilation pour y faire
passer des templates avant qu'ils ne soient compilTs. Reportez-vous passer des templates avant qu'ils ne soient compil<EFBFBD>s. Reportez-vous
a la section a la section
<link linkend="advanced.features.postfilters">filtres de prT-compilation de templates</link> <link linkend="advanced.features.postfilters">filtres de pr<EFBFBD>-compilation de templates</link>
pour avoir plus de renseignements sur la faton de paramTtrer les fonctions pour avoir plus de renseignements sur la faton de param<EFBFBD>trer les fonctions
de prT-compilation. de pr<EFBFBD>-compilation.
</para> </para>
</sect1> </sect1>
<sect1 id="api.register.resource"> <sect1 id="api.register.resource">
@@ -791,12 +791,12 @@ $smarty->register_modifier("sslash","stripslashes");
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTclarer dynamiquement une ressource plugin Utilis<EFBFBD>e pour d<EFBFBD>clarer dynamiquement une ressource plugin
dans Smarty. Il faut passer en paramFtre le nom de la ressource dans Smarty. Il faut passer en param<EFBFBD>tre le nom de la ressource
et le tableau des fonctions PHP qui l'implTmentent. Reportez-vous et le tableau des fonctions PHP qui l'impl<EFBFBD>mentent. Reportez-vous
a la section <link linkend="template.resources">ressources templates</link> a la section <link linkend="template.resources">ressources templates</link>
pour avoir plus d'informations sur la faton de paramTtrer une fonction pour avoir plus d'informations sur la faton de param<EFBFBD>trer une fonction
rTcupTrant des templates. r<EFBFBD>cup<EFBFBD>rant des templates.
</para> </para>
<example> <example>
<title>register_resource</title> <title>register_resource</title>
@@ -817,10 +817,10 @@ $smarty->register_resource("db", array("db_get_template",
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
Cette fonction peut-Otre utilisTe pour afficher un message d'erreur Cette fonction peut-Otre utilis<EFBFBD>e pour afficher un message d'erreur
en utilisant Smarty. Le paramFtre <parameter>level</parameter> en utilisant Smarty. Le param<EFBFBD>tre <parameter>level</parameter>
peut prendre l'une des valeures utilisTes par la fonction PHP peut prendre l'une des valeures utilis<EFBFBD>es par la fonction PHP
trigger_error, i.e. E_USER_NOTICE, E_USER_WARNING, etc. Par dTfaut trigger_error, i.e. E_USER_NOTICE, E_USER_WARNING, etc. Par d<EFBFBD>faut
il s'agit de E_USER_WARNING. il s'agit de E_USER_WARNING.
</para> </para>
</sect1> </sect1>
@@ -834,9 +834,9 @@ $smarty->register_resource("db", array("db_get_template",
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
Cette fonction vTrifie si le template spTcifiT existe. Elle accepte Cette fonction v<EFBFBD>rifie si le template sp<EFBFBD>cifi<EFBFBD> existe. Elle accepte
soit un chemin vers le template, soit une ressource de type soit un chemin vers le template, soit une ressource de type
chaene de caractFres prTcisant le nom du template. chaene de caract<EFBFBD>res pr<EFBFBD>cisant le nom du template.
</para> </para>
</sect1> </sect1>
<sect1 id="api.unregister.block"> <sect1 id="api.unregister.block">
@@ -848,8 +848,8 @@ $smarty->register_resource("db", array("db_get_template",
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTsallouer dynamiquement un plugin de fonction Utilis<EFBFBD>e pour d<EFBFBD>sallouer dynamiquement un plugin de fonction
de blocs. Passez en paramFtre le nom du bloc. de blocs. Passez en param<EFBFBD>tre le nom du bloc.
</para> </para>
</sect1> </sect1>
<sect1 id="api.unregister.compiler.function"> <sect1 id="api.unregister.compiler.function">
@@ -861,8 +861,8 @@ $smarty->register_resource("db", array("db_get_template",
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTsallouer dynamiquement un fonction de compilation. Utilis<EFBFBD>e pour d<EFBFBD>sallouer dynamiquement un fonction de compilation.
Passez en paramFtre le nom de la fonction de compilation. Passez en param<EFBFBD>tre le nom de la fonction de compilation.
</para> </para>
</sect1> </sect1>
<sect1 id="api.unregister.function"> <sect1 id="api.unregister.function">
@@ -874,14 +874,14 @@ $smarty->register_resource("db", array("db_get_template",
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTsallouer dynamiquement un plugin de fonction Utilis<EFBFBD>e pour d<EFBFBD>sallouer dynamiquement un plugin de fonction
de templates. Passez en paramFtres le nom de la fonction de templates. de templates. Passez en param<EFBFBD>tres le nom de la fonction de templates.
</para> </para>
<example> <example>
<title>unregister_function</title> <title>unregister_function</title>
<programlisting> <programlisting>
// nous ne voulons pas que les designers de templates aient accFs // nous ne voulons pas que les designers de templates aient acc<EFBFBD>s
// au systFme de fichiers. // au syst<EFBFBD>me de fichiers.
$smarty->unregister_function("fetch");</programlisting> $smarty->unregister_function("fetch");</programlisting>
</example> </example>
@@ -895,8 +895,8 @@ $smarty->unregister_function("fetch");</programlisting>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTsallouer dynamiquement un plugin modificateur de variable. Utilis<EFBFBD>e pour d<EFBFBD>sallouer dynamiquement un plugin modificateur de variable.
Passez en paramFtre le nom du modificateur de templates. Passez en param<EFBFBD>tre le nom du modificateur de templates.
</para> </para>
<example> <example>
<title>unregister_modifier</title> <title>unregister_modifier</title>
@@ -916,7 +916,7 @@ $smarty->unregister_modifier("strip_tags");</programlisting>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTsallouer un objet. Utilis<EFBFBD>e pour d<EFBFBD>sallouer un objet.
</para> </para>
</sect1> </sect1>
<sect1 id="api.unregister.outputfilter"> <sect1 id="api.unregister.outputfilter">
@@ -928,7 +928,7 @@ $smarty->unregister_modifier("strip_tags");</programlisting>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTsallouer dynamiquement un filtre de sortie. Utilis<EFBFBD>e pour d<EFBFBD>sallouer dynamiquement un filtre de sortie.
</para> </para>
</sect1> </sect1>
<sect1 id="api.unregister.postfilter"> <sect1 id="api.unregister.postfilter">
@@ -940,7 +940,7 @@ $smarty->unregister_modifier("strip_tags");</programlisting>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTsallouer dynamiquement un filtre de post-compilation. Utilis<EFBFBD>e pour d<EFBFBD>sallouer dynamiquement un filtre de post-compilation.
</para> </para>
</sect1> </sect1>
<sect1 id="api.unregister.prefilter"> <sect1 id="api.unregister.prefilter">
@@ -952,7 +952,7 @@ $smarty->unregister_modifier("strip_tags");</programlisting>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTsallouer dynamiquement un filtre de prT-compilation. Utilis<EFBFBD>e pour d<EFBFBD>sallouer dynamiquement un filtre de pr<EFBFBD>-compilation.
</para> </para>
</sect1> </sect1>
<sect1 id="api.unregister.resource"> <sect1 id="api.unregister.resource">
@@ -964,8 +964,8 @@ $smarty->unregister_modifier("strip_tags");</programlisting>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
UtilisTe pour dTsallouer dynamiquement un plugin ressource. Utilis<EFBFBD>e pour d<EFBFBD>sallouer dynamiquement un plugin ressource.
Passez en paramFtre le nom de la ressource. Passez en param<EFBFBD>tre le nom de la ressource.
</para> </para>
<example> <example>
<title>unregister_resource</title> <title>unregister_resource</title>

View File

@@ -6,18 +6,18 @@
<sect1 id="variable.template.dir"> <sect1 id="variable.template.dir">
<title>$template_dir</title> <title>$template_dir</title>
<para> <para>
C'est le nom par dTfaut du rTpertoire des templates. C'est le nom par d<EFBFBD>faut du r<EFBFBD>pertoire des templates.
Si vous ne spTcifiez aucun chemin lors de l'utilisation de templates, Smarty Si vous ne sp<EFBFBD>cifiez aucun chemin lors de l'utilisation de templates, Smarty
les cherchera a cet emplacement. les cherchera a cet emplacement.
Par dTfaut, il s'agit de "./templates", ce qui signifie Par d<EFBFBD>faut, il s'agit de "./templates", ce qui signifie
qu'il va chercher le rTpertoire templates qu'il va chercher le r<EFBFBD>pertoire templates
dans le rTpertoire o<> se trouve le script PHP en cours d'exTcution. dans le r<EFBFBD>pertoire o<> se trouve le script PHP en cours d'ex<EFBFBD>cution.
</para> </para>
<note> <note>
<title>Note technique</title> <title>Note technique</title>
<para> <para>
Il n'est pas conseillT de mettre ce rTpertoire Il n'est pas conseill<EFBFBD> de mettre ce r<EFBFBD>pertoire
dans l'arborescence Web. dans l'arborescence Web.
</para> </para>
</note> </note>
@@ -25,22 +25,22 @@
<sect1 id="variable.compile.dir"> <sect1 id="variable.compile.dir">
<title>$compile_dir</title> <title>$compile_dir</title>
<para> <para>
C'est le nom du rTpertoire o<> se trouvent les templates C'est le nom du r<EFBFBD>pertoire o<> se trouvent les templates
compilTs. Par dTfaut, il s'agit de "./templates_c", compil<EFBFBD>s. Par d<EFBFBD>faut, il s'agit de "./templates_c",
ce qui signifie que Smarty va chercher ce rTpertoire ce qui signifie que Smarty va chercher ce r<EFBFBD>pertoire
dans le mOme rTpertoire que le script PHP en cours d'exTcution. dans le m<EFBFBD>me r<EFBFBD>pertoire que le script PHP en cours d'ex<EFBFBD>cution.
</para> </para>
<note> <note>
<title>Note technique</title> <title>Note technique</title>
<para> <para>
Ce rTglage doit Otre soit un chemin absolu, soit un chemin Ce r<EFBFBD>glage doit Otre soit un chemin absolu, soit un chemin
relatif. include_path n'est pas utilisT pour Tcrire des fichiers. relatif. include_path n'est pas utilis<EFBFBD> pour Tcrire des fichiers.
</para> </para>
</note> </note>
<note> <note>
<title>Note technique</title> <title>Note technique</title>
<para> <para>
Il n'est pas conseillT de mettre ce rTpertoire Il n'est pas conseill<EFBFBD> de mettre ce r<EFBFBD>pertoire
sous la racine de l'arborescence Web. sous la racine de l'arborescence Web.
</para> </para>
</note> </note>
@@ -48,16 +48,16 @@
<sect1 id="variable.config.dir"> <sect1 id="variable.config.dir">
<title>$config_dir</title> <title>$config_dir</title>
<para> <para>
Il s'agit du rTpertoire utilisT pour stocker les Il s'agit du r<EFBFBD>pertoire utilis<EFBFBD> pour stocker les
fichiers de configuration utilisTs dans les templates. fichiers de configuration utilis<EFBFBD>s dans les templates.
La valeur par dTfaut est "./configs", ce qui signifie La valeur par d<EFBFBD>faut est "./configs", ce qui signifie
que Smarty va chercher ce rTpertoire que Smarty va chercher ce r<EFBFBD>pertoire
dans le mOme rTpertoire que le script PHP qui s'exTcute. dans le m<EFBFBD>me r<EFBFBD>pertoire que le script PHP qui s'ex<EFBFBD>cute.
</para> </para>
<note> <note>
<title>Note technique</title> <title>Note technique</title>
<para> <para>
Il n'est pas conseillT de mettre ce rTpertoire Il n'est pas conseill<EFBFBD> de mettre ce r<EFBFBD>pertoire
sous la racine de l'arborescence Web. sous la racine de l'arborescence Web.
</para> </para>
</note> </note>
@@ -65,17 +65,17 @@
<sect1 id="variable.plugins.dir"> <sect1 id="variable.plugins.dir">
<title>$plugins_dir</title> <title>$plugins_dir</title>
<para> <para>
Ce sont les rTpertoire dans lesquels Smarty ira chercher les plugins Ce sont les r<EFBFBD>pertoire dans lesquels Smarty ira chercher les plugins
dont il a besoin. La valeur par dTfaut est "plugins" sous le dont il a besoin. La valeur par d<EFBFBD>faut est "plugins" sous le
rTpertoire SMARTY_DIR. Si vous donnez un chemin relatif, Smarty r<EFBFBD>pertoire SMARTY_DIR. Si vous donnez un chemin relatif, Smarty
regardera d'abord relativement au SMARTY_DIR, puis relativement au rtc (rTpertoire regardera d'abord relativement au SMARTY_DIR, puis relativement au rtc (r<EFBFBD>pertoire
de travail courant), puis relativement a chaque entrTe de votre rTpertoire de travail courant), puis relativement a chaque entr<EFBFBD>e de votre r<EFBFBD>pertoire
d'inclusion PHP. d'inclusion PHP.
</para> </para>
<note> <note>
<title>Note technique</title> <title>Note technique</title>
<para> <para>
Pour des raisons de performances, ne rTglez pas votre plugins_dir Pour des raisons de performances, ne r<EFBFBD>glez pas votre plugins_dir
pour qu'il utilise votre include_path PHP. Utilisez un pour qu'il utilise votre include_path PHP. Utilisez un
chemin absolu ou un chemin relatif a SMARTY_DIR ou au rtc. chemin absolu ou un chemin relatif a SMARTY_DIR ou au rtc.
</para> </para>
@@ -86,26 +86,26 @@
<para> <para>
Cela active la Cela active la
<link <link
linkend="chapter.debugging.console">console de dTbogage</link>. linkend="chapter.debugging.console">console de d<EFBFBD>bogage</link>.
La console est une fenOtre javascript qui vous informe des templates La console est une fen<EFBFBD>tre javascript qui vous informe des templates
inclus et des variables assignTes dans la page courante. inclus et des variables assign<EFBFBD>es dans la page courante.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.debug.tpl"> <sect1 id="variable.debug.tpl">
<title>$debug_tpl</title> <title>$debug_tpl</title>
<para> <para>
C'est le nom du fichier template utilisT pour la C'est le nom du fichier template utilis<EFBFBD> pour la
console de dTbuggage. Par dTfaut debug.tpl, il se situe dans <link console de d<EFBFBD>buggage. Par d<EFBFBD>faut debug.tpl, il se situe dans <link
linkend="constant.smarty.dir">SMARTY_DIR</link> linkend="constant.smarty.dir">SMARTY_DIR</link>
</para> </para>
</sect1> </sect1>
<sect1 id="variable.debugging.ctrl"> <sect1 id="variable.debugging.ctrl">
<title>$debugging_ctrl</title> <title>$debugging_ctrl</title>
<para> <para>
Cela permet d'avoir diffTrents moyens pour activer Cela permet d'avoir diff<EFBFBD>rents moyens pour activer
le dTbogage. URL signifie que si SMARTY_DEBUG se le d<EFBFBD>bogage. URL signifie que si SMARTY_DEBUG se
trouve dans QUERY_STRING, le dTbuggage trouve dans QUERY_STRING, le d<EFBFBD>buggage
est activT a l'invocation du script. Si $debugging est activ<EFBFBD> a l'invocation du script. Si $debugging
est a vrai, cette valeur est sans effet. est a vrai, cette valeur est sans effet.
</para> </para>
</sect1> </sect1>
@@ -113,21 +113,21 @@
<title>$global_assign</title> <title>$global_assign</title>
<para> <para>
C'est une liste de variable qui sont toujours C'est une liste de variable qui sont toujours
implicitement assignTes au moteur de templates. implicitement assign<EFBFBD>es au moteur de templates.
Ceci est commode pour rendre des variables globales Ceci est commode pour rendre des variables globales
ou des variables du serveur accessibles a tous les templates ou des variables du serveur accessibles a tous les templates
plut(t que de devoir les assigner a la main. Chaque TlTment plut(t que de devoir les assigner a la main. Chaque Tl<EFBFBD>ment
de $global_assign doit Otre soit le nom de la variable de $global_assign doit Otre soit le nom de la variable
globale, soit une paire clef/valeur, o<> clef est le globale, soit une paire clef/valeur, o<> clef est le
nom du tableau global et valeur le tableau de variable nom du tableau global et valeur le tableau de variable
assignTes depuis ce tableau global. assign<EFBFBD>es depuis ce tableau global.
$SCRIPT_NAME est globalement assignT par dTfaut depuis $SCRIPT_NAME est globalement assign<EFBFBD> par d<EFBFBD>faut depuis
$HTTP_SERVER_VARS. $HTTP_SERVER_VARS.
</para> </para>
<note> <note>
<title>Note technique</title> <title>Note technique</title>
<para> <para>
On peut accTder aux variables du serveur avec la variable On peut acc<EFBFBD>der aux variables du serveur avec la variable
$smarty, par exemple {$smarty.server.SCRIPT_NAME}. $smarty, par exemple {$smarty.server.SCRIPT_NAME}.
Se reporter a la section sur la variable Se reporter a la section sur la variable
<link linkend="language.variables.smarty">$smarty</link>. <link linkend="language.variables.smarty">$smarty</link>.
@@ -137,17 +137,17 @@
<sect1 id="variable.undefined"> <sect1 id="variable.undefined">
<title>$undefined</title> <title>$undefined</title>
<para> <para>
Cela rFgle la valeur de $undefined, null par dTfaut. Cela r<EFBFBD>gle la valeur de $undefined, null par d<EFBFBD>faut.
N'est actuellement utilisT que pour initialiser N'est actuellement utilis<EFBFBD> que pour initialiser
des variables non-dTfinies dans $global_assign a des des variables non-d<EFBFBD>finies dans $global_assign a des
valeurs par dTfaut. valeurs par d<EFBFBD>faut.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.autoload.filters"> <sect1 id="variable.autoload.filters">
<title>$autoload_filters</title> <title>$autoload_filters</title>
<para> <para>
Si vous dTsirez charger des filtres a chaque invocation Si vous d<EFBFBD>sirez charger des filtres a chaque invocation
de templates, vous pouvez le spTcifier en utilisant cette de templates, vous pouvez le sp<EFBFBD>cifier en utilisant cette
variable. Les types de filtres et les valeurs sont des variable. Les types de filtres et les valeurs sont des
tableaux comportant le nom des filtres. tableaux comportant le nom des filtres.
<informalexample> <informalexample>
@@ -162,21 +162,21 @@ $smarty-&gt;autoload_filters = array('pre' =&gt; array('trim', 'stamp'),
<title>$compile_check</title> <title>$compile_check</title>
<para> <para>
A chaque invocation de l'application PHP, Smarty fait A chaque invocation de l'application PHP, Smarty fait
un test pour voir si le template courant a TtT modifiT un test pour voir si le template courant a Tt<EFBFBD> modifi<EFBFBD>
(date de derniFre modification diffTrente) depuis sa (date de derni<EFBFBD>re modification diff<EFBFBD>rente) depuis sa
derniFre compilation. S'il a changT, le template est recompilT. derni<EFBFBD>re compilation. S'il a chang<EFBFBD>, le template est recompil<EFBFBD>.
Si le template n'a pas encore TtT compilT, il le sera Si le template n'a pas encore Tt<EFBFBD> compil<EFBFBD>, il le sera
quelle que soit la valeur ce rTglage. quelle que soit la valeur ce r<EFBFBD>glage.
Par dTfaut cette valeur est a vrai. Quand Par d<EFBFBD>faut cette valeur est a vrai. Quand
une application est mise en production (les templates une application est mise en production (les templates
ne changent plus), cette vTrification n'est pas nTcessaire. ne changent plus), cette v<EFBFBD>rification n'est pas n<EFBFBD>cessaire.
Assurez-vous de mettre $compile_check a "false" pour des performances Assurez-vous de mettre $compile_check a "false" pour des performances
maximales. Notez que si vous mettez ce paramFtre a "false" et qu'un maximales. Notez que si vous mettez ce param<EFBFBD>tre a "false" et qu'un
template est modifiT, vous ne verrez *pas* le changement template est modifi<EFBFBD>, vous ne verrez *pas* le changement
car le template ne sera *pas* recompilT. Si le processus de cache car le template ne sera *pas* recompil<EFBFBD>. Si le processus de cache
est activT et que $compile_check l'est aussi, alors les fichiers est activ<EFBFBD> et que $compile_check l'est aussi, alors les fichiers
du cache seront regTnTrTs si un template concernT ou un fichier de du cache seront reg<EFBFBD>n<EFBFBD>r<EFBFBD>s si un template concern<EFBFBD> ou un fichier de
configuration concernT est modifiT. Voir aussi <link configuration concern<EFBFBD> est modifi<EFBFBD>. Voir aussi <link
linkend="variable.force.compile">$force_compile</link> ou <link linkend="variable.force.compile">$force_compile</link> ou <link
linkend="api.clear.compiled.tpl">clear_compiled_tpl</link>. linkend="api.clear.compiled.tpl">clear_compiled_tpl</link>.
</para> </para>
@@ -186,56 +186,56 @@ $smarty-&gt;autoload_filters = array('pre' =&gt; array('trim', 'stamp'),
<title>$force_compile</title> <title>$force_compile</title>
<para> <para>
Cela oblige Smarty a (re)compiler les templates a chaque Cela oblige Smarty a (re)compiler les templates a chaque
invocation. Ce rTglage supplante $compile_check. Par dTfaut, il invocation. Ce r<EFBFBD>glage supplante $compile_check. Par d<EFBFBD>faut, il
est dTsactivT. Ceci est commode pour le dTveloppement et le est d<EFBFBD>sactiv<EFBFBD>. Ceci est commode pour le d<EFBFBD>veloppement et le
dTbogage mais ne devrait jamais Otre utilisT dans un environnment d<EFBFBD>bogage mais ne devrait jamais Otre utilis<EFBFBD> dans un environnment
de production. Si le systFme de cache est actif, les de production. Si le syst<EFBFBD>me de cache est actif, les
fichiers du cache seront regTnTrTs a chaque appel. fichiers du cache seront reg<EFBFBD>n<EFBFBD>r<EFBFBD>s a chaque appel.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.caching"> <sect1 id="variable.caching">
<title>$caching</title> <title>$caching</title>
<para> <para>
Ce paramFtre demande a Smarty de mettre ou non en cache la sortie des Ce param<EFBFBD>tre demande a Smarty de mettre ou non en cache la sortie des
templates. templates.
Par dTfaut ce rTglage est a 0 (dTsactivT). Si vos templates Par d<EFBFBD>faut ce r<EFBFBD>glage est a 0 (d<EFBFBD>sactiv<EFBFBD>). Si vos templates
gTnFrent du contenu redondant, il est conseillT d'activer le g<EFBFBD>n<EFBFBD>rent du contenu redondant, il est conseill<EFBFBD> d'activer le
cache. Cela permettra un gain de performance consTquent. cache. Cela permettra un gain de performance cons<EFBFBD>quent.
Vous pouvez aussi avoir de nombreux fichiers de cache pour un mOme template. Vous pouvez aussi avoir de nombreux fichiers de cache pour un m<EFBFBD>me template.
Une valeur de 1 ou 2 active le cache. 1 indique a Smarty d'utiliser Une valeur de 1 ou 2 active le cache. 1 indique a Smarty d'utiliser
la variable $cache_lifetime pour dTterminer si le fichier de cache a expirT. la variable $cache_lifetime pour d<EFBFBD>terminer si le fichier de cache a expir<EFBFBD>.
Une valeur de 2 indique a Smarty d'utiliser la valeur Une valeur de 2 indique a Smarty d'utiliser la valeur
$cache_lifetime spTcifiTe a la gTnTration du cache. Ainsi vous pouvez rTgler $cache_lifetime sp<EFBFBD>cifi<EFBFBD>e a la g<EFBFBD>n<EFBFBD>ration du cache. Ainsi vous pouvez r<EFBFBD>gler
la durTe de vie d'un fichier de cache avant de rTcupTrer le template pour avoir la dur<EFBFBD>e de vie d'un fichier de cache avant de r<EFBFBD>cup<EFBFBD>rer le template pour avoir
un certain contr(le quand ce fichier en particulier expire. Voir un certain contr(le quand ce fichier en particulier expire. Voir
aussi <link linkend="api.is.cached">is_cached</link>. aussi <link linkend="api.is.cached">is_cached</link>.
</para> </para>
<para> <para>
Si $compile_check est actif, le contenu du cache sera regTnTrT Si $compile_check est actif, le contenu du cache sera reg<EFBFBD>n<EFBFBD>r<EFBFBD>
si un des templates ou un des fichiers de configuration qui fait partie si un des templates ou un des fichiers de configuration qui fait partie
de ce fichier de cache a TtT modifiT. Si $force_compile est actif, le contenu de ce fichier de cache a Tt<EFBFBD> modifi<EFBFBD>. Si $force_compile est actif, le contenu
du cache est toujours regTnTrT. du cache est toujours reg<EFBFBD>n<EFBFBD>r<EFBFBD>.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.cache.dir"> <sect1 id="variable.cache.dir">
<title>$cache_dir</title> <title>$cache_dir</title>
<para> <para>
Il s'agit du nom du rTpertoire o<> les caches des templates Il s'agit du nom du r<EFBFBD>pertoire o<> les caches des templates
sont stockTs. Par dTfaut il s'agit de "./cache", ce qui signifie sont stock<EFBFBD>s. Par d<EFBFBD>faut il s'agit de "./cache", ce qui signifie
que Smarty va chercher ce rTpertoire que Smarty va chercher ce r<EFBFBD>pertoire
dans le mOme rTpertoire que le script PHP en cours d'exTcution. dans le m<EFBFBD>me r<EFBFBD>pertoire que le script PHP en cours d'ex<EFBFBD>cution.
</para> </para>
<note> <note>
<title>Note technique</title> <title>Note technique</title>
<para> <para>
Ce rTglage doit Otre soit un chemin absolu, soit un chemin Ce r<EFBFBD>glage doit Otre soit un chemin absolu, soit un chemin
relatif. include_path n'a aucune influence lors de l'Tcriture des fichiers. relatif. include_path n'a aucune influence lors de l'Tcriture des fichiers.
</para> </para>
</note> </note>
<note> <note>
<title>Technical Note</title> <title>Technical Note</title>
<para> <para>
Il n'est pas conseillT de mettre ce rTpertoire Il n'est pas conseill<EFBFBD> de mettre ce r<EFBFBD>pertoire
dans l'arborescence Web. dans l'arborescence Web.
</para> </para>
</note> </note>
@@ -243,30 +243,30 @@ $smarty-&gt;autoload_filters = array('pre' =&gt; array('trim', 'stamp'),
<sect1 id="variable.cache.lifetime"> <sect1 id="variable.cache.lifetime">
<title>$cache_lifetime</title> <title>$cache_lifetime</title>
<para> <para>
Il s'agit de la durTe en secondes pendant laquelle un cache de template Il s'agit de la dur<EFBFBD>e en secondes pendant laquelle un cache de template
est valide. Une fois cette durTe dTpassTe, le cache est regTnTrT. est valide. Une fois cette dur<EFBFBD>e d<EFBFBD>pass<EFBFBD>e, le cache est reg<EFBFBD>n<EFBFBD>r<EFBFBD>.
$caching doit Otre a "true" pour que $cache_lifetime ait une $caching doit Otre a "true" pour que $cache_lifetime ait une
quelconque utilitT. Avec une valeur de -1, le cache n'expire jamais. quelconque utilit<EFBFBD>. Avec une valeur de -1, le cache n'expire jamais.
Avec une valeur de 0, le cache est toujours regTnTrT (utile Avec une valeur de 0, le cache est toujours reg<EFBFBD>n<EFBFBD>r<EFBFBD> (utile
a des fins de tests seulement. Une meilleure faton de dTsactiver a des fins de tests seulement. Une meilleure faton de d<EFBFBD>sactiver
le cache est de mettre <link le cache est de mettre <link
linkend="variable.caching">$caching</link> a "false"). linkend="variable.caching">$caching</link> a "false").
</para> </para>
<para> <para>
Si <link linkend="variable.force.compile">$force_compile</link> est Si <link linkend="variable.force.compile">$force_compile</link> est
activT, les fichiers du cache seront regTnTrTs a chaque fois, activ<EFBFBD>, les fichiers du cache seront reg<EFBFBD>n<EFBFBD>r<EFBFBD>s a chaque fois,
dTsactivant ainsi le cache. Vous pouvez effacer tous les fichiers du cache d<EFBFBD>sactivant ainsi le cache. Vous pouvez effacer tous les fichiers du cache
avec la function avec la function
<link linkend="api.clear.all.cache">clear_all_cache()</link> <link linkend="api.clear.all.cache">clear_all_cache()</link>
ou de faton individuelle (ou groupTe) ou de faton individuelle (ou group<EFBFBD>e)
avec la fonction <link avec la fonction <link
linkend="api.clear.cache">clear_cache()</link>. linkend="api.clear.cache">clear_cache()</link>.
</para> </para>
<note> <note>
<title>Note technique</title> <title>Note technique</title>
<para> <para>
Si vous souhaitez donner a certains templates leur propre durTe de vie Si vous souhaitez donner a certains templates leur propre dur<EFBFBD>e de vie
en cache, vous pouvez le faire en rTglant en cache, vous pouvez le faire en r<EFBFBD>glant
<link linkend="variable.caching">$caching</link> a 2, <link linkend="variable.caching">$caching</link> a 2,
puis $cache_lifetime a une unique valeur juste avant d'appeler puis $cache_lifetime a une unique valeur juste avant d'appeler
display ou fetch(). display ou fetch().
@@ -277,18 +277,18 @@ $smarty-&gt;autoload_filters = array('pre' =&gt; array('trim', 'stamp'),
<title>$cache_handler_func</title> <title>$cache_handler_func</title>
<para> <para>
Vous pouvez utiliser votre propre fonction de gestion du cache plut(t que Vous pouvez utiliser votre propre fonction de gestion du cache plut(t que
d'utiliser celle livrTe avec Smarty. d'utiliser celle livr<EFBFBD>e avec Smarty.
RTfTrez-vous a la section sur la fonction de gestion de cache RTf<EFBFBD>rez-vous a la section sur la fonction de gestion de cache
personnalisTe pour plus de dTtails. personnalis<EFBFBD>e pour plus de d<EFBFBD>tails.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.cache.modified.check"> <sect1 id="variable.cache.modified.check">
<title>$cache_modified_check</title> <title>$cache_modified_check</title>
<para> <para>
Si cette variable est a vrai, Smarty respectera l'en-tOte Si cette variable est a vrai, Smarty respectera l'en-t<EFBFBD>te
If-Modified-Since envoyT par le client. Si la date de derniFre If-Modified-Since envoy<EFBFBD> par le client. Si la date de derni<EFBFBD>re
modification du fichier de cache n'a pas changT depuis la derniFre modification du fichier de cache n'a pas chang<EFBFBD> depuis la derni<EFBFBD>re
visite, alors un en-tOte "304 Not Modified" sera envoyT a la place visite, alors un en-t<EFBFBD>te "304 Not Modified" sera envoy<EFBFBD> a la place
du contenu. Cela ne fonctionne qu'avec du contenu mis en cache hors de la du contenu. Cela ne fonctionne qu'avec du contenu mis en cache hors de la
balise <command>insert</command>. balise <command>insert</command>.
</para> </para>
@@ -298,9 +298,9 @@ $smarty-&gt;autoload_filters = array('pre' =&gt; array('trim', 'stamp'),
<para> <para>
Si cette variable est a vrai, les variables lues dans les fichiers Si cette variable est a vrai, les variables lues dans les fichiers
de configuration peuvent s'Tcraser entre elles. Sinon les variables de configuration peuvent s'Tcraser entre elles. Sinon les variables
seront mises dans un tableau. TrFs utile si vous voulez stocker seront mises dans un tableau. Tr<EFBFBD>s utile si vous voulez stocker
des tableaux de donnTes dans des fichiers de configuration, listez des tableaux de donn<EFBFBD>es dans des fichiers de configuration, listez
simplement chaque TlTment plusieurs fois. Mise a faux par dTfaut. simplement chaque Tl<EFBFBD>ment plusieurs fois. Mise a faux par d<EFBFBD>faut.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.config.booleanize"> <sect1 id="variable.config.booleanize">
@@ -308,45 +308,45 @@ $smarty-&gt;autoload_filters = array('pre' =&gt; array('trim', 'stamp'),
<para> <para>
Si cette variable est a vrai, les valeurs on/true/yes et off/false/no Si cette variable est a vrai, les valeurs on/true/yes et off/false/no
dans les fichiers de configuration sont automitiquement converties dans les fichiers de configuration sont automitiquement converties
en boolTen. De cette faton vous pouvez utiliser ces valeurs dans le en bool<EFBFBD>en. De cette faton vous pouvez utiliser ces valeurs dans le
template de la faton suivante : {if #foobar#} ... {/if}. Si foobar template de la faton suivante : {if #foobar#} ... {/if}. Si foobar
est a on, true ou yes, l'instruction {if} sera exTcutTe. vrai est a on, true ou yes, l'instruction {if} sera ex<EFBFBD>cut<EFBFBD>e. vrai
par dTfaut. par d<EFBFBD>faut.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.config.read.hidden"> <sect1 id="variable.config.read.hidden">
<title>$config_read_hidden</title> <title>$config_read_hidden</title>
<para> <para>
Si cette variable est a vrai, les sections cachTs (dont les noms Si cette variable est a vrai, les sections cach<EFBFBD>s (dont les noms
commencent par un point) dans les fichiers de configuration peuvent commencent par un point) dans les fichiers de configuration peuvent
Otre lues depuis les templates. On laisse habituellement cela a faux, de Otre lues depuis les templates. On laisse habituellement cela a faux, de
cette faton vous pouvez stocker des donnTes sensibles dans les fichiers cette faton vous pouvez stocker des donn<EFBFBD>es sensibles dans les fichiers
de configuration, comme par exemple des paramFtres de base de donnTes, de configuration, comme par exemple des param<EFBFBD>tres de base de donn<EFBFBD>es,
sans vous soucier de la faton dont les templates les chargent. sans vous soucier de la faton dont les templates les chargent.
Mise a faux par dTfaut. Mise a faux par d<EFBFBD>faut.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.config.fix.newlines"> <sect1 id="variable.config.fix.newlines">
<title>$config_fix_newlines</title> <title>$config_fix_newlines</title>
<para> <para>
Si cette variable est mise a vrai, les caractFres de nouvelles lignes mac et dos Si cette variable est mise a vrai, les caract<EFBFBD>res de nouvelles lignes mac et dos
(\r et \r\n) sont convertis en \n quand ils sont analysTs. vrai par dTfaut. (\r et \r\n) sont convertis en \n quand ils sont analys<EFBFBD>s. vrai par d<EFBFBD>faut.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.default.template.handler.func"> <sect1 id="variable.default.template.handler.func">
<title>$default_template_handler_func</title> <title>$default_template_handler_func</title>
<para> <para>
Cette fonction est appelTe quand un template ne peut pas Otre Cette fonction est appel<EFBFBD>e quand un template ne peut pas Otre
obtenu avec sa ressource. obtenu avec sa ressource.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.php.handling"> <sect1 id="variable.php.handling">
<title>$php_handling</title> <title>$php_handling</title>
<para> <para>
Indique a Smarty comment interprTter le code PHP Indique a Smarty comment interpr<EFBFBD>ter le code PHP
intTgrT dans les templates. Il y a quatre valeurs possibles, par int<EFBFBD>gr<EFBFBD> dans les templates. Il y a quatre valeurs possibles, par
dTfaut SMARTY_PHP_PASSTHRU. Notez que cela n'affecte PAS le code d<EFBFBD>faut SMARTY_PHP_PASSTHRU. Notez que cela n'affecte PAS le code
PHP entourT des balises PHP entour<EFBFBD> des balises
<link linkend="language.function.php">{php}{/php}</link> <link linkend="language.function.php">{php}{/php}</link>
dans le template. dans le template.
</para> </para>
@@ -354,15 +354,15 @@ $smarty-&gt;autoload_filters = array('pre' =&gt; array('trim', 'stamp'),
<listitem><para>SMARTY_PHP_PASSTHRU - Smarty Tcrit les balises <listitem><para>SMARTY_PHP_PASSTHRU - Smarty Tcrit les balises
telles quelles.</para></listitem> telles quelles.</para></listitem>
<listitem><para>SMARTY_PHP_QUOTE - Smarty transforme les balises <listitem><para>SMARTY_PHP_QUOTE - Smarty transforme les balises
en entitTs HTML.</para></listitem> en entit<EFBFBD>s HTML.</para></listitem>
<listitem><para>SMARTY_PHP_REMOVE - Smarty supprime les balises <listitem><para>SMARTY_PHP_REMOVE - Smarty supprime les balises
des templates.</para></listitem> des templates.</para></listitem>
<listitem><para>SMARTY_PHP_ALLOW - Smarty exTcute les balises <listitem><para>SMARTY_PHP_ALLOW - Smarty ex<EFBFBD>cute les balises
comme du code PHP.</para></listitem> comme du code PHP.</para></listitem>
</itemizedlist> </itemizedlist>
<para> <para>
NOTE : IntTgrer du code PHP dans les templates est vivement NOTE : Int<EFBFBD>grer du code PHP dans les templates est vivement
dTconseillT. PrTfTrez les d<EFBFBD>conseill<EFBFBD>. Pr<EFBFBD>f<EFBFBD>rez les
<link linkend="language.custom.functions">fonctions utilisateurs</link> <link linkend="language.custom.functions">fonctions utilisateurs</link>
ou les <link linkend="language.modifiers">modificateurs de variables</link>. ou les <link linkend="language.modifiers">modificateurs de variables</link>.
</para> </para>
@@ -370,121 +370,121 @@ $smarty-&gt;autoload_filters = array('pre' =&gt; array('trim', 'stamp'),
<sect1 id="variable.security"> <sect1 id="variable.security">
<title>$security</title> <title>$security</title>
<para> <para>
Cette variable est a faux par dTfaut. $security est de rigueur Cette variable est a faux par d<EFBFBD>faut. $security est de rigueur
quand vous n'Otes pas complFtement svr des personnes qui Tditent les templates quand vous n'Otes pas compl<EFBFBD>tement svr des personnes qui Tditent les templates
(par ftp par exemple) et que vous voulez rTduire le risque que (par ftp par exemple) et que vous voulez r<EFBFBD>duire le risque que
la sTcuritT du systFme soit compromise par le language de template. la s<EFBFBD>curit<EFBFBD> du syst<EFBFBD>me soit compromise par le language de template.
Activer cette option de sTcuritT applique les rFgles suivantes Activer cette option de s<EFBFBD>curit<EFBFBD> applique les r<EFBFBD>gles suivantes
au langage de template, a moins que $security_settings ne spTcifie au langage de template, a moins que $security_settings ne sp<EFBFBD>cifie
le contraire : le contraire :
</para> </para>
<itemizedlist> <itemizedlist>
<listitem><para>Si $php_handling est rTglTe a SMARTY_PHP_ALLOW, <listitem><para>Si $php_handling est r<EFBFBD>gl<EFBFBD>e a SMARTY_PHP_ALLOW,
cela est implicitement changT a SMARTY_PHP_PASSTHRU.</para></listitem> cela est implicitement chang<EFBFBD> a SMARTY_PHP_PASSTHRU.</para></listitem>
<listitem><para>Les fonctions PHP ne sont pas autorisTes dans les <listitem><para>Les fonctions PHP ne sont pas autoris<EFBFBD>es dans les
instructions IF, a part celles dTclarTes dans instructions IF, a part celles d<EFBFBD>clar<EFBFBD>es dans
$security_settings.</para></listitem> $security_settings.</para></listitem>
<listitem><para>Les templates ne peuvent Otre inclus que depuis <listitem><para>Les templates ne peuvent Otre inclus que depuis
des rTpertoires listTs dans le tableau $security_dir.</para></listitem> des r<EFBFBD>pertoires list<EFBFBD>s dans le tableau $security_dir.</para></listitem>
<listitem><para>Les fichiers locaux ne peuvent Otre rTcupTrTs que depuis <listitem><para>Les fichiers locaux ne peuvent Otre r<EFBFBD>cup<EFBFBD>r<EFBFBD>s que depuis
les rTpertoires listTs dans le tableau $security_dir en les r<EFBFBD>pertoires list<EFBFBD>s dans le tableau $security_dir en
utilisant {fetch}.</para></listitem> utilisant {fetch}.</para></listitem>
<listitem><para>Les balises {php}{/php} ne sont pas autorisTes.</para></listitem> <listitem><para>Les balises {php}{/php} ne sont pas autoris<EFBFBD>es.</para></listitem>
<listitem><para>Les fonctions PHP ne sont pas autorisTes en tant <listitem><para>Les fonctions PHP ne sont pas autoris<EFBFBD>es en tant
modificateurs, a part celles spTcifiTes dans $security_settings.</para></listitem> modificateurs, a part celles sp<EFBFBD>cifi<EFBFBD>es dans $security_settings.</para></listitem>
</itemizedlist> </itemizedlist>
</sect1> </sect1>
<sect1 id="variable.secure.dir"> <sect1 id="variable.secure.dir">
<title>$secure_dir</title> <title>$secure_dir</title>
<para> <para>
Il s'agit d'un tableau contenant tous les rTpertoires locaux qui sont Il s'agit d'un tableau contenant tous les r<EFBFBD>pertoires locaux qui sont
considTrTs comme sTcurisTs. {include} et {fetch} l'utilisent quand consid<EFBFBD>r<EFBFBD>s comme s<EFBFBD>curis<EFBFBD>s. {include} et {fetch} l'utilisent quand
la sTcuritT est activTe. la s<EFBFBD>curit<EFBFBD> est activ<EFBFBD>e.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.security.settings"> <sect1 id="variable.security.settings">
<title>$security_settings</title> <title>$security_settings</title>
<para> <para>
Ces rTglages servent a Tcraser ou spTcifier les paramFtres de sTcuritT Ces r<EFBFBD>glages servent a Tcraser ou sp<EFBFBD>cifier les param<EFBFBD>tres de s<EFBFBD>curit<EFBFBD>
quand celle-ci est activTe. Les rTglages possibles sont les suivants : quand celle-ci est activ<EFBFBD>e. Les r<EFBFBD>glages possibles sont les suivants :
</para> </para>
<itemizedlist> <itemizedlist>
<listitem><para>PHP_HANDLING - true/false. Si vrai, le <listitem><para>PHP_HANDLING - true/false. Si vrai, le
rTglage $php_handling n'est pas vTrifiT.</para></listitem> r<EFBFBD>glage $php_handling n'est pas v<EFBFBD>rifi<EFBFBD>.</para></listitem>
<listitem><para>IF_FUNCS - Le tableau des noms de fonctions <listitem><para>IF_FUNCS - Le tableau des noms de fonctions
PHP autorisTes dans les intructions IF.</para></listitem> PHP autoris<EFBFBD>es dans les intructions IF.</para></listitem>
<listitem><para>INCLUDE_ANY - true/false. Si vrai, <listitem><para>INCLUDE_ANY - true/false. Si vrai,
les templates peuvent Otre inclus de n'importe o<>, quelque soit les templates peuvent Otre inclus de n'importe o<>, quelque soit
le contenu de $secure_dir.</para></listitem> le contenu de $secure_dir.</para></listitem>
<listitem><para>PHP_TAGS - true/false. Si vrai, <listitem><para>PHP_TAGS - true/false. Si vrai,
les balises {php}{/php} sont autorisTes dans les templates.</para></listitem> les balises {php}{/php} sont autoris<EFBFBD>es dans les templates.</para></listitem>
<listitem><para>MODIFIER_FUNCS - Le tableau des noms de fonctions <listitem><para>MODIFIER_FUNCS - Le tableau des noms de fonctions
autorisTes a Otre utilisTes comme modificateurs de variables.</para></listitem> autoris<EFBFBD>es a Otre utilis<EFBFBD>es comme modificateurs de variables.</para></listitem>
</itemizedlist> </itemizedlist>
</sect1> </sect1>
<sect1 id="variable.trusted.dir"> <sect1 id="variable.trusted.dir">
<title>$trusted_dir</title> <title>$trusted_dir</title>
<para> <para>
$trusted_dir n'est utilisTe lorsque $security est activTe. C'est un $trusted_dir n'est utilis<EFBFBD>e lorsque $security est activ<EFBFBD>e. C'est un
tableau de tous les rTpertoires qui peuvent Otre considTrTs comme svrs. tableau de tous les r<EFBFBD>pertoires qui peuvent Otre consid<EFBFBD>r<EFBFBD>s comme svrs.
Les rTpertoires svrs sont ceux qui contiennent des scripts PHP qui Les r<EFBFBD>pertoires svrs sont ceux qui contiennent des scripts PHP qui
sont exTcutTs directement depuis les templates avec sont ex<EFBFBD>cut<EFBFBD>s directement depuis les templates avec
<link linkend="language.function.include.php">{include_php}</link>. <link linkend="language.function.include.php">{include_php}</link>.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.left.delimiter"> <sect1 id="variable.left.delimiter">
<title>$left_delimiter</title> <title>$left_delimiter</title>
<para> <para>
Il s'agit du dTlimiteur gauche utilisT par le moteur de templates. La Il s'agit du d<EFBFBD>limiteur gauche utilis<EFBFBD> par le moteur de templates. La
valeur par dTfaut est "{". valeur par d<EFBFBD>faut est "{".
</para> </para>
</sect1> </sect1>
<sect1 id="variable.right.delimiter"> <sect1 id="variable.right.delimiter">
<title>$right_delimiter</title> <title>$right_delimiter</title>
<para> <para>
Il s'agit du dTlimiteur droit utilisT par le moteur de templates. Il s'agit du d<EFBFBD>limiteur droit utilis<EFBFBD> par le moteur de templates.
La valeur par dTfaut est "}". La valeur par d<EFBFBD>faut est "}".
</para> </para>
</sect1> </sect1>
<sect1 id="variable.compiler.class"> <sect1 id="variable.compiler.class">
<title>$compiler_class</title> <title>$compiler_class</title>
<para> <para>
SpTcifie le nom de la classe du compilateur qui va Otre utilisTe pour Sp<EFBFBD>cifie le nom de la classe du compilateur qui va Otre utilis<EFBFBD>e pour
compiler les templates. Le compilateur par dTfaut est compiler les templates. Le compilateur par d<EFBFBD>faut est
'Smarty_Compiler'. RTservT aux utilisateurs avancTs. 'Smarty_Compiler'. RTserv<EFBFBD> aux utilisateurs avanc<EFBFBD>s.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.request.vars.order"> <sect1 id="variable.request.vars.order">
<title>$request_vars_order</title> <title>$request_vars_order</title>
<para> <para>
L'ordre dans lequel les variables de requOtes sont enregistrTes, L'ordre dans lequel les variables de requ<EFBFBD>tes sont enregistr<EFBFBD>es,
identique a variables_order dans php.ini. identique a variables_order dans php.ini.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.compile.id"> <sect1 id="variable.compile.id">
<title>$compile_id</title> <title>$compile_id</title>
<para> <para>
Identifiant persistant du compilateur. On peut passer le mOme compile_id Identifiant persistant du compilateur. On peut passer le m<EFBFBD>me compile_id
a chaque appel de fonction mais une alternative consiste a rTgler ce a chaque appel de fonction mais une alternative consiste a r<EFBFBD>gler ce
compile_id, qui sera utilisT implicitement. compile_id, qui sera utilis<EFBFBD> implicitement.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.use.sub.dirs"> <sect1 id="variable.use.sub.dirs">
<title>$use_sub_dirs</title> <title>$use_sub_dirs</title>
<para> <para>
RTgler cela a faux si votre environnement PHP n'autorise pas Smarty a crTer RTgler cela a faux si votre environnement PHP n'autorise pas Smarty a cr<EFBFBD>er
des sous-rTpertoires. Les sous-rTpertoires sont efficaces, utilisez-les quand des sous-r<EFBFBD>pertoires. Les sous-r<EFBFBD>pertoires sont efficaces, utilisez-les quand
vous le pouvez. vous le pouvez.
</para> </para>
</sect1> </sect1>
<sect1 id="variable.default.modifiers"> <sect1 id="variable.default.modifiers">
<title>$default_modifiers</title> <title>$default_modifiers</title>
<para> <para>
Il s'agit d'un tableau de modificateurs utilisT pour assigner Il s'agit d'un tableau de modificateurs utilis<EFBFBD> pour assigner
une valeur par dTfaut a chaque variable dans un template. une valeur par d<EFBFBD>faut a chaque variable dans un template.
Par exemple, pour par dTfaut Tchapper les caractFres HTML de chaque variable, Par exemple, pour par d<EFBFBD>faut Tchapper les caract<EFBFBD>res HTML de chaque variable,
utilisez array('escape:"htmlall"'); Pour rendre une variable indTpendante utilisez array('escape:"htmlall"'); Pour rendre une variable ind<EFBFBD>pendante
des modificateurs par dTfaut, passez-lui en paramFtre le modificateur des modificateurs par d<EFBFBD>faut, passez-lui en param<EFBFBD>tre le modificateur
"nodefaults" : {$var|nodefaults}. "nodefaults" : {$var|nodefaults}.
</para> </para>
</sect1> </sect1>
@@ -508,4 +508,4 @@ End:
vim600: syn=xml fen fdm=syntax fdl=2 si vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml vim: et tw=78 syn=sgml
vi: ts=1 sw=1 vi: ts=1 sw=1
--> -->

View File

@@ -3,31 +3,31 @@
<chapter id="caching"> <chapter id="caching">
<title>Cache</title> <title>Cache</title>
<para> <para>
Le cache est utilisTe pour accTlTrer l'appel de <link Le cache est utilis<EFBFBD>e pour acc<EFBFBD>l<EFBFBD>rer l'appel de <link
linkend="api.display">display()</link> ou de <link linkend="api.display">display()</link> ou de <link
linkend="api.fetch">fetch()</link> en sauvegardant leur rTsultat linkend="api.fetch">fetch()</link> en sauvegardant leur r<EFBFBD>sultat
dans un fichier. Si un fichier de cache est disponible lors d'un appel, dans un fichier. Si un fichier de cache est disponible lors d'un appel,
il sera affichT sans qu'il ne soit nTcessaire de regTnTrer le rTsultat. il sera affich<EFBFBD> sans qu'il ne soit n<EFBFBD>cessaire de reg<EFBFBD>n<EFBFBD>rer le r<EFBFBD>sultat.
Le systFme de cache Le syst<EFBFBD>me de cache
peut accTlTrer les traitements de faton impressionnante, en particulier les peut acc<EFBFBD>l<EFBFBD>rer les traitements de faton impressionnante, en particulier les
templates dont la compilation est trFs longue. Comme le rTsultat de templates dont la compilation est tr<EFBFBD>s longue. Comme le r<EFBFBD>sultat de
display() ou de fetch() est dans le cache, un fichier de cache peut display() ou de fetch() est dans le cache, un fichier de cache peut
Otre composT de plusieurs fichiers de templates, plusieurs fichiers Otre compos<EFBFBD> de plusieurs fichiers de templates, plusieurs fichiers
de configuration, etc. de configuration, etc.
</para> </para>
<para> <para>
Comme les templates sont dynamiques, il est important de faire attention Comme les templates sont dynamiques, il est important de faire attention
a la faton dont les fichiers de cache sont gTnTrTs, et pour combien de temps. a la faton dont les fichiers de cache sont g<EFBFBD>n<EFBFBD>r<EFBFBD>s, et pour combien de temps.
Si par exemple vous affichez la page d'accueil de votre site Web dont le Si par exemple vous affichez la page d'accueil de votre site Web dont le
contenu ne change pas souvent, il peut Otre intTressant de mettre cette page contenu ne change pas souvent, il peut Otre int<EFBFBD>ressant de mettre cette page
dans le cache pour une heure ou plus. A l'inverse, si vous affichez une page dans le cache pour une heure ou plus. A l'inverse, si vous affichez une page
de mTtTo mises a jour toutes les minutes, mettre cette page en cache de m<EFBFBD>t<EFBFBD>o mises a jour toutes les minutes, mettre cette page en cache
n'a aucun sens. n'a aucun sens.
</para> </para>
<sect1 id="caching.setting.up"> <sect1 id="caching.setting.up">
<title>ParamTtrer le cache</title> <title>Param<EFBFBD>trer le cache</title>
<para> <para>
La premiFre chose a faire est d'activer le cache. Cela est fait en La premi<EFBFBD>re chose a faire est d'activer le cache. Cela est fait en
mettant <link linkend="variable.caching">$caching</link> = true mettant <link linkend="variable.caching">$caching</link> = true
(ou 1). (ou 1).
</para> </para>
@@ -42,50 +42,50 @@ $smarty->caching = true;
$smarty->display('index.tpl');</programlisting> $smarty->display('index.tpl');</programlisting>
</example> </example>
<para> <para>
Avec le cache activT, la fonction display('index.tpl') va afficher Avec le cache activ<EFBFBD>, la fonction display('index.tpl') va afficher
le template mais sauvegardera par la mOme occasion une copie du rTsultat le template mais sauvegardera par la m<EFBFBD>me occasion une copie du r<EFBFBD>sultat
dans un fichier (de cache) du rTpertoire dans un fichier (de cache) du r<EFBFBD>pertoire
<link linkend="variable.cache.dir">$cache_dir</link>. Au prochain appel de <link linkend="variable.cache.dir">$cache_dir</link>. Au prochain appel de
display('index.tpl'), le fichier de cache sera prTfTrT a la rTutilisation display('index.tpl'), le fichier de cache sera pr<EFBFBD>f<EFBFBD>r<EFBFBD> a la r<EFBFBD>utilisation
du template. du template.
</para> </para>
<note> <note>
<title>Note technique</title> <title>Note technique</title>
<para> <para>
Les fichiers situTs dans $cache_dir sont nommTs de la mOme faton que les templates. Les fichiers situ<EFBFBD>s dans $cache_dir sont nomm<EFBFBD>s de la m<EFBFBD>me faton que les templates.
Bien qu'ils aient une extension ".php", ils ne sont pas vraiment exTcutable. Bien qu'ils aient une extension ".php", ils ne sont pas vraiment ex<EFBFBD>cutable.
N'Tditez surtout pas ces fichiers ! N'Tditez surtout pas ces fichiers !
</para> </para>
</note> </note>
<para> <para>
Tout fichier de cache a une durTe de vie limitTe dTterminTe par <link Tout fichier de cache a une dur<EFBFBD>e de vie limit<EFBFBD>e d<EFBFBD>termin<EFBFBD>e par <link
linkend="variable.cache.lifetime">$cache_lifetime</link>. La valeur par linkend="variable.cache.lifetime">$cache_lifetime</link>. La valeur par
dTfaut est 3600 secondes, i.e. 1 heure. Une fois que cette durTe est d<EFBFBD>faut est 3600 secondes, i.e. 1 heure. Une fois que cette dur<EFBFBD>e est
dTpassTe, le cache est regTnTrT. Il est possible de donner d<EFBFBD>pass<EFBFBD>e, le cache est reg<EFBFBD>n<EFBFBD>r<EFBFBD>. Il est possible de donner
une durTe d'expiration propre a chaque fichier de cache en rTglant une dur<EFBFBD>e d'expiration propre a chaque fichier de cache en r<EFBFBD>glant
$caching = 2. $caching = 2.
Se reporter a la documentation de <link Se reporter a la documentation de <link
linkend="variable.cache.lifetime">$cache_lifetime</link> pour plus de linkend="variable.cache.lifetime">$cache_lifetime</link> pour plus de
dTtails. d<EFBFBD>tails.
</para> </para>
<example> <example>
<title>rTglage individuel de cache_lifetime</title> <title>r<EFBFBD>glage individuel de cache_lifetime</title>
<programlisting> <programlisting>
require('Smarty.class.php'); require('Smarty.class.php');
$smarty = new Smarty; $smarty = new Smarty;
$smarty->caching = 2; // rTgler la durTe de vie individuellement $smarty->caching = 2; // r<EFBFBD>gler la dur<EFBFBD>e de vie individuellement
// rTgle la durTe de vie du cache a 15 minutes pour index.tpl // r<EFBFBD>gle la dur<EFBFBD>e de vie du cache a 15 minutes pour index.tpl
$smarty->cache_lifetime = 300; $smarty->cache_lifetime = 300;
$smarty->display('index.tpl'); $smarty->display('index.tpl');
// rTgle la durTe de vie du cache a 1 heure pour home.tpl // r<EFBFBD>gle la dur<EFBFBD>e de vie du cache a 1 heure pour home.tpl
$smarty->cache_lifetime = 3600; $smarty->cache_lifetime = 3600;
$smarty->display('home.tpl'); $smarty->display('home.tpl');
// NOTE : le rTglage suivant ne fonctionne pas quand $caching = 2. La durTe de vie // NOTE : le r<EFBFBD>glage suivant ne fonctionne pas quand $caching = 2. La dur<EFBFBD>e de vie
// du fichier de cache de home.tpl a dTja TtT rTglTe a 1 heure et ne respectera // du fichier de cache de home.tpl a d<EFBFBD>ja Tt<EFBFBD> r<EFBFBD>gl<EFBFBD>e a 1 heure et ne respectera
// plus la valeur de $cache_lifetime. Le cache de home.tpl expirera toujours // plus la valeur de $cache_lifetime. Le cache de home.tpl expirera toujours
// dans 1 heure. // dans 1 heure.
$smarty->cache_lifetime = 30; // 30 secondes $smarty->cache_lifetime = 30; // 30 secondes
@@ -94,10 +94,10 @@ $smarty->display('home.tpl');</programlisting>
<para> <para>
Si <link linkend="variable.compile.check">$compile_check</link> est actif, Si <link linkend="variable.compile.check">$compile_check</link> est actif,
chaque fichier de template et de configuration qui a un rapport chaque fichier de template et de configuration qui a un rapport
avec le fichier de cache sera vTrifiT pour dTtecter une Tventuelle avec le fichier de cache sera v<EFBFBD>rifi<EFBFBD> pour d<EFBFBD>tecter une Tventuelle
modification. Si l'un de ces fichiers a TtT modifiT depuis que le fichier de cache a TtT modification. Si l'un de ces fichiers a Tt<EFBFBD> modifi<EFBFBD> depuis que le fichier de cache a Tt<EFBFBD>
gTnTrT, le cache est immTdiatement regTnTrT. Ce processus est covteux, donc, g<EFBFBD>n<EFBFBD>r<EFBFBD>, le cache est imm<EFBFBD>diatement reg<EFBFBD>n<EFBFBD>r<EFBFBD>. Ce processus est covteux, donc,
pour des raisons de performances, mettez ce paramFtre a false pour une application pour des raisons de performances, mettez ce param<EFBFBD>tre a false pour une application
en production. en production.
</para> </para>
<example> <example>
@@ -113,16 +113,16 @@ $smarty->display('index.tpl');</programlisting>
</example> </example>
<para> <para>
Si <link linkend="variable.force.compile">$force_compile</link> est actif, Si <link linkend="variable.force.compile">$force_compile</link> est actif,
les fichiers de cache sont toujours regTnTrTs. Ceci revient finalement a les fichiers de cache sont toujours reg<EFBFBD>n<EFBFBD>r<EFBFBD>s. Ceci revient finalement a
dTsactiver le cache. $force_compile est utilisT a des fins de dTbogage, d<EFBFBD>sactiver le cache. $force_compile est utilis<EFBFBD> a des fins de d<EFBFBD>bogage,
un moyen plus efficace de dTsactiver le cache est de rTgler un moyen plus efficace de d<EFBFBD>sactiver le cache est de r<EFBFBD>gler
<link linkend="variable.caching">$caching</link> = false (ou 0). <link linkend="variable.caching">$caching</link> = false (ou 0).
</para> </para>
<para> <para>
La fonction <link linkend="api.is.cached">is_cached()</link> permet La fonction <link linkend="api.is.cached">is_cached()</link> permet
de tester si un template a ou non un fichier de cache valide. de tester si un template a ou non un fichier de cache valide.
Si vous disposez d'un template en cache qui requiert une requOte Si vous disposez d'un template en cache qui requiert une requ<EFBFBD>te
a une base de donnTes, vous pouvez utiliser cette mTthode plut(t a une base de donn<EFBFBD>es, vous pouvez utiliser cette m<EFBFBD>thode plut(t
que $compile_check. que $compile_check.
</para> </para>
<example> <example>
@@ -146,10 +146,10 @@ $smarty->display('index.tpl');</programlisting>
page avec la fonction de templates <link page avec la fonction de templates <link
linkend="language.function.insert">insert</link>. linkend="language.function.insert">insert</link>.
Imaginons que toute une page doit Otre mise en cache a part Imaginons que toute une page doit Otre mise en cache a part
une banniFre en bas a droite. En utilisant une fonction insert pour la une banni<EFBFBD>re en bas a droite. En utilisant une fonction insert pour la
banniFre, vous pouvez garder cet TlTment dynamique dans le contenu qui banni<EFBFBD>re, vous pouvez garder cet Tl<EFBFBD>ment dynamique dans le contenu qui
est en cache. Reportez-vous a la documentation est en cache. Reportez-vous a la documentation
<link linkend="language.function.insert">insert</link> pour plus de dTtails <link linkend="language.function.insert">insert</link> pour plus de d<EFBFBD>tails
et des exemples. et des exemples.
</para> </para>
<para> <para>
@@ -178,12 +178,12 @@ $smarty->display('index.tpl');</programlisting>
<sect1 id="caching.multiple.caches"> <sect1 id="caching.multiple.caches">
<title>Caches multiples pour une seule page</title> <title>Caches multiples pour une seule page</title>
<para> <para>
Vous pouvez avoir plusieurs fichiers de caches pour un mOme appel Vous pouvez avoir plusieurs fichiers de caches pour un m<EFBFBD>me appel
aux fonctions display() ou fetch(). Imaginons qu'un appel a display('index.tpl') aux fonctions display() ou fetch(). Imaginons qu'un appel a display('index.tpl')
puisse avoir plusieurs rTsultats, en fonction de certaines conditions, et que puisse avoir plusieurs r<EFBFBD>sultats, en fonction de certaines conditions, et que
vous vouliez des fichiers de cache sTparTs pour chacun d'eux. Vous vous vouliez des fichiers de cache s<EFBFBD>par<EFBFBD>s pour chacun d'eux. Vous
pouvez faire cela en passant un identifiant de cache (cache_id) en pouvez faire cela en passant un identifiant de cache (cache_id) en
deuxiFme paramFtre a l'appel de fonction. deuxi<EFBFBD>me param<EFBFBD>tre a l'appel de fonction.
</para> </para>
<example> <example>
<title>Passage d'un cache_id a display()</title> <title>Passage d'un cache_id a display()</title>
@@ -200,8 +200,8 @@ $smarty->display('index.tpl',$my_cache_id);</programlisting>
<para> <para>
Nous passons ci-dessus la variable $my_cache_id a display() comme Nous passons ci-dessus la variable $my_cache_id a display() comme
identifiant de cache. Pour chaque valeur distincte de $my_cache_id, identifiant de cache. Pour chaque valeur distincte de $my_cache_id,
un fichier de cache distinct va Otre crTT. Dans cet exemple, un fichier de cache distinct va Otre cr<EFBFBD>T. Dans cet exemple,
"article_id" a TtT passT dans l'URL et est utilisT en tant qu'identifiant "article_id" a Tt<EFBFBD> pass<EFBFBD> dans l'URL et est utilis<EFBFBD> en tant qu'identifiant
de cache. de cache.
</para> </para>
<note> <note>
@@ -210,19 +210,19 @@ $smarty->display('index.tpl',$my_cache_id);</programlisting>
Soyez prudent en passant des valeurs depuis un client (navigateur Web) Soyez prudent en passant des valeurs depuis un client (navigateur Web)
vers Smarty (ou vers n'importe quelle application PHP). Bien que l'exemple vers Smarty (ou vers n'importe quelle application PHP). Bien que l'exemple
ci-dessus consistant a utiliser article_id depuis l'URL puisse paraetre ci-dessus consistant a utiliser article_id depuis l'URL puisse paraetre
commode, le rTsultat peut s'avTrer mauvais. L'identifiant commode, le r<EFBFBD>sultat peut s'av<EFBFBD>rer mauvais. L'identifiant
de cache est utilisT pour crTer un rTpertoire sur le systFme de fichiers, de cache est utilis<EFBFBD> pour cr<EFBFBD>er un r<EFBFBD>pertoire sur le syst<EFBFBD>me de fichiers,
donc si l'utilisateur dTcide de donner une trFs grande valeur a article_id donc si l'utilisateur d<EFBFBD>cide de donner une tr<EFBFBD>s grande valeur a article_id
ou d'Tcrire un script qui envoie des article_id de faton alTatoire, ou d'Tcrire un script qui envoie des article_id de faton al<EFBFBD>atoire,
cela pourra causer des problFmes cotT serveur. Assurez-vous de bien cela pourra causer des probl<EFBFBD>mes cot<EFBFBD> serveur. Assurez-vous de bien
tester toute donnTe passTe en paramFtre avant de l'utiliser. Dans cet tester toute donn<EFBFBD>e pass<EFBFBD>e en param<EFBFBD>tre avant de l'utiliser. Dans cet
exemple, peut-Otre savez-vous que article_id a une longueur de 10 exemple, peut-Otre savez-vous que article_id a une longueur de 10
caractFres, est exclusivement composT de caractFres alph-numTriques et caract<EFBFBD>res, est exclusivement compos<EFBFBD> de caract<EFBFBD>res alph-num<EFBFBD>riques et
doit avoir une valeur contenue dans la base de donnTes. VTrifiez-le bien ! doit avoir une valeur contenue dans la base de donn<EFBFBD>es. VTrifiez-le bien !
</para> </para>
</note> </note>
<para> <para>
Assurez-vous de bien passer le mOme identifiant aux fonctions Assurez-vous de bien passer le m<EFBFBD>me identifiant aux fonctions
<link linkend="api.is.cached">is_cached()</link> et <link linkend="api.is.cached">is_cached()</link> et
<link linkend="api.clear.cache">clear_cache()</link>. <link linkend="api.clear.cache">clear_cache()</link>.
</para> </para>
@@ -246,7 +246,7 @@ $smarty->display('index.tpl',$my_cache_id);</programlisting>
</example> </example>
<para> <para>
Vous pouvez effacer tous les fichiers de cache pour un identifiant Vous pouvez effacer tous les fichiers de cache pour un identifiant
de cache particulier en passant null en tant que premier paramFtre de cache particulier en passant null en tant que premier param<EFBFBD>tre
a clear_cache(). a clear_cache().
</para> </para>
<example> <example>
@@ -263,17 +263,17 @@ $smarty->clear_cache(null,"sports");
$smarty->display('index.tpl',"sports");</programlisting> $smarty->display('index.tpl',"sports");</programlisting>
</example> </example>
<para> <para>
De cette maniFre vous pouvez "grouper" vos fichiers de cache en leur De cette mani<EFBFBD>re vous pouvez "grouper" vos fichiers de cache en leur
donnant le mOme identifiant. donnant le m<EFBFBD>me identifiant.
</para> </para>
</sect1> </sect1>
<sect1 id="caching.groups"> <sect1 id="caching.groups">
<title>groupes de fichiers de cache</title> <title>groupes de fichiers de cache</title>
<para> <para>
Vous pouvez faire des groupements plus TlaborTs en paramTtrant les Vous pouvez faire des groupements plus Tlabor<EFBFBD>s en param<EFBFBD>trant les
groupes d'identifiant de cache. Il suffit de sTparer chaque sous-groupes groupes d'identifiant de cache. Il suffit de s<EFBFBD>parer chaque sous-groupes
avec une barre verticale "|" dans la valeur de l'identifiant de cache. avec une barre verticale "|" dans la valeur de l'identifiant de cache.
Vous pouvez faire autant de sous-groupes que vous le dTsirez. Vous pouvez faire autant de sous-groupes que vous le d<EFBFBD>sirez.
</para> </para>
<example> <example>
<title>groupes d'identifiants de cache</title> <title>groupes d'identifiants de cache</title>
@@ -296,11 +296,11 @@ $smarty->display('index.tpl',"sports|basketball");</programlisting>
<note> <note>
<title>Note technique</title> <title>Note technique</title>
<para> <para>
Le systFme de cache n'utilise PAS le chemin vers le template en quoi Le syst<EFBFBD>me de cache n'utilise PAS le chemin vers le template en quoi
que ce soit pour l'identifiant de cache. Si par exemple vous que ce soit pour l'identifiant de cache. Si par exemple vous
faites display('themes/blue/index.tpl'), vous ne pouvez pas effacer tous faites display('themes/blue/index.tpl'), vous ne pouvez pas effacer tous
les fichiers de cache dans le rTpertoire "theme/blue". Si vous voulez les fichiers de cache dans le r<EFBFBD>pertoire "theme/blue". Si vous voulez
faire cela, vous devez les grouper avec un mOme identifiant de cache, faire cela, vous devez les grouper avec un m<EFBFBD>me identifiant de cache,
display('themes/blue/index.tpl','themes|blue'). Vous pouvez ensuite effacer les display('themes/blue/index.tpl','themes|blue'). Vous pouvez ensuite effacer les
fichiers de cache pour blue et theme avec clear_cache(null,'theme|blue'). fichiers de cache pour blue et theme avec clear_cache(null,'theme|blue').
</para> </para>
@@ -326,4 +326,4 @@ End:
vim600: syn=xml fen fdm=syntax fdl=2 si vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml vim: et tw=78 syn=sgml
vi: ts=1 sw=1 vi: ts=1 sw=1
--> -->

View File

@@ -4,48 +4,48 @@
<title>Etendre Smarty avec des plugins</title> <title>Etendre Smarty avec des plugins</title>
<para> <para>
La version 2.0 a introduit l'architecture de plugin qui est La version 2.0 a introduit l'architecture de plugin qui est
utilisTe pour pratiquement toute les fonctionnalitTs utilis<EFBFBD>e pour pratiquement toute les fonctionnalit<EFBFBD>s
personnalisables de Smarty. Ceci comprend : personnalisables de Smarty. Ceci comprend :
<itemizedlist spacing="compact"> <itemizedlist spacing="compact">
<listitem><simpara>les fonctions</simpara></listitem> <listitem><simpara>les fonctions</simpara></listitem>
<listitem><simpara>les modificateurs</simpara></listitem> <listitem><simpara>les modificateurs</simpara></listitem>
<listitem><simpara>les fonctions de blocs</simpara></listitem> <listitem><simpara>les fonctions de blocs</simpara></listitem>
<listitem><simpara>les fonctions de compilation</simpara></listitem> <listitem><simpara>les fonctions de compilation</simpara></listitem>
<listitem><simpara>les filtres de prT-compilation</simpara></listitem> <listitem><simpara>les filtres de pr<EFBFBD>-compilation</simpara></listitem>
<listitem><simpara>les filtres de post-compilation</simpara></listitem> <listitem><simpara>les filtres de post-compilation</simpara></listitem>
<listitem><simpara>les filtres de sorties</simpara></listitem> <listitem><simpara>les filtres de sorties</simpara></listitem>
<listitem><simpara>les ressources</simpara></listitem> <listitem><simpara>les ressources</simpara></listitem>
<listitem><simpara>les insertions</simpara></listitem> <listitem><simpara>les insertions</simpara></listitem>
</itemizedlist> </itemizedlist>
A part pour les ressources, la compatibilitT avec les anciennes A part pour les ressources, la compatibilit<EFBFBD> avec les anciennes
fatons d'enregistrer les fonctions de gestion avec l'API register_ fatons d'enregistrer les fonctions de gestion avec l'API register_
est conservTe. Si vous n'avez pas utilisT cette API et que vous avez est conserv<EFBFBD>e. Si vous n'avez pas utilis<EFBFBD> cette API et que vous avez
a la place directement modifiT les variables de classes a la place directement modifi<EFBFBD> les variables de classes
<literal>$custom_funcs</literal>, <literal>$custom_mods</literal> et <literal>$custom_funcs</literal>, <literal>$custom_mods</literal> et
d'autres, vous devez alors modifier vos scripts pour utiliser d'autres, vous devez alors modifier vos scripts pour utiliser
l'API ou convertir vos fonctionnalitTs personnalisTes en plugins. l'API ou convertir vos fonctionnalit<EFBFBD>s personnalis<EFBFBD>es en plugins.
</para> </para>
<sect1> <sect1>
<title>Comment fonctionnent les plugins</title> <title>Comment fonctionnent les plugins</title>
<para> <para>
Les plugins sont toujours chargTs a la demande. Seuls les modificateurs Les plugins sont toujours charg<EFBFBD>s a la demande. Seuls les modificateurs
de variables, les ressources, etc invoquTs dans les scripts de templates de variables, les ressources, etc invoqu<EFBFBD>s dans les scripts de templates
seront chargTs. De plus, chaque plugin n'est chargT qu'une fois, et ce seront charg<EFBFBD>s. De plus, chaque plugin n'est charg<EFBFBD> qu'une fois, et ce
mOme si vous avez plusieurs instances de Smarty qui tournent dans m<EFBFBD>me si vous avez plusieurs instances de Smarty qui tournent dans
la mOme requOte. la m<EFBFBD>me requ<EFBFBD>te.
</para> </para>
<para> <para>
Les filtres de post/prT-compilation et les filtres de sortie sont des cas Les filtres de post/pr<EFBFBD>-compilation et les filtres de sortie sont des cas
un peu spTciaux. un peu sp<EFBFBD>ciaux.
Comme ils ne sont pas mentionnTs dans les templates, ils doivent Otre dTclarTs Comme ils ne sont pas mentionn<EFBFBD>s dans les templates, ils doivent Otre d<EFBFBD>clar<EFBFBD>s
ou chargTs explicitement via les fonctions de l'API avant que le template ou charg<EFBFBD>s explicitement via les fonctions de l'API avant que le template
ne soit exTcutT. L'ordre dans lequel les filtres multiples d'un mOme type ne soit ex<EFBFBD>cut<EFBFBD>. L'ordre dans lequel les filtres multiples d'un m<EFBFBD>me type
sont exTcutTs dTpend de l'ordre dans lequel ils sont enregistrTs ou chargTs. sont ex<EFBFBD>cut<EFBFBD>s d<EFBFBD>pend de l'ordre dans lequel ils sont enregistr<EFBFBD>s ou charg<EFBFBD>s.
</para> </para>
<para> <para>
Il n'existe qu'un seul rTpertoire de plugin (pour des raisons de performances). Il n'existe qu'un seul r<EFBFBD>pertoire de plugin (pour des raisons de performances).
Pour installer un plugin, copiez-le simplement dans le rTpertoire et Smarty Pour installer un plugin, copiez-le simplement dans le r<EFBFBD>pertoire et Smarty
l'utilisera automatiquement. l'utilisera automatiquement.
</para> </para>
</sect1> </sect1>
@@ -54,10 +54,10 @@
<title>Conventions de nommage</title> <title>Conventions de nommage</title>
<para> <para>
Les fichiers et les fonctions de plugins doivent suivre une convention Les fichiers et les fonctions de plugins doivent suivre une convention
de nommage trFs spTcifique pour Otre localisTs par Smarty. de nommage tr<EFBFBD>s sp<EFBFBD>cifique pour Otre localis<EFBFBD>s par Smarty.
</para> </para>
<para> <para>
Les fichiers de plugins doivent Otre nommTs de la faton suivante : Les fichiers de plugins doivent Otre nomm<EFBFBD>s de la faton suivante :
<blockquote> <blockquote>
<para> <para>
<filename> <filename>
@@ -91,7 +91,7 @@
</para> </para>
<para> <para>
Les fonctions de plugins dans les fichiers de plugins doivent Otre Les fonctions de plugins dans les fichiers de plugins doivent Otre
nommTes de la faton suivante : nomm<EFBFBD>es de la faton suivante :
<blockquote> <blockquote>
<para> <para>
<function>smarty_<replaceable>type</replaceable>_<replaceable>nom</replaceable></function> <function>smarty_<replaceable>type</replaceable>_<replaceable>nom</replaceable></function>
@@ -99,40 +99,40 @@
</blockquote> </blockquote>
</para> </para>
<para> <para>
Les significations de <literal>type</literal> et de <literal>nom</literal> sont les mOmes Les significations de <literal>type</literal> et de <literal>nom</literal> sont les m<EFBFBD>mes
que prTcTdemment. que pr<EFBFBD>c<EFBFBD>demment.
</para> </para>
<para> <para>
Smarty donnera des messages d'erreur appropriT si le fichier de plugin Smarty donnera des messages d'erreur appropri<EFBFBD> si le fichier de plugin
n'est pas trouvT, ou si le fichier ou la fonction de plugin ne sont n'est pas trouv<EFBFBD>, ou si le fichier ou la fonction de plugin ne sont
pas nommTs correctement. pas nomm<EFBFBD>s correctement.
</para> </para>
</sect1> </sect1>
<sect1 id="plugins.writing"> <sect1 id="plugins.writing">
<title>Ecrire des plugins</title> <title>Ecrire des plugins</title>
<para> <para>
Les plugins peuvent Otre soit chargTs automatiquement par Smarty Les plugins peuvent Otre soit charg<EFBFBD>s automatiquement par Smarty
depuis le systFme de fichier, soit Otre dTclarTs depuis le syst<EFBFBD>me de fichier, soit Otre d<EFBFBD>clar<EFBFBD>s
pendant l'exTcution via une fonction register_* de l'API. Ils peuvent pendant l'ex<EFBFBD>cution via une fonction register_* de l'API. Ils peuvent
aussi Otre dTsallouTs en utilisant une fonction unregister_* de aussi Otre d<EFBFBD>sallou<EFBFBD>s en utilisant une fonction unregister_* de
l'API. l'API.
</para> </para>
<para> <para>
Pour les plugins qui ne sont pas enregistrTs pendant l'exTcution, le nom Pour les plugins qui ne sont pas enregistr<EFBFBD>s pendant l'ex<EFBFBD>cution, le nom
des fonctions n'ont pas a suivre la convention de nommage. des fonctions n'ont pas a suivre la convention de nommage.
</para> </para>
<para> <para>
Si certaines fonctionnalitTs d'un plugin dTpendent d'un autre plugin Si certaines fonctionnalit<EFBFBD>s d'un plugin d<EFBFBD>pendent d'un autre plugin
(comme c'est le cas de certains plugins accompagnant Smarty), alors la maniFre appropriTe (comme c'est le cas de certains plugins accompagnant Smarty), alors la mani<EFBFBD>re appropri<EFBFBD>e
de charger le plugin est la suivante : de charger le plugin est la suivante :
</para> </para>
<programlisting> <programlisting>
require_once SMARTY_DIR . 'plugins/function.html_options.php';</programlisting> require_once SMARTY_DIR . 'plugins/function.html_options.php';</programlisting>
<para> <para>
Une rFgle gTnTrale est que chaque objet Smarty est toujours passT au plugin Une r<EFBFBD>gle g<EFBFBD>n<EFBFBD>rale est que chaque objet Smarty est toujours pass<EFBFBD> au plugin
en tant que dernier paramFtre (a part pour les modificateurs). en tant que dernier param<EFBFBD>tre (a part pour les modificateurs).
</para> </para>
</sect1> </sect1>
@@ -145,26 +145,26 @@ require_once SMARTY_DIR . 'plugins/function.html_options.php';</programlisting>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
Tous les attributs passTs aux fonctions de template a partir du template Tous les attributs pass<EFBFBD>s aux fonctions de template a partir du template
sont contenus dans le tableau associatif <parameter>$params</parameter>. sont contenus dans le tableau associatif <parameter>$params</parameter>.
Vous pouvez accTder a ces valeurs soit directement, par exemple Vous pouvez acc<EFBFBD>der a ces valeurs soit directement, par exemple
<varname>$params['start']</varname>, soit en utilisant <varname>$params['start']</varname>, soit en utilisant
<varname>extract($params)</varname> pour les importer dans la table <varname>extract($params)</varname> pour les importer dans la table
des symboles. des symboles.
</para> </para>
<para> <para>
Le retour de la fonction sera substituTe a la balise de fonction Le retour de la fonction sera substitu<EFBFBD>e a la balise de fonction
du template (fonction <function>fetch</function> par exemple). Sinon, du template (fonction <function>fetch</function> par exemple). Sinon,
la fonction peut simplement accomplir une autre tGche sans sortie la fonction peut simplement accomplir une autre tGche sans sortie
(la fonction <function>assign</function> par exemple) (la fonction <function>assign</function> par exemple)
</para> </para>
<para> <para>
Si la fonction a besoin d'assigner des variables aux templates ou d'utiliser Si la fonction a besoin d'assigner des variables aux templates ou d'utiliser
d'autres fonctionnalitTs fournies par Smarty, elle peut recevoir un d'autres fonctionnalit<EFBFBD>s fournies par Smarty, elle peut recevoir un
objet <parameter>$smarty</parameter> pour cela. objet <parameter>$smarty</parameter> pour cela.
</para> </para>
<para> <para>
RTfTrez-vous aussi a : RTf<EFBFBD>rez-vous aussi a :
<link linkend="api.register.function">register_function()</link>, <link linkend="api.register.function">register_function()</link>,
<link linkend="api.unregister.function">unregister_function()</link>. <link linkend="api.unregister.function">unregister_function()</link>.
</para> </para>
@@ -198,7 +198,7 @@ function smarty_function_eightball($params, &amp;$smarty)
</example> </example>
</para> </para>
<para> <para>
peut Otre utilisTe dans le template de la faton suivante : peut Otre utilis<EFBFBD>e dans le template de la faton suivante :
</para> </para>
<programlisting> <programlisting>
Question: Will we ever have time travel? Question: Will we ever have time travel?
@@ -240,9 +240,9 @@ function smarty_function_assign($params, &amp;$smarty)
<sect1 id="plugins.modifiers"><title>Modificateurs</title> <sect1 id="plugins.modifiers"><title>Modificateurs</title>
<para> <para>
Les modificateurs sont des petites fonctions appliquTes a une variable Les modificateurs sont des petites fonctions appliqu<EFBFBD>es a une variable
de template avant qu'elle ne soit affichTe ou utilisTe dans un autre contexte. de template avant qu'elle ne soit affich<EFBFBD>e ou utilis<EFBFBD>e dans un autre contexte.
Les modificateurs peuvent Otre chaenTs entre eux. Les modificateurs peuvent Otre chaen<EFBFBD>s entre eux.
</para> </para>
<funcsynopsis> <funcsynopsis>
<funcprototype> <funcprototype>
@@ -252,13 +252,13 @@ function smarty_function_assign($params, &amp;$smarty)
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
Le premier paramFtre passT au modificateur est la valeur Le premier param<EFBFBD>tre pass<EFBFBD> au modificateur est la valeur
sur laquelle le modificateur est supposT opTrer. Les autres paramFtres sur laquelle le modificateur est suppos<EFBFBD> op<EFBFBD>rer. Les autres param<EFBFBD>tres
peuvent Otre optionnels, dTpendant de quel genre d'opTration doit Otre peuvent Otre optionnels, d<EFBFBD>pendant de quel genre d'op<EFBFBD>ration doit Otre
effectuT. effectu<EFBFBD>.
</para> </para>
<para> <para>
Le modificateur doit retourner le rTsultat de son exTcution. Le modificateur doit retourner le r<EFBFBD>sultat de son ex<EFBFBD>cution.
</para> </para>
<para> <para>
Regardez aussi Regardez aussi
@@ -268,8 +268,8 @@ function smarty_function_assign($params, &amp;$smarty)
<example> <example>
<title>plugin modificateur simple</title> <title>plugin modificateur simple</title>
<para> <para>
Ce plugin est un alias d'une fonction PHP. Il n'a aucun paramFtre Ce plugin est un alias d'une fonction PHP. Il n'a aucun param<EFBFBD>tre
supplTmentaires. suppl<EFBFBD>mentaires.
</para> </para>
<programlisting> <programlisting>
&lt;?php &lt;?php
@@ -300,7 +300,7 @@ function smarty_modifier_capitalize($string)
* Type : modificateur * Type : modificateur
* Name : truncate * Name : truncate
* R(le : Tronque une chaene a une certaine longueur si * R(le : Tronque une chaene a une certaine longueur si
* nTcessaire, la coupe optionnellement au milieu * n<EFBFBD>cessaire, la coupe optionnellement au milieu
* d'un mot et ajoute la chaene $etc * d'un mot et ajoute la chaene $etc
* ------------------------------------------------------------- * -------------------------------------------------------------
*/ */
@@ -336,38 +336,38 @@ function smarty_modifier_truncate($string, $length = 80, $etc = '...',
</funcsynopsis> </funcsynopsis>
<para> <para>
Les fonctions de blocs sont des fonctions de la forme {func} .. {/func}. Les fonctions de blocs sont des fonctions de la forme {func} .. {/func}.
En d'autres mots, elles englobent des blocs de template et opFrent sur les En d'autres mots, elles englobent des blocs de template et op<EFBFBD>rent sur les
contenus de ces blocs. Les fonctions de blocs ont la prioritT sur les contenus de ces blocs. Les fonctions de blocs ont la priorit<EFBFBD> sur les
fonctions utilisateurs de mOme nom, ce qui signifie que vous ne fonctions utilisateurs de m<EFBFBD>me nom, ce qui signifie que vous ne
pouvez avoir une fonction utilisateur {func} et une fonction de bloc pouvez avoir une fonction utilisateur {func} et une fonction de bloc
{func} .. {/func}. {func} .. {/func}.
</para> </para>
<para> <para>
L'implTmentation de votre fonction est appelTe deux fois par Smarty : L'impl<EFBFBD>mentation de votre fonction est appel<EFBFBD>e deux fois par Smarty :
une fois pour la balise ouvrante et une autre fois pour la balise une fois pour la balise ouvrante et une autre fois pour la balise
fermante. fermante.
</para> </para>
<para> <para>
Seule la balise ouvrante d'une fonction de bloc peut avoir des attributs. Seule la balise ouvrante d'une fonction de bloc peut avoir des attributs.
Tous les attributs passTs par le template aux fonctions de templates sont Tous les attributs pass<EFBFBD>s par le template aux fonctions de templates sont
contenues dans le tableau associatif <parameter>$params</parameter>. contenues dans le tableau associatif <parameter>$params</parameter>.
Vous pouvez accTder a ces valeurs soit directement, par exemple Vous pouvez acc<EFBFBD>der a ces valeurs soit directement, par exemple
<varname>$params['start']</varname>, soit en utilisant <varname>$params['start']</varname>, soit en utilisant
<varname>extract($params)</varname> pour les importer dans la table <varname>extract($params)</varname> pour les importer dans la table
des symboles. Votre fonction a aussi accFs aux attributs de la balise des symboles. Votre fonction a aussi acc<EFBFBD>s aux attributs de la balise
ouvrante quand c'est la balise fermante qui est exTcutTe. ouvrante quand c'est la balise fermante qui est ex<EFBFBD>cut<EFBFBD>e.
</para> </para>
<para> <para>
La valeur de la variable <parameter>$content</parameter> est diffTrente La valeur de la variable <parameter>$content</parameter> est diff<EFBFBD>rente
selon si votre fonction est appelTe pour la balise ouvrante ou la selon si votre fonction est appel<EFBFBD>e pour la balise ouvrante ou la
balise fermante. Si c'est pour la balise ouvrante, elle sera a balise fermante. Si c'est pour la balise ouvrante, elle sera a
<literal>null</literal> et si c'est la balise fermante elle sera <literal>null</literal> et si c'est la balise fermante elle sera
Tgale au contenu du bloc de template. Notez que le bloc de template Tgale au contenu du bloc de template. Notez que le bloc de template
aura dTja TtT exTcutT par Smarty, vous recevrez donc la sortie du aura d<EFBFBD>ja Tt<EFBFBD> ex<EFBFBD>cut<EFBFBD> par Smarty, vous recevrez donc la sortie du
template et non sa source. template et non sa source.
</para> </para>
<para> <para>
Si vous imbriquT des fonctions de bloc, il est possible de connaetre Si vous imbriqu<EFBFBD> des fonctions de bloc, il est possible de connaetre
la fonction de bloc parente grGce a la variable <varname>$smarty->_tag_stack</varname>. la fonction de bloc parente grGce a la variable <varname>$smarty->_tag_stack</varname>.
Faites un var_dump() dessus et la structure devrait apparaetre. Faites un var_dump() dessus et la structure devrait apparaetre.
</para> </para>
@@ -402,11 +402,11 @@ function smarty_block_translate($params, $content, &amp;$smarty)
<sect1 id="plugins.compiler.functions"><title>Fonctions de compilation</title> <sect1 id="plugins.compiler.functions"><title>Fonctions de compilation</title>
<para> <para>
Les fonctions de compilation sont appelTes durant la compilation du template. Les fonctions de compilation sont appel<EFBFBD>es durant la compilation du template.
Elles sont utiles pour injecter du code PHP ou du contenu "statique variant Elles sont utiles pour injecter du code PHP ou du contenu "statique variant
avec le temps" (bandeau de pub par ex.). Si une fonction de compilation et avec le temps" (bandeau de pub par ex.). Si une fonction de compilation et
une fonction personnalisTe ont le mOme une fonction personnalis<EFBFBD>e ont le m<EFBFBD>me
nom, la fonction de compilation a prioritT. nom, la fonction de compilation a priorit<EFBFBD>.
</para> </para>
<funcsynopsis> <funcsynopsis>
<funcprototype> <funcprototype>
@@ -416,10 +416,10 @@ function smarty_block_translate($params, $content, &amp;$smarty)
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
Les fonctions de compilation ont deux paramFtres : une chaene contenant Les fonctions de compilation ont deux param<EFBFBD>tres : une chaene contenant
la balise - en gros, tout, depuis le nom de la fonction jusqu'au dTlimiteur de fin - et la balise - en gros, tout, depuis le nom de la fonction jusqu'au d<EFBFBD>limiteur de fin - et
l'objet Smarty. Elles sont censTes retourner le code PHP qui doit Otre l'objet Smarty. Elles sont cens<EFBFBD>es retourner le code PHP qui doit Otre
injectT dans le template compilT. inject<EFBFBD> dans le template compil<EFBFBD>.
</para> </para>
<para> <para>
Regardez aussi Regardez aussi
@@ -436,7 +436,7 @@ function smarty_block_translate($params, $content, &amp;$smarty)
* Fichier : compiler.tplheader.php * Fichier : compiler.tplheader.php
* Type : compilation * Type : compilation
* Nom : tplheader * Nom : tplheader
* R(le : Renvoie l'en-tOte contenant le nom du fichier * R(le : Renvoie l'en-t<EFBFBD>te contenant le nom du fichier
* source et le temps de compilation. * source et le temps de compilation.
* ------------------------------------------------------------- * -------------------------------------------------------------
*/ */
@@ -446,13 +446,13 @@ function smarty_compiler_tplheader($tag_arg, &amp;$smarty)
} }
?&gt;</programlisting> ?&gt;</programlisting>
<para> <para>
Cette fonction peut-Otre appelT depuis le template comme suivant : Cette fonction peut-Otre appel<EFBFBD> depuis le template comme suivant :
</para> </para>
<programlisting> <programlisting>
{* cette fonction n'est executTe que lors de la compilation *} {* cette fonction n'est execut<EFBFBD>e que lors de la compilation *}
{tplheader}</programlisting> {tplheader}</programlisting>
<para> <para>
Le code PHP rTsultant dans les templates compilTs ressemblerait a ta : Le code PHP r<EFBFBD>sultant dans les templates compil<EFBFBD>s ressemblerait a ta :
</para> </para>
<programlisting> <programlisting>
&lt;php &lt;php
@@ -462,11 +462,11 @@ echo 'index.tpl compiled at 2002-02-20 20:02';
</sect1> </sect1>
<sect1 id="plugins.prefilters.postfilters"> <sect1 id="plugins.prefilters.postfilters">
<title>filtres de prT-compilation/filtres de post-compilation</title> <title>filtres de pr<EFBFBD>-compilation/filtres de post-compilation</title>
<para> <para>
Les filtres de prT-compilation et les filtres de post-compilation ont des concepts trFs Les filtres de pr<EFBFBD>-compilation et les filtres de post-compilation ont des concepts tr<EFBFBD>s
proches. Ils diffTrent dans leur exTcution, plus prTcisTment dans le proches. Ils diff<EFBFBD>rent dans leur ex<EFBFBD>cution, plus pr<EFBFBD>cis<EFBFBD>ment dans le
moment o<> ils sont exTcutTs. moment o<> ils sont ex<EFBFBD>cut<EFBFBD>s.
</para> </para>
<funcsynopsis> <funcsynopsis>
<funcprototype> <funcprototype>
@@ -476,12 +476,12 @@ echo 'index.tpl compiled at 2002-02-20 20:02';
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
Les filtres de prT-compilation sont utilisTs pour transformer la source d'un template Les filtres de pr<EFBFBD>-compilation sont utilis<EFBFBD>s pour transformer la source d'un template
juste avant la compilation. Le premier paramFtre passT a la fonction juste avant la compilation. Le premier param<EFBFBD>tre pass<EFBFBD> a la fonction
de filtre de prT-compilation est la source du template, Tventuellement modifiTe par de filtre de pr<EFBFBD>-compilation est la source du template, Tventuellement modifi<EFBFBD>e par
d'autres filtre de prT-compilations. Le plugin est supposT retourner la source modifiTe. d'autres filtre de pr<EFBFBD>-compilations. Le plugin est suppos<EFBFBD> retourner la source modifi<EFBFBD>e.
Notez que cette source n'est sauvegardTe nulle part, elle est seulement Notez que cette source n'est sauvegard<EFBFBD>e nulle part, elle est seulement
utilisT pour la compilation. utilis<EFBFBD> pour la compilation.
</para> </para>
<funcsynopsis> <funcsynopsis>
<funcprototype> <funcprototype>
@@ -491,12 +491,12 @@ echo 'index.tpl compiled at 2002-02-20 20:02';
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
Les filtres de post-compilation sont utilisTs pour modifier la sortie du template Les filtres de post-compilation sont utilis<EFBFBD>s pour modifier la sortie du template
(le code PHP) juste aprFs que la compilation a TtT faite mais juste (le code PHP) juste apr<EFBFBD>s que la compilation a Tt<EFBFBD> faite mais juste
avant que le template ne soit sauvegardT sur le systFme de fichiers. avant que le template ne soit sauvegard<EFBFBD> sur le syst<EFBFBD>me de fichiers.
Le premier paramFtre passT a la fonction de filtre de post-compilation est le code Le premier param<EFBFBD>tre pass<EFBFBD> a la fonction de filtre de post-compilation est le code
du template compilT, Tventuellement dTja modifiT par d'autres filtre de post-compilations. du template compil<EFBFBD>, Tventuellement d<EFBFBD>ja modifi<EFBFBD> par d'autres filtre de post-compilations.
Le plugin est censT retourner la version modifiT du code. Le plugin est cens<EFBFBD> retourner la version modifi<EFBFBD> du code.
</para> </para>
<example> <example>
<title>plugin de filtre de post-compilation</title> <title>plugin de filtre de post-compilation</title>
@@ -506,7 +506,7 @@ echo 'index.tpl compiled at 2002-02-20 20:02';
* Smarty plugin * Smarty plugin
* ------------------------------------------------------------- * -------------------------------------------------------------
* Fichier : prefilter.pre01.php * Fichier : prefilter.pre01.php
* Type : filtre de prT-compilation * Type : filtre de pr<EFBFBD>-compilation
* Nom : pre01 * Nom : pre01
* R(le : Passe les balises HTML en minuscules. * R(le : Passe les balises HTML en minuscules.
* ------------------------------------------------------------- * -------------------------------------------------------------
@@ -543,9 +543,9 @@ echo 'index.tpl compiled at 2002-02-20 20:02';
<sect1 id="plugins.outputfilters"><title>Filtres de sortie</title> <sect1 id="plugins.outputfilters"><title>Filtres de sortie</title>
<para> <para>
Les plugins de filtres de sortie opFrent sur la sortie du template, Les plugins de filtres de sortie op<EFBFBD>rent sur la sortie du template,
aprFs que le template a TtT chargT et exTcutT, mais avant que apr<EFBFBD>s que le template a Tt<EFBFBD> charg<EFBFBD> et ex<EFBFBD>cut<EFBFBD>, mais avant que
la sortie ne soit affichTe. la sortie ne soit affich<EFBFBD>e.
</para> </para>
<funcsynopsis> <funcsynopsis>
<funcprototype> <funcprototype>
@@ -555,10 +555,10 @@ echo 'index.tpl compiled at 2002-02-20 20:02';
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
Le premier paramFtre passT a la fonction du filtre de sortie est la Le premier param<EFBFBD>tre pass<EFBFBD> a la fonction du filtre de sortie est la
sortie du template qui doit Otre modifiTe et le second paramFtre sortie du template qui doit Otre modifi<EFBFBD>e et le second param<EFBFBD>tre
est l'instance de Smarty appelant le plugin. Le plugin est supposT est l'instance de Smarty appelant le plugin. Le plugin est suppos<EFBFBD>
faire un traitement et en retourner le rTsultat. faire un traitement et en retourner le r<EFBFBD>sultat.
</para> </para>
<example> <example>
<title>plugin de filtre de sortie</title> <title>plugin de filtre de sortie</title>
@@ -569,7 +569,7 @@ echo 'index.tpl compiled at 2002-02-20 20:02';
* Fichier : outputfilter.protect_email.php * Fichier : outputfilter.protect_email.php
* Type : filtre de sortie * Type : filtre de sortie
* Nom : protect_email * Nom : protect_email
* R(le: Convertie les @ en %40 pour protTger des * R(le: Convertie les @ en %40 pour prot<EFBFBD>ger des
* robots spammers. * robots spammers.
* ------------------------------------------------------------- * -------------------------------------------------------------
*/ */
@@ -584,16 +584,16 @@ echo 'index.tpl compiled at 2002-02-20 20:02';
<sect1 id="plugins.resources"><title>Ressources</title> <sect1 id="plugins.resources"><title>Ressources</title>
<para> <para>
Les plugins ressources sont un moyen gTnTrique de fournir des sources Les plugins ressources sont un moyen g<EFBFBD>n<EFBFBD>rique de fournir des sources
de templates ou des composants de scripts PHP a Smarty. Quelques exemples de templates ou des composants de scripts PHP a Smarty. Quelques exemples
de ressources : bases de donnTes, LDAP, mTmoire partagTe, sockets, et ainsi de ressources : bases de donn<EFBFBD>es, LDAP, m<EFBFBD>moire partag<EFBFBD>e, sockets, et ainsi
de suite. de suite.
</para> </para>
<para> <para>
Il y au total 4 fonctions qui ont besoin d'Otre enregistrTes pour Il y au total 4 fonctions qui ont besoin d'Otre enregistr<EFBFBD>es pour
chaque type de ressource. Chaque fonction retoit le nom de la ressource demandTe chaque type de ressource. Chaque fonction retoit le nom de la ressource demand<EFBFBD>e
comme premier paramFtre et l'objet Smarty comme dernier paramFtre. comme premier param<EFBFBD>tre et l'objet Smarty comme dernier param<EFBFBD>tre.
Les autres paramFtres dTpendent de la fonction. Les autres param<EFBFBD>tres d<EFBFBD>pendent de la fonction.
</para> </para>
<funcsynopsis> <funcsynopsis>
<funcprototype> <funcprototype>
@@ -621,35 +621,35 @@ echo 'index.tpl compiled at 2002-02-20 20:02';
</funcsynopsis> </funcsynopsis>
<para> <para>
La premiFre fonction est supposTe rTcupTrer la ressource. Son second La premi<EFBFBD>re fonction est suppos<EFBFBD>e r<EFBFBD>cup<EFBFBD>rer la ressource. Son second
paramFtre est une variable passTe par rTfTrence o<> le rTsultat doit Otre param<EFBFBD>tre est une variable pass<EFBFBD>e par r<EFBFBD>f<EFBFBD>rence o<> le r<EFBFBD>sultat doit Otre
stockT. La fonction est supposTe retourner <literal>true</literal> si stock<EFBFBD>. La fonction est suppos<EFBFBD>e retourner <literal>true</literal> si
elle rTussi a rTcupTrer la ressource et <literal>false</literal> sinon. elle r<EFBFBD>ussi a r<EFBFBD>cup<EFBFBD>rer la ressource et <literal>false</literal> sinon.
</para> </para>
<para> <para>
La seconde fonction est supposTe rTcupTrer la date de derniFre modification La seconde fonction est suppos<EFBFBD>e r<EFBFBD>cup<EFBFBD>rer la date de derni<EFBFBD>re modification
de la ressource demandTe (comme un timestamp UNIX). Le second paramFtre de la ressource demand<EFBFBD>e (comme un timestamp UNIX). Le second param<EFBFBD>tre
est une variable passTe par rTfTrence dans laquelle la date doit est une variable pass<EFBFBD>e par r<EFBFBD>f<EFBFBD>rence dans laquelle la date doit
Otre stockTe. La fonction est supposTe renvoyer <literal>true</literal> si elle Otre stock<EFBFBD>e. La fonction est suppos<EFBFBD>e renvoyer <literal>true</literal> si elle
a rTussi a rTcupTrer la date et <literal>false</literal> sinon. a r<EFBFBD>ussi a r<EFBFBD>cup<EFBFBD>rer la date et <literal>false</literal> sinon.
</para> </para>
<para> <para>
La troisiFme fonction est supposTe retourner <literal>true</literal> La troisi<EFBFBD>me fonction est suppos<EFBFBD>e retourner <literal>true</literal>
ou <literal>false</literal> selon si la ressource demandTe est svre ou <literal>false</literal> selon si la ressource demand<EFBFBD>e est svre
ou non. La fonction est utilisTe seulement pour les ressources templates ou non. La fonction est utilis<EFBFBD>e seulement pour les ressources templates
mais doit tout de mOme Otre dTfinie. mais doit tout de m<EFBFBD>me Otre d<EFBFBD>finie.
</para> </para>
<para> <para>
La quatriFme fonction est supposTe retourner <literal>true</literal> La quatri<EFBFBD>me fonction est suppos<EFBFBD>e retourner <literal>true</literal>
ou <literal>false</literal> selon si on peut faire confiance ou ou <literal>false</literal> selon si on peut faire confiance ou
non a la ressource demandTe. Cette fonction est utilisTe seulement non a la ressource demand<EFBFBD>e. Cette fonction est utilis<EFBFBD>e seulement
pour les composants de scripts PHP demandTs par les balises pour les composants de scripts PHP demand<EFBFBD>s par les balises
<command>include_php</command> ou <command>insert</command> <command>include_php</command> ou <command>insert</command>
ayant un attribut <structfield>src</structfield>. Quoiqu'il en soit, ayant un attribut <structfield>src</structfield>. Quoiqu'il en soit,
elle doit Otre dTfinie pour les ressources templates. elle doit Otre d<EFBFBD>finie pour les ressources templates.
</para> </para>
<para> <para>
@@ -667,12 +667,12 @@ echo 'index.tpl compiled at 2002-02-20 20:02';
* Fichier : resource.db.php * Fichier : resource.db.php
* Type : ressource * Type : ressource
* Nom : db * Nom : db
* R(le : RTcupFre des templates depuis une base de donnTes * R(le : RTcup<EFBFBD>re des templates depuis une base de donn<EFBFBD>es
* ------------------------------------------------------------- * -------------------------------------------------------------
*/ */
function smarty_resource_db_source($tpl_name, &amp;$tpl_source, &amp;$smarty) function smarty_resource_db_source($tpl_name, &amp;$tpl_source, &amp;$smarty)
{ {
// fait des requOtes BD pour rTcupTrer votre template // fait des requ<EFBFBD>tes BD pour r<EFBFBD>cup<EFBFBD>rer votre template
// et remplir $tpl_source // et remplir $tpl_source
$sql = new SQL; $sql = new SQL;
$sql->query("select tpl_source $sql->query("select tpl_source
@@ -688,7 +688,7 @@ function smarty_resource_db_source($tpl_name, &amp;$tpl_source, &amp;$smarty)
function smarty_resource_db_timestamp($tpl_name, &amp;$tpl_timestamp, &amp;$smarty) function smarty_resource_db_timestamp($tpl_name, &amp;$tpl_timestamp, &amp;$smarty)
{ {
// fait des requOtes BD pour remplir $tpl_timestamp // fait des requ<EFBFBD>tes BD pour remplir $tpl_timestamp
$sql = new SQL; $sql = new SQL;
$sql->query("select tpl_timestamp $sql->query("select tpl_timestamp
from my_table from my_table
@@ -709,7 +709,7 @@ function smarty_resource_db_secure($tpl_name, &amp;$smarty)
function smarty_resource_db_trusted($tpl_name, &amp;$smarty) function smarty_resource_db_trusted($tpl_name, &amp;$smarty)
{ {
// inutilisTe pour les templates // inutilis<EFBFBD>e pour les templates
} }
?&gt;</programlisting> ?&gt;</programlisting>
</example> </example>
@@ -717,8 +717,8 @@ function smarty_resource_db_trusted($tpl_name, &amp;$smarty)
<sect1 id="plugins.inserts"><title>Insertions</title> <sect1 id="plugins.inserts"><title>Insertions</title>
<para> <para>
Les plugins d'insertion sont utilisTs pour implTmenter les fonctions Les plugins d'insertion sont utilis<EFBFBD>s pour impl<EFBFBD>menter les fonctions
qui sont appelTes par les balises qui sont appel<EFBFBD>es par les balises
<link linkend="language.function.insert"><command>insert</command></link> <link linkend="language.function.insert"><command>insert</command></link>
dans les templates. dans les templates.
</para> </para>
@@ -730,15 +730,15 @@ function smarty_resource_db_trusted($tpl_name, &amp;$smarty)
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
Le premier paramFtre passT a la fonction est une tableau associatif Le premier param<EFBFBD>tre pass<EFBFBD> a la fonction est une tableau associatif
d'attributs. Vous pouvez accTder a ces valeurs soit directement, par exemple d'attributs. Vous pouvez acc<EFBFBD>der a ces valeurs soit directement, par exemple
<varname>$params['start']</varname>, soit en utilisant <varname>$params['start']</varname>, soit en utilisant
<varname>extract($params)</varname> pour les importer dans la table <varname>extract($params)</varname> pour les importer dans la table
des symboles. des symboles.
</para> </para>
<para> <para>
La fonction d'insertion est supposTe retourner le rTsultat qui sera La fonction d'insertion est suppos<EFBFBD>e retourner le r<EFBFBD>sultat qui sera
substituT a la balise <command>insert</command> dans le template. substitu<EFBFBD> a la balise <command>insert</command> dans le template.
</para> </para>
<example> <example>
<title>plugin d'insertion</title> <title>plugin d'insertion</title>
@@ -750,7 +750,7 @@ function smarty_resource_db_trusted($tpl_name, &amp;$smarty)
* Fichier : insert.time.php * Fichier : insert.time.php
* Type : temps * Type : temps
* Nom : time * Nom : time
* R(le : Insert la date/heure courante conformTment * R(le : Insert la date/heure courante conform<EFBFBD>ment
* au format * au format
* ------------------------------------------------------------- * -------------------------------------------------------------
*/ */
@@ -787,4 +787,4 @@ End:
vim600: syn=xml fen fdm=syntax fdl=2 si vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml vim: et tw=78 syn=sgml
vi: ts=1 sw=1 vi: ts=1 sw=1
--> -->

View File

@@ -7,17 +7,17 @@
<sect1 id="constant.smarty.dir"> <sect1 id="constant.smarty.dir">
<title>SMARTY_DIR</title> <title>SMARTY_DIR</title>
<para> <para>
Il doit s'agir du chemin complet du rTpertoire o<> Il doit s'agir du chemin complet du r<EFBFBD>pertoire o<>
se trouvent les fichiers classes de Smarty. se trouvent les fichiers classes de Smarty.
S'il n'est pas dTfini, Smarty essaiera alors d'en S'il n'est pas d<EFBFBD>fini, Smarty essaiera alors d'en
dTterminer automatiquement la valeur. d<EFBFBD>terminer automatiquement la valeur.
S'il est dTfini, le chemin doit se terminer par un slash. S'il est d<EFBFBD>fini, le chemin doit se terminer par un slash.
</para> </para>
<example> <example>
<title>SMARTY_DIR</title> <title>SMARTY_DIR</title>
<programlisting> <programlisting>
// dTfinit le chemin du rTpertoire de Smarty // d<EFBFBD>finit le chemin du r<EFBFBD>pertoire de Smarty
define("SMARTY_DIR","/usr/local/lib/php/Smarty/"); define("SMARTY_DIR","/usr/local/lib/php/Smarty/");
require_once(SMARTY_DIR."Smarty.class.php");</programlisting> require_once(SMARTY_DIR."Smarty.class.php");</programlisting>
@@ -43,4 +43,4 @@ End:
vim600: syn=xml fen fdm=syntax fdl=2 si vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml vim: et tw=78 syn=sgml
vi: ts=1 sw=1 vi: ts=1 sw=1
--> -->