sync with EN

This commit is contained in:
yannick
2006-10-08 12:39:15 +00:00
parent a88922ae3a
commit bb46b87b66
17 changed files with 444 additions and 347 deletions

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.9 Maintainer: yannick Status: ready --> <!-- EN-Revision: 1.10 Maintainer: yannick Status: ready -->
<sect1 id="language.function.strip"> <sect1 id="language.function.strip">
<title>{strip}</title> <title>{strip}</title>
@@ -12,16 +12,15 @@
code illisible et impossible <20> maintenir. code illisible et impossible <20> maintenir.
</para> </para>
<para> <para>
Tout contenu situ<74> entre les balises {strip}{/strip} se verra Tout contenu situ<74> entre les balises <varname>{strip}{/strip}</varname> se verra
all<6C>g<EFBFBD> des espaces superflus et des retours chariots en d<>but ou en fin all<6C>g<EFBFBD> des espaces superflus et des retours chariots en d<>but ou en fin
de ligne, avant qu'il ne soit affich<63>. De la sorte, vous pouvez de ligne, avant qu'il ne soit affich<63>. De la sorte, vous pouvez
conserver vos templates lisibles, sans vous soucier des effets conserver vos templates lisibles, sans vous soucier des effets
ind<6E>sirables que peuvent apporter les espaces superflus. ind<6E>sirables que peuvent apporter les espaces superflus.
</para> </para>
<note> <note>
<title>Note technique</title>
<para> <para>
{strip}{/strip} n'affecte en aucun cas le contenu des variables de <varname>{strip}{/strip}</varname> n'affecte en aucun cas le contenu des variables de
template. Voir aussi le <link linkend="language.modifier.strip">modificateur template. Voir aussi le <link linkend="language.modifier.strip">modificateur
strip</link> pour un rendu identique pour les variables. strip</link> pour un rendu identique pour les variables.
</para> </para>
@@ -62,7 +61,7 @@
</para> </para>
<para> <para>
Voir aussi Voir aussi
le <link linkend="language.modifier.strip">modificateur strip</link>. le <link linkend="language.modifier.strip">modificateur <varname>strip</varname></link>.
</para> </para>
</sect1> </sect1>

View File

@@ -1,18 +1,19 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.4 Maintainer: yannick Status: ready --> <!-- EN-Revision: 1.5 Maintainer: yannick Status: ready -->
<chapter id="caching"> <chapter id="caching">
<title>Cache</title> <title>Cache</title>
<para> <para>
Le cache est utilis<69>e pour acc<63>l<EFBFBD>rer l'appel de <link Le cache est utilis<69>e pour acc<63>l<EFBFBD>rer l'appel de <link
linkend="api.display">display()</link> ou de <link linkend="api.display"><varname>display()</varname></link> ou de <link
linkend="api.fetch">fetch()</link> en sauvegardant leur r<>sultat linkend="api.fetch"><varname>fetch()</varname></link> en sauvegardant leur r<>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 affich<63> sans qu'il ne soit n<>cessaire de reg<65>n<EFBFBD>rer le r<>sultat. il sera affich<63> sans qu'il ne soit n<>cessaire de reg<65>n<EFBFBD>rer le r<>sultat.
Le syst<73>me de cache peut acc<63>l<EFBFBD>rer les traitements de fa<66>on impressionnante, Le syst<73>me de cache peut acc<63>l<EFBFBD>rer les traitements de fa<66>on impressionnante,
en particulier les templates dont la compilation est tr<74>s longue. Comme en particulier les templates dont la compilation est tr<74>s longue. Comme
le r<>sultat de <link linkend="api.display">display()</link> ou de le r<>sultat de <link linkend="api.display"><varname>display()</varname></link> ou de
<link linkend="api.fetch">fetch()</link>est dans le cache, un fichier de cache <link linkend="api.fetch"><varname>fetch()</varname></link>est dans le cache, un fichier de cache
peut <20>tre compos<6F> de plusieurs fichiers de templates, plusieurs fichiers peut <20>tre compos<6F> de plusieurs fichiers de templates, plusieurs fichiers
de configuration, etc. de configuration, etc.
</para> </para>

View File

@@ -1,28 +1,29 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.9 Maintainer: didou Status: ready --> <!-- EN-Revision: 1.10 Maintainer: didou Status: ready -->
<sect1 id="caching.cacheable"> <sect1 id="caching.cacheable">
<title>Contr<EFBFBD>ler la mise en cache des sorties des Plugins</title> <title>Contr<EFBFBD>ler la mise en cache des sorties des Plugins</title>
<para> <para>
Depuis Smarty-2.6.0, la mise en cache des plugins peut <20>tre d<>clar<61>e lors Depuis Smarty-2.6.0, la mise en cache des plugins peut <20>tre d<>clar<61>e lors
de leur inscription. Les troisi<73>mes param<61>tres de de leur inscription. Les troisi<73>mes param<61>tres de
<link linkend="api.register.block">register_block()</link>, <link linkend="api.register.block"><varname>register_block()</varname></link>,
<link linkend="api.register.compiler.function">register_compiler_function()</link> <link linkend="api.register.compiler.function">
et <link linkend="api.register.block">register_function()</link> sont appel<65>s <varname>register_compiler_function()</varname></link>
<parameter>$cacheable</parameter> et valent true par d<>faut, ce qui est et <link linkend="api.register.block"><varname>register_function()</varname></link> sont appel<65>s
<parameter>$cacheable</parameter> et valent &true; par d<>faut, ce qui est
aussi le comportement par d<>faut des versions de Smarty pr<70>c<EFBFBD>dent la 2.6.0 aussi le comportement par d<>faut des versions de Smarty pr<70>c<EFBFBD>dent la 2.6.0
</para> </para>
<para> <para>
Lors de l'inscription d'un plugin avec $cacheable=false, le plugin est Lors de l'inscription d'un plugin avec <literal>$cacheable=false</literal>, le plugin est
appel<65> <20> chaque fois que la page est affich<63>e, m<>me si la page vient du appel<65> <20> chaque fois que la page est affich<63>e, m<>me si la page vient du
cache. La fonction plugin se comporte presque comme la fonction cache. La fonction plugin se comporte presque comme la fonction
<link linkend="plugins.inserts">insert</link>. <link linkend="plugins.inserts"><varname>{insert}</varname></link>.
</para> </para>
<para> <para>
Contrairement <20> <link linkend="plugins.inserts">insert</link> Contrairement <20> <link linkend="plugins.inserts"><varname>{insert}</varname></link>
les attributs pour le plugin ne sont pas mis en cache par d<>faut. Cel<65> peut les attributs pour le plugin ne sont pas mis en cache par d<>faut. Cel<65> peut
<20>tre le cas en utilisant le quatri<72>me param<61>tre <20>tre le cas en utilisant le quatri<72>me param<61>tre
<parameter>$cache_attrs</parameter>. <parameter>$cache_attrs</parameter> <parameter>$cache_attrs</parameter>. <parameter>$cache_attrs</parameter>
@@ -36,10 +37,7 @@
<programlisting role="php"> <programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
$smarty->caching = 1;
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
function remaining_seconds($params, &$smarty) { function remaining_seconds($params, &$smarty) {
$remain = $params['endtime'] - time(); $remain = $params['endtime'] - time();
@@ -62,7 +60,7 @@ $smarty->display('index.tpl');
]]> ]]>
</programlisting> </programlisting>
<para> <para>
O<> index.tpl contient : O<> <filename>index.tpl</filename> contient :
</para> </para>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
@@ -70,7 +68,7 @@ Time Remaining: {remaining endtime=$obj->endtime}
]]> ]]>
</programlisting> </programlisting>
<para> <para>
Le nombre de secondes avant que la date de fin de $obj ne soit atteinte Le nombre de secondes avant que la date de fin de <literal>$obj</literal> ne soit atteinte
change <20> chaque affichage de la page, m<>me si la page est mise en cache. change <20> chaque affichage de la page, m<>me si la page est mise en cache.
Comme l'attribut endtime est mis en cache, il n'y a que l'objet qui ait Comme l'attribut endtime est mis en cache, il n'y a que l'objet qui ait
besoin d'<27>tre extrait de la base de donn<6E>es lors de la mise en cache de besoin d'<27>tre extrait de la base de donn<6E>es lors de la mise en cache de
@@ -97,17 +95,17 @@ $smarty->display('index.tpl');
]]> ]]>
</programlisting> </programlisting>
<para> <para>
O<> index.tpl contient : O<> <filename>index.tpl</filename> contient :
</para> </para>
<programlisting> <programlisting>
<![CDATA[ <![CDATA[
Page created: {"0"|date_format:"%D %H:%M:%S"} Cr<EFBFBD>ation de la page : {'0'|date_format:'%D %H:%M:%S'}
{dynamic} {dynamic}
Now is: {"0"|date_format:"%D %H:%M:%S"} Heure actuelle : {'0'|date_format:'%D %H:%M:%S'}
... do other stuff ... ... fa<EFBFBD>tes quelque chose ici ...
{/dynamic} {/dynamic}
]]> ]]>
@@ -116,9 +114,9 @@ Now is: {"0"|date_format:"%D %H:%M:%S"}
<para> <para>
Lors du rechargement de la page, vous remarquerez que les deux dates sont Lors du rechargement de la page, vous remarquerez que les deux dates sont
diff<66>rentes. L'une est "dynamique" et l'autre est "statique". Vous pouvez diff<66>rentes. L'une est <quote>dynamic</quote> et l'autre est <quote>static</quote>.
faire ce que vous voulez entre {dynamic}...{/dynamic} et <20>tre s<>rs que Vous pouvez faire ce que vous voulez entre <literal>{dynamic}...{/dynamic}</literal>
cel<EFBFBD> ne sera pas mis en cache comme le reste de la page. et <20>tre s<>rs que cela ne sera pas mis en cache comme le reste de la page.
</para> </para>
</sect1> </sect1>

View File

@@ -1,40 +1,61 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.6 Maintainer: yannick Status: ready --> <!-- EN-Revision: 1.7 Maintainer: yannick Status: ready -->
<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 <20>labor<6F>s en param<61>trant les Vous pouvez faire des groupements plus <20>labor<6F>s en param<61>trant les
groupes d'identifiant de cache. Il suffit de s<>parer chaque sous-groupe groupes de <parameter>$cache_id</parameter>. Il suffit de s<>parer chaque sous-groupe
avec une barre verticale "|" dans la valeur de l'identifiant de cache. avec une barre verticale <literal>|</literal> dans la valeur de <parameter>$cache_id</parameter>.
Vous pouvez faire autant de sous-groupes que vous le d<>sirez. Vous pouvez faire autant de sous-groupes que vous le d<>sirez.
</para> </para>
<para>
Vous pouvez voir les groupes de cache comme une hi<68>rarchie de dossiers. <itemizedlist>
Par exemple, un groupe de cache "a|b|c" peut <20>tre consid<69>r<EFBFBD> comme <listitem><para>
la hi<68>rarchie de dossiers "/a/b/c/". Ainsi, Vous pouvez voir les groupes de cache comme une hi<68>rarchie de dossiers.
<link linkend="api.clear.cache">clear_cache</link>(null,"a|b|c") supprimerait Par exemple, un groupe de cache <literal>'a|b|c'</literal> peut <20>tre consid<69>r<EFBFBD> comme
les fichiers "/a/b/c/*". clear_cache(null,"a|b") supprimerait les fichiers la hi<68>rarchie de dossiers <literal>'/a/b/c/'</literal>.
"/a/b/*". Si vous sp<73>cifiez un <link linkend="variable.compile.id">$compile_id</link> </para></listitem>
de cette fa<66>on : clear_cache(null,"a|b","foo"), il sera trait<69> comme un groupe de
cache appos<6F> "/a/b/c/foo/". Si vous sp<73>cifiez un nom de template de cette fa<66>on : <listitem><para>
clear_cache("foo.tpl","a|b|c"), alors Smarty tentera d'effacer "/a/b/c/foo.tpl". <literal>clear_cache(null,'a|b|c')</literal>
Vous ne POUVEZ PAS effacer un nom de template sp<73>cifi<66> sous un groupe de supprimera les fichiers
cache multiple comme "/a/b/*/foo.tpl", le groupement de cache fonctionne <literal>'/a/b/c/*'</literal>. <literal>clear_cache(null,'a|b')</literal>
UNIQUEMENT de gauche <20> droite. Vous pourriez vouloir grouper vos templates supprimera les fichiers <literal>'/a/b/*'</literal>.
sous un groupe de cache simple hi<68>rarchis<69> pour <20>tre capable de les effacer </para></listitem>
comme un groupe.
</para> <listitem><para>
Si vous sp<73>cifiez un
<link linkend="variable.compile.id"><parameter>$compile_id</parameter></link>
de cette fa<66>on <literal>clear_cache(null,'a|b','foo')</literal> il sera trait<69> comme un groupe de
cache appos<6F> <literal>'/a/b/c/foo/'</literal>.
</para></listitem>
<listitem><para>
Si vous sp<73>cifiez un nom de template de cette fa<66>on
<literal>clear_cache('foo.tpl','a|b|c')</literal> alors Smarty tentera d'effacer
<literal>'/a/b/c/foo.tpl'</literal>.
</para></listitem>
<listitem><para>
Vous ne POUVEZ PAS effacer un nom de template sp<73>cifi<66> sous un groupe de
cache multiple comme <literal>'/a/b/*/foo.tpl'</literal>, le groupement de cache fonctionne
UNIQUEMENT de gauche <20> droite. Vous pourriez vouloir grouper vos templates
sous un groupe de cache simple hi<68>rarchis<69> pour <20>tre capable de les effacer
comme un groupe.
</para></listitem>
</itemizedlist>
<para> <para>
Le groupement de cache ne devrait pas <20>tre confondu avec votre hi<68>rarchie Le groupement de cache ne devrait pas <20>tre confondu avec votre hi<68>rarchie
de dossiers de templates, le groupement de cache n'a aucune connaissance de dossiers de templates, le groupement de cache n'a aucune connaissance
de la fa<66>on dont vos templates sont structur<75>s. Donc, par exemple, si de la fa<66>on dont vos templates sont structur<75>s. Donc, par exemple, si
vous avez une structure de template comme "themes/blue/index.tpl" et vous avez une structure de template comme <filename>themes/blue/index.tpl</filename> et
que vous voulez <20>tre capable d'effacer tous les fichiers de cache pour le th<74>me "blue", que vous voulez <20>tre capable d'effacer tous les fichiers de cache pour le th<74>me <quote>blue</quote>,
vous devriez cr<63>er une structure de groupe de cache qui refl<66>te la structure vous devriez cr<63>er une structure de groupe de cache qui refl<66>te la structure
de fichiers de vos templates, comme display("themes/blue/index.tpl","themes|blue"), de fichiers de vos templates, comme <literal>display('themes/blue/index.tpl','themes|blue')</literal>,
et les effacer avec clear_cache(null,"themes|blue"). et les effacer avec <literal>clear_cache(null,'themes|blue')</literal>.
</para> </para>
<example> <example>
<title>Groupes d'identifiants de cache</title> <title>Groupes d'identifiants de cache</title>

View File

@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.4 Maintainer: didou Status: ready --> <!-- EN-Revision: 1.5 Maintainer: didou Status: ready -->
<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 m<>me appel Vous pouvez avoir plusieurs fichiers de caches pour un m<>me appel
aux fonctions <link linkend="api.display">display()</link> ou aux fonctions <link linkend="api.display"><varname>display()</varname></link> ou
<link linkend="api.fetch">fetch()</link>. Imaginons qu'un appel a <link linkend="api.fetch"><varname>fetch()</varname></link>. Imaginons qu'un appel a
display('index.tpl') puisse avoir plusieurs r<>sultats, en fonction de display('index.tpl') puisse avoir plusieurs r<>sultats, en fonction de
certaines conditions, et que vous vouliez des fichiers de cache s<>par<61>s certaines conditions, et que vous vouliez des fichiers de cache s<>par<61>s
pour chacun d'eux. Vous pouvez faire cel<65> en passant un identifiant de pour chacun d'eux. Vous pouvez faire cel<65> en passant un identifiant de
cache ($cache_id) en deuxi<78>me param<61>tre a l'appel de fonction. cache (<parameter>$cache_id</parameter>) en deuxi<78>me param<61>tre <EFBFBD> l'appel de fonction.
</para> </para>
<example> <example>
<title>Passage d'un $cache_id <20> display()</title> <title>Passage d'un $cache_id <20> display()</title>
@@ -31,11 +31,11 @@ $smarty->display('index.tpl',$my_cache_id);
</programlisting> </programlisting>
</example> </example>
<para> <para>
Nous passons ci-dessus la variable $my_cache_id a Nous passons ci-dessus la variable <literal>$my_cache_id</literal> <20>
<link linkend="api.display">display()</link> comme <link linkend="api.display"><varname>display()</varname></link> comme
identifiant de cache. Pour chaque valeur distincte de $my_cache_id, identifiant de cache. Pour chaque valeur distincte de <literal>$my_cache_id</literal>,
un fichier de cache distinct va <20>tre cr<63><72>. Dans cet exemple, un fichier de cache distinct va <20>tre cr<63><72>. Dans cet exemple,
"article_id" a <20>t<EFBFBD> pass<73> dans l'URL et est utilis<69> en tant qu'identifiant <literal>article_id</literal> a <20>t<EFBFBD> pass<73> dans l'URL et est utilis<69> en tant qu'identifiant
de cache. de cache.
</para> </para>
<note> <note>
@@ -43,10 +43,10 @@ $smarty->display('index.tpl',$my_cache_id);
<para> <para>
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 <EFBFBD> utiliser article_id depuis l'URL puisse paraetre
commode, le r<>sultat peut s'av<61>rer mauvais. L'identifiant commode, le r<>sultat peut s'av<61>rer mauvais. L'identifiant
de cache est utilis<69> pour cr<63>er un r<>pertoire sur le syst<73>me de fichiers, de cache est utilis<69> pour cr<63>er un r<>pertoire sur le syst<73>me de fichiers,
donc si l'utilisateur d<>cide de donner une tr<74>s grande valeur a article_id donc si l'utilisateur d<>cide de donner une tr<74>s grande valeur <EFBFBD> article_id
ou d'<27>crire un script qui envoie des article_id de fa<66>on al<61>atoire, ou d'<27>crire un script qui envoie des article_id de fa<66>on al<61>atoire,
cel<65> pourra causer des probl<62>mes cot<6F> serveur. Assurez-vous de bien cel<65> pourra causer des probl<62>mes cot<6F> serveur. Assurez-vous de bien
tester toute donn<6E>e pass<73>e en param<61>tre avant de l'utiliser. Dans cet tester toute donn<6E>e pass<73>e en param<61>tre avant de l'utiliser. Dans cet
@@ -57,12 +57,12 @@ $smarty->display('index.tpl',$my_cache_id);
</note> </note>
<para> <para>
Assurez-vous de bien passer le m<>me identifiant aux fonctions Assurez-vous de bien passer le m<>me identifiant aux fonctions
<link linkend="api.is.cached">is_cached()</link> et <link linkend="api.is.cached"><varname>is_cached()</varname></link> et
<link linkend="api.clear.cache">clear_cache()</link>. <link linkend="api.clear.cache"><varname>clear_cache()</varname></link>.
</para> </para>
<example> <example>
<title>Passer un cache_id a is_cached()</title> <title>Passer un cache_id a is_cached()</title>
<programlisting> <programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
require('Smarty.class.php'); require('Smarty.class.php');
@@ -85,12 +85,12 @@ $smarty->display('index.tpl',$my_cache_id);
</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 param<61>tre de cache particulier en passant &null; en tant que premier param<61>tre
<20> <link linkend="api.clear.cache">clear_cache()</link>. <20> <link linkend="api.clear.cache"><varname>clear_cache()</varname></link>.
</para> </para>
<example> <example>
<title>Effacement de tous les fichiers de cache pour un identifiant de cache particulier</title> <title>Effacement de tous les fichiers de cache pour un identifiant de cache particulier</title>
<programlisting> <programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
require('Smarty.class.php'); require('Smarty.class.php');
@@ -99,9 +99,9 @@ $smarty = new Smarty;
$smarty->caching = true; $smarty->caching = true;
// efface tous les fichiers de cache avec "sports" comme identifiant // efface tous les fichiers de cache avec "sports" comme identifiant
$smarty->clear_cache(null,"sports"); $smarty->clear_cache(null,'sports');
$smarty->display('index.tpl',"sports"); $smarty->display('index.tpl','sports');
?> ?>
]]> ]]>
</programlisting> </programlisting>

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.7 Maintainer: yannick Status: ready --> <!-- EN-Revision: 1.8 Maintainer: yannick Status: ready -->
<sect1 id="caching.setting.up"> <sect1 id="caching.setting.up">
<title>Param<EFBFBD>trer le cache</title> <title>Param<EFBFBD>trer le cache</title>
<para> <para>
La premi<6D>re chose <20> faire est d'activer le cache en La premi<6D>re chose <20> faire est d'activer le cache en
mettant <link linkend="variable.caching">$caching</link> = 1 mettant
(ou 2). <link linkend="variable.caching"><parameter>$caching</parameter></link>
<literal> = 1 (ou 2)</literal>.
</para> </para>
<example> <example>
<title>Activation du cache</title> <title>Activation du cache</title>
@@ -25,31 +26,32 @@ $smarty->display('index.tpl');
</programlisting> </programlisting>
</example> </example>
<para> <para>
Avec le cache activ<69>, la fonction display('index.tpl') va afficher Avec le cache activ<69>, la fonction <literal>display('index.tpl')</literal> va afficher
le template mais sauvegardera par la m<>me occasion une copie du r<>sultat le template mais sauvegardera par la m<>me occasion une copie du r<>sultat
dans un fichier (de cache) du r<>pertoire dans un fichier (de cache) du r<>pertoire
<link linkend="variable.cache.dir">$cache_dir</link>. Au prochain appel de <link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>.
display('index.tpl'), le fichier de cache sera pr<70>f<EFBFBD>r<EFBFBD> <20> la r<>utilisation Au prochain appel de <literal>display('index.tpl')</literal>, le fichier de cache sera pr<70>f<EFBFBD>r<EFBFBD>
du template. <EFBFBD> la r<>utilisation du template.
</para> </para>
<note> <note>
<title>Note technique</title> <title>Note technique</title>
<para> <para>
Les fichiers situ<74>s dans <link linkend="variable.cache.dir">$cache_dir</link> Les fichiers situ<74>s dans
<link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>
sont nomm<6D>s de la m<>me fa<66>on que les templates. sont nomm<6D>s de la m<>me fa<66>on que les templates.
Bien qu'ils aient une extension ".php", ils ne sont pas vraiment directement ex<65>cutable. Bien qu'ils aient une extension <filename>.php</filename>, ils ne sont pas vraiment
N'<27>ditez surtout pas ces fichiers ! directement ex<65>cutable. N'<27>ditez surtout pas ces fichiers !
</para> </para>
</note> </note>
<para> <para>
Tout fichier de cache a une dur<75>e de vie limit<69>e d<>termin<69>e par <link Tout fichier de cache a une dur<75>e de vie limit<69>e d<>termin<69>e par <link
linkend="variable.cache.lifetime">$cache_lifetime</link>. La valeur par linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link>. La valeur par
d<>faut est 3600 secondes, i.e. 1 heure. Une fois que cette dur<75>e est d<>faut est 3600 secondes, i.e. 1 heure. Une fois que cette dur<75>e est
d<>pass<73>e, le cache est reg<65>n<EFBFBD>r<EFBFBD>. Il est possible de donner d<>pass<73>e, le cache est reg<65>n<EFBFBD>r<EFBFBD>. Il est possible de donner
une dur<75>e d'expiration propre <20> chaque fichier de cache en r<>glant une dur<75>e d'expiration propre <20> chaque fichier de cache en r<>glant
<link linkend="variable.caching">$caching</link> = 2. <link linkend="variable.caching"><parameter>$caching</parameter></link><literal>=2</literal>.
Se reporter <20> la documentation de <link Se reporter <20> la documentation de <link
linkend="variable.cache.lifetime">$cache_lifetime</link> pour plus de linkend="variable.cache.lifetime"><parameter>$cache_lifetime</parameter></link> pour plus de
d<>tails. d<>tails.
</para> </para>
<example> <example>
@@ -81,12 +83,13 @@ $smarty->display('home.tpl');
</programlisting> </programlisting>
</example> </example>
<para> <para>
Si <link linkend="variable.compile.check">$compile_check</link> est actif, Si
chaque fichier de template et de configuration qui a un rapport <link linkend="variable.compile.check"><parameter>$compile_check</parameter></link>
est actif, chaque fichier de template et de configuration qui a un rapport
avec le fichier de cache sera v<>rifi<66> pour d<>tecter une <20>ventuelle avec le fichier de cache sera v<>rifi<66> pour d<>tecter une <20>ventuelle
modification. Si l'un de ces fichiers a <20>t<EFBFBD> modifi<66> depuis que le fichier de cache a <20>t<EFBFBD> modification. Si l'un de ces fichiers a <20>t<EFBFBD> modifi<66> depuis que le fichier de cache a <20>t<EFBFBD>
g<>n<EFBFBD>r<EFBFBD>, le cache est imm<6D>diatement reg<65>n<EFBFBD>r<EFBFBD>. Ce processus est couteux, donc, g<>n<EFBFBD>r<EFBFBD>, le cache est imm<6D>diatement reg<65>n<EFBFBD>r<EFBFBD>. Ce processus est couteux, donc,
pour des raisons de performances, mettez ce param<61>tre <20> false pour une application pour des raisons de performances, mettez ce param<61>tre <20> &false; pour une application
en production. en production.
</para> </para>
<example> <example>
@@ -106,15 +109,15 @@ $smarty->display('index.tpl');
</programlisting> </programlisting>
</example> </example>
<para> <para>
Si <link linkend="variable.force.compile">$force_compile</link> est actif, Si <link linkend="variable.force.compile"><parameter>$force_compile</parameter></link> est actif,
les fichiers de cache sont toujours reg<65>n<EFBFBD>r<EFBFBD>s. Ceci revient finalement <20> les fichiers de cache sont toujours reg<65>n<EFBFBD>r<EFBFBD>s. Ceci revient finalement <20>
d<>sactiver le cache. <link linkend="variable.force.compile">$force_compile</link> d<>sactiver le cache. <link linkend="variable.force.compile"><parameter>$force_compile</parameter></link>
est utilis<69> <20> des fins de <link linkend="chapter.debugging.console">d<EFBFBD>bogage</link>, est utilis<69> <20> des fins de <link linkend="chapter.debugging.console">d<EFBFBD>bogage</link>,
un moyen plus efficace de d<>sactiver le cache est de r<>gler un moyen plus efficace de d<>sactiver le cache est de r<>gler
<link linkend="variable.caching">$caching</link> = 0. <link linkend="variable.caching"><parameter>$caching</parameter></link><literal> = 0</literal>.
</para> </para>
<para> <para>
La fonction <link linkend="api.is.cached">is_cached()</link> permet La fonction <link linkend="api.is.cached"><varname>is_cached()</varname></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 requ<71>te Si vous disposez d'un template en cache qui requiert une requ<71>te
<20> une base de donn<6E>es, vous pouvez utiliser cette m<>thode plut<75>t <20> une base de donn<6E>es, vous pouvez utiliser cette m<>thode plut<75>t
@@ -144,20 +147,20 @@ $smarty->display('index.tpl');
<para> <para>
Vous pouvez rendre dynamiques seulement certaines parties d'une Vous pouvez rendre dynamiques seulement certaines parties d'une
page avec la fonction de template <link page avec la fonction de template <link
linkend="language.function.insert">{insert}</link>. linkend="language.function.insert"><varname>{insert}</varname></link>.
Imaginons que toute une page doit <20>tre mise en cache <20> part Imaginons que toute une page doit <20>tre mise en cache <20> part
une banni<6E>re en bas <20> droite. En utilisant une fonction une banni<6E>re en bas <20> droite. En utilisant une fonction
<link linkend="language.function.insert">{insert}</link> pour la <link linkend="language.function.insert"><varname>{insert}</varname></link> pour la
banni<6E>re, vous pouvez garder cet <20>l<EFBFBD>ment dynamique dans le contenu qui banni<6E>re, vous pouvez garder cet <20>l<EFBFBD>ment dynamique dans le contenu qui
est en cache. Reportez-vous <20> la documentation est en cache. Reportez-vous <20> la documentation
<link linkend="language.function.insert">{insert}</link> pour plus de d<>tails <link linkend="language.function.insert"><varname>{insert}</varname></link> pour plus de d<>tails
ainsi que des exemples. ainsi que des exemples.
</para> </para>
<para> <para>
Vous pouvez effacer tous les fichiers du cache avec la fonction <link Vous pouvez effacer tous les fichiers du cache avec la fonction <link
linkend="api.clear.all.cache">clear_all_cache()</link>, ou de fa<66>on linkend="api.clear.all.cache"><varname>clear_all_cache()</varname></link>, ou de fa<66>on
individuelle <link linkend="caching.groups">(ou par groupe)</link> individuelle <link linkend="caching.groups">(ou par groupe)</link>
avec la fonction <link linkend="api.clear.cache">clear_cache()</link>. avec la fonction <link linkend="api.clear.cache"><varname>clear_cache()</varname></link>.
</para> </para>
<example> <example>
<title>Nettoyage du cache</title> <title>Nettoyage du cache</title>
@@ -169,12 +172,12 @@ $smarty = new Smarty;
$smarty->caching = 1; $smarty->caching = 1;
// efface tous les fichiers du cache
$smarty->clear_all_cache();
// efface le fichier de cache du template 'index.tpl' // efface le fichier de cache du template 'index.tpl'
$smarty->clear_cache('index.tpl'); $smarty->clear_cache('index.tpl');
// efface tous les fichiers du cache
$smarty->clear_all_cache();
$smarty->display('index.tpl'); $smarty->display('index.tpl');
?> ?>
]]> ]]>

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.3 Maintainer: yannick Status: ready --> <!-- EN-Revision: 1.4 Maintainer: yannick Status: ready -->
<sect1 id="plugins.block.functions"> <sect1 id="plugins.block.functions">
<title>Fonctions de blocs</title> <title>Fonctions de blocs</title>
<funcsynopsis> <funcsynopsis>
@@ -12,89 +13,95 @@
</funcprototype> </funcprototype>
</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 <literal>{func} .. {/func}</literal>.
En d'autres mots, elles englobent des blocs de template et op<6F>rent sur les En d'autres mots, elles englobent des blocs de template et op<6F>rent sur les
contenus de ces blocs. Les fonctions de blocs ont la priorit<69> sur les contenus de ces blocs. Les fonctions de blocs ont la priorit<69> sur les
fonctions utilisateurs de m<>me nom, ce qui signifie que vous ne <link linkend="language.custom.functions">fonctions utilisateurs</link>
pouvez avoir une fonction utilisateur {func} et une fonction de bloc de m<>me nom, ce qui signifie que vous ne
{func} .. {/func}. pouvez avoir une fonction utilisateur <literal>{func}</literal> et une fonction de bloc
</para> <literal>{func}..{/func}</literal>.
<para>
Par d<>faut, l'impl<70>mentation de votre fonction est appel<65>e deux fois par Smarty :
une fois pour la balise ouvrante et une autre fois pour la balise
fermante (voir <literal>&amp;$repeat</literal> ci-dessous
sur la fa<66>on de modifier ce comportement).
</para>
<para>
Seule la balise ouvrante d'une fonction de bloc peut avoir des attributs.
Tous les attributs pass<73>s par le template aux fonctions de templates sont
contenus dans le tableau associatif <parameter>$params</parameter>.
Vous pouvez acc<63>der <20> ces valeurs directement par
<varname>$params['start']</varname>.
Votre fonction a aussi acc<63>s aux attributs de la balise
ouvrante quand c'est la balise fermante qui est ex<65>cut<75>e.
</para>
<para>
La valeur de la variable <parameter>$content</parameter> est diff<66>rente
selon si votre fonction est appel<65>e pour la balise ouvrante ou la
balise fermante. Si c'est pour la balise ouvrante, elle sera <20>
<literal>null</literal> et si c'est la balise fermante, elle sera
<20>gale au contenu du bloc de template. Notez que le bloc de template
aura d<>j<EFBFBD> <20>t<EFBFBD> ex<65>cut<75> par Smarty, vous recevrez donc la sortie du
template et non sa source.
</para> </para>
<para> <itemizedlist>
Le param<61>tre <parameter>&amp;$repeat</parameter> est pass<73> <listitem><para>
par r<EFBFBD>f<EFBFBD>rence <20> la fonction d'impl<70>mentation et fournit la possibilit<69> Par d<EFBFBD>faut, l'impl<70>mentation de votre fonction est appel<65>e deux fois par Smarty :
de contr<74>ler le nombre d'affichage du bloc. Par d<>faut, une fois pour la balise ouvrante et une autre fois pour la balise
<parameter>$repeat</parameter> vaut <literal>true</literal> fermante (voir <literal>$repeat</literal> ci-dessous
lors du premier appel <20> la fonction de bloc (le bloc d'ouverture du tag) et sur la fa<66>on de modifier ce comportement).
<literal>false</literal> lors de tous les autres appels <20> la fonction </para></listitem>
de bloc (le bloc de fermeture du tag). Chaque fois que la fonction <listitem><para>
d'impl<70>mentation retourne avec le param<61>tre Seule la balise ouvrante d'une fonction de bloc peut avoir des
<parameter>&amp;$repeat</parameter> vallant true, le contenu situ<74> <link linkend="language.syntax.attributes">attributs</link>.
entre {func} .. {/func} est <20>valu<6C> et la fonction d'impl<70>mentation est appel<65> Tous les attributs pass<73>s par le template aux fonctions de templates sont
une nouvelle fois avec le nouveau bloc de contenu en tant que param<61>tre contenus dans le tableau associatif <parameter>$params</parameter>.
<parameter>$content</parameter>. Votre fonction a aussi acc<63>s aux attributs de la balise
</para> ouvrante quand c'est la balise fermante qui est ex<65>cut<75>e.
</para></listitem>
<listitem><para>
La valeur de la variable <parameter>$content</parameter> est diff<66>rente
selon si votre fonction est appel<65>e pour la balise ouvrante ou la
balise fermante. Si c'est pour la balise ouvrante, elle sera <20> &null; et si c'est la balise fermante,
elle sera <20>gale au contenu du bloc de template. Notez que le bloc de template
aura d<>j<EFBFBD> <20>t<EFBFBD> ex<65>cut<75> par Smarty, vous recevrez donc la sortie du
template et non sa source.
</para></listitem>
<listitem><para>
Le param<61>tre <parameter>$repeat</parameter> est pass<73>
par r<>f<EFBFBD>rence <20> la fonction d'impl<70>mentation et fournit la possibilit<69>
de contr<74>ler le nombre d'affichage du bloc. Par d<>faut,
<parameter>$repeat</parameter> vaut
&true; lors du premier appel <20> la fonction de bloc (le bloc d'ouverture du tag) et
&false; lors de tous les autres appels <20> la fonction
de bloc (le bloc de fermeture du tag). Chaque fois que la fonction
d'impl<70>mentation retourne avec le param<61>tre
<parameter>$repeat</parameter> vallant &true;, le contenu situ<74>
<literal>{func}...{/func}</literal> est <20>valu<6C> et la fonction d'impl<70>mentation est appel<65>
une nouvelle fois avec le nouveau bloc de contenu en tant que param<61>tre
<parameter>$content</parameter>.
</para></listitem>
</itemizedlist>
<para> <para>
Si vous imbriqu<71> des fonctions de bloc, il est possible de conna<6E>tre Si vous imbriqu<71> des fonctions de bloc, il est possible de conna<6E>tre
la fonction de bloc parente gr<67>ce <20> la variable <varname>$smarty->_tag_stack</varname>. la fonction de bloc parente gr<67>ce <20> la variable <literal>$smarty->_tag_stack</literal>.
Fa<46>tes un var_dump() dessus et la structure devrait appara<72>tre. Fa<46>tes un <ulink url="&url.php-manual;var_dump"><varname>var_dump()</varname></ulink>
</para> dessus et la structure devrait appara<72>tre.
<para>
Regardez aussi :
<link linkend="api.register.block">register_block()</link>,
<link linkend="api.unregister.block">unregister_block()</link>.
</para> </para>
<example> <example>
<title>Fonction de bloc</title> <title>Fonction de bloc</title>
<programlisting role="php"> <programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
/* /*
* Smarty plugin * Smarty plugin
* ------------------------------------------------------------- * -------------------------------------------------------------
* Fichier : block.translate.php * Fichier : block.translate.php
* Type : bloc * Type : bloc
* Nom : translate * Nom : translate
* R<>le : traduire un bloc de texte * R<>le : traduire un bloc de texte
* ------------------------------------------------------------- * -------------------------------------------------------------
*/ */
function smarty_block_translate($params, $content, &amp;$smarty) function smarty_block_translate($params, $content, &$smarty, &$repeat)
{ {
if ($content) { // n'affiche que lors de la balise fermante
$lang = $params['lang']; if(!$repeat){
// fait une traduction de $content if (isset($content)) {
echo $translation; $lang = $params['lang'];
} // effectuer une bonne traduction ici avec $content
return $translation;
}
}
} }
?> ?>
]]> ]]>
</programlisting> </programlisting>
</example> </example>
<para>
Voir aussi :
<link linkend="api.register.block"><varname>register_block()</varname></link> et
<link linkend="api.unregister.block"><varname>unregister_block()</varname></link>.
</para>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:

View File

@@ -1,13 +1,15 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.2 Maintainer: yannick Status: ready --> <!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
<sect1 id="plugins.compiler.functions"> <sect1 id="plugins.compiler.functions">
<title>Fonctions de compilation</title> <title>Fonctions de compilation</title>
<para> <para>
Les fonctions de compilation sont appel<65>es durant la compilation du template. Les fonctions de compilation sont appel<65>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 personnalis<69>e ont le m<>me nom, la fonction de compilation a priorit<69>. une <link linkend="language.custom.functions">fonction personnalis<69>e</link>
ont le m<>me nom, la fonction de compilation a priorit<69>.
</para> </para>
<funcsynopsis> <funcsynopsis>
<funcprototype> <funcprototype>
@@ -22,11 +24,6 @@
l'objet Smarty. Elles sont cens<6E>es retourner le code PHP qui doit <20>tre l'objet Smarty. Elles sont cens<6E>es retourner le code PHP qui doit <20>tre
inject<63> dans le template compil<69>. inject<63> dans le template compil<69>.
</para> </para>
<para>
Regardez aussi
<link linkend="api.register.compiler.function">register_compiler_function()</link>,
<link linkend="api.unregister.compiler.function">unregister_compiler_function()</link>.
</para>
<example> <example>
<title>Fonction de compilation simple</title> <title>Fonction de compilation simple</title>
<programlisting role="php"> <programlisting role="php">
@@ -53,8 +50,10 @@ function smarty_compiler_tplheader($tag_arg, &amp;$smarty)
Cette fonction peut-<2D>tre appel<65>e depuis le template comme suivant : Cette fonction peut-<2D>tre appel<65>e depuis le template comme suivant :
</para> </para>
<programlisting> <programlisting>
<![CDATA[
{* cette fonction n'est execut<75>e que lors de la compilation *} {* cette fonction n'est execut<75>e que lors de la compilation *}
{tplheader} {tplheader}
]]>
</programlisting> </programlisting>
<para> <para>
Le code PHP r<>sultant dans les templates compil<69>s ressemblerait <20> <20>a : Le code PHP r<>sultant dans les templates compil<69>s ressemblerait <20> <20>a :
@@ -67,6 +66,11 @@ echo 'index.tpl compiled at 2002-02-20 20:02';
]]> ]]>
</programlisting> </programlisting>
</example> </example>
<para>
Voir aussi :
<link linkend="api.register.compiler.function"><varname>register_compiler_function()</varname></link> et
<link linkend="api.unregister.compiler.function"><varname>unregister_compiler_function()</varname></link>.
</para>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.2 Maintainer: yannick Status: ready --> <!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
<sect1 id="plugins.functions"> <sect1 id="plugins.functions">
<title>Les fonctions de templates</title> <title>Les fonctions de templates</title>
<funcsynopsis> <funcsynopsis>
@@ -11,25 +12,23 @@
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <para>
Tous les attributs pass<73>s aux fonctions de template <20> partir du template Tous les <link linkend="language.syntax.attributes">attributs</link>
pass<73>s aux fonctions de template <20> partir du template
sont contenus dans le tableau associatif <parameter>$params</parameter>. sont contenus dans le tableau associatif <parameter>$params</parameter>.
</para> </para>
<para> <para>
Le retour de la fonction sera substitu<74>e <20> la balise de fonction Le retour de la fonction sera substitu<74>e <20> la balise de fonction
du template (fonction <function>fetch</function> par exemple). Sinon, du template (fonction
la fonction peut simplement accomplir une autre t<>che sans sortie <link linkend="language.function.fetch"><varname>{fetch}</varname></link>
(la fonction <function>assign</function> par exemple). par exemple). Sinon, la fonction peut simplement accomplir une autre t<>che sans sortie
(la fonction <link linkend="language.function.assign">
<varname>{assign}</varname></link> 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 fonctionnalit<69>s fournies par Smarty, elle peut recevoir un d'autres fonctionnalit<69>s fournies par Smarty, elle peut recevoir un
objet <parameter>$smarty</parameter> pour cel<65>. objet <parameter>$smarty</parameter> pour cel<65>.
</para> </para>
<para>
R<>f<EFBFBD>rez-vous aussi <20> :
<link linkend="api.register.function">register_function()</link>,
<link linkend="api.unregister.function">unregister_function()</link>.
</para>
<para> <para>
<example> <example>
<title>Fonction de plugin avec sortie</title> <title>Fonction de plugin avec sortie</title>
@@ -105,6 +104,11 @@ function smarty_function_assign($params, &$smarty)
</programlisting> </programlisting>
</example> </example>
</para> </para>
<para>
Voir aussi :
<link linkend="api.register.function"><varname>register_function()</varname></link> et
<link linkend="api.unregister.function"><varname>unregister_function()</varname></link>.
</para>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:

View File

@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.3 Maintainer: yannick Status: ready --> <!-- EN-Revision: 1.4 Maintainer: yannick Status: ready -->
<sect1 id="plugins.inserts"> <sect1 id="plugins.inserts">
<title>Insertions</title> <title>Insertions</title>
<para> <para>
Les plugins d'insertion sont utilis<69>s pour impl<70>menter les fonctions Les plugins d'insertion sont utilis<69>s pour impl<70>menter les fonctions
qui sont appel<65>es par les balises qui sont appel<65>es par les balises
<link linkend="language.function.insert">{insert}</link> <link linkend="language.function.insert"><varname>{insert}</varname></link>
dans les templates. dans les templates.
</para> </para>
<funcsynopsis> <funcsynopsis>
@@ -23,7 +23,7 @@
</para> </para>
<para> <para>
La fonction d'insertion est suppos<6F>e retourner le r<>sultat qui sera La fonction d'insertion est suppos<6F>e retourner le r<>sultat qui sera
substitu<74> <20> la balise <command>{insert}</command> dans le template. substitu<74> <20> la balise <varname>{insert}</varname> dans le template.
</para> </para>
<example> <example>
<title>Plugin d'insertion</title> <title>Plugin d'insertion</title>

View File

@@ -1,10 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.2 Maintainer: yannick Status: ready --> <!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
<sect1 id="plugins.modifiers"> <sect1 id="plugins.modifiers">
<title>Modificateurs</title> <title>Modificateurs</title>
<para> <para>
Les modificateurs sont des petites fonctions appliqu<71>es <20> une variable Les <link linkend="language.modifiers">modificateurs</link>
sont de petites fonctions appliqu<71>es <20> une variable
de template avant qu'elle ne soit affich<63>e ou utilis<69>e dans un autre contexte. de template avant qu'elle ne soit affich<63>e ou utilis<69>e dans un autre contexte.
Les modificateurs peuvent <20>tre cha<68>n<EFBFBD>s entre eux. Les modificateurs peuvent <20>tre cha<68>n<EFBFBD>s entre eux.
</para> </para>
@@ -22,12 +24,8 @@
effectu<74>. effectu<74>.
</para> </para>
<para> <para>
Le modificateur doit retourner le r<>sultat de son ex<65>cution. Le modificateur doit <ulink url="&url.php-manual;return">retourner</ulink>
</para> le r<>sultat de son ex<65>cution.
<para>
Lisez <20>galement
<link linkend="api.register.modifier">register_modifier()</link> et
<link linkend="api.unregister.modifier">unregister_modifier()</link>.
</para> </para>
<example> <example>
<title>Plugin modificateur simple</title> <title>Plugin modificateur simple</title>
@@ -93,6 +91,11 @@ function smarty_modifier_truncate($string, $length = 80, $etc = '...',
]]> ]]>
</programlisting> </programlisting>
</example> </example>
<para>
Voir aussi :
<link linkend="api.register.modifier"><varname>register_modifier()</varname></link> et
<link linkend="api.unregister.modifier"><varname>unregister_modifier()</varname></link>.
</para>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.2 Maintainer: yannick Status: ready --> <!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
<sect1 id="plugins.naming.conventions"> <sect1 id="plugins.naming.conventions">
<title>Conventions de nommage</title> <title>Conventions de nommage</title>
<para> <para>
@@ -8,7 +9,7 @@
de nommage tr<74>s sp<73>cifique pour <20>tre localis<69>s par Smarty. de nommage tr<74>s sp<73>cifique pour <20>tre localis<69>s par Smarty.
</para> </para>
<para> <para>
Les fichiers de plugins doivent <20>tre nomm<6D>s de la fa<66>on suivante : Les fichiers de <emphasis role="bold">plugins</emphasis> doivent <20>tre nomm<6D>s de la fa<66>on suivante :
<blockquote> <blockquote>
<para> <para>
<filename> <filename>
@@ -17,31 +18,39 @@
</para> </para>
</blockquote> </blockquote>
</para> </para>
<itemizedlist>
<listitem><para>
O<> <literal>type</literal> est l'une des valeurs suivantes :
<itemizedlist spacing="compact">
<listitem><simpara>function</simpara></listitem>
<listitem><simpara>modifier</simpara></listitem>
<listitem><simpara>block</simpara></listitem>
<listitem><simpara>compiler</simpara></listitem>
<listitem><simpara>prefilter</simpara></listitem>
<listitem><simpara>postfilter</simpara></listitem>
<listitem><simpara>outputfilter</simpara></listitem>
<listitem><simpara>resource</simpara></listitem>
<listitem><simpara>insert</simpara></listitem>
</itemizedlist>
</para>
</listitem>
<listitem><para>
Et <literal>nom</literal> doit <20>tre un identifiant valide : lettres, nombres
et underscore seulement, voir les
<ulink url="&url.php-manual;language.variables">variables php</ulink>.
</para></listitem>
<listitem><para>
Quelques exemples : <filename>function.html_select_date.php</filename>,
<filename>resource.db.php</filename>,
<filename>modifier.spacify.php</filename>.
</para>
</listitem>
</itemizedlist>
<para> <para>
O<EFBFBD> <literal>type</literal> est l'une des valeurs suivantes : Les fonctions de <emphasis role="bold">plugins</emphasis> dans les fichiers de plugins doivent <20>tre
<itemizedlist spacing="compact">
<listitem><simpara>function</simpara></listitem>
<listitem><simpara>modifier</simpara></listitem>
<listitem><simpara>block</simpara></listitem>
<listitem><simpara>compiler</simpara></listitem>
<listitem><simpara>prefilter</simpara></listitem>
<listitem><simpara>postfilter</simpara></listitem>
<listitem><simpara>outputfilter</simpara></listitem>
<listitem><simpara>resource</simpara></listitem>
<listitem><simpara>insert</simpara></listitem>
</itemizedlist>
</para>
<para>
Et <literal>nom</literal> doit <20>tre un identifiant valide (lettres, nombres
et underscore seulement).
</para>
<para>
Quelques exemples : <literal>function.html_select_date.php</literal>,
<literal>resource.db.php</literal>,
<literal>modifier.spacify.php</literal>.
</para>
<para>
Les fonctions de plugins dans les fichiers de plugins doivent <20>tre
nomm<6D>es de la fa<66>on suivante : nomm<6D>es de la fa<66>on suivante :
<blockquote> <blockquote>
<para> <para>
@@ -49,16 +58,24 @@
</para> </para>
</blockquote> </blockquote>
</para> </para>
<para>
Les significations de <literal>type</literal> et de <literal>nom</literal> sont les m<>mes <itemizedlist>
que pr<70>c<EFBFBD>demment. <listitem><para>
</para> Les significations de <literal>type</literal> et de <literal>nom</literal> sont les m<>mes
que pr<70>c<EFBFBD>demment.
</para></listitem>
<listitem><para>
Un exemple de nom de modificateur <varname>foo</varname> serait
<literal>function smarty_modifier_foo()</literal>.
</para></listitem>
</itemizedlist>
<para> <para>
Smarty donnera des messages d'erreurs appropri<72>s si le fichier de plugin Smarty donnera des messages d'erreurs appropri<72>s si le fichier de plugin
n'est pas trouv<75> ou si le fichier ou la fonction de plugin ne sont n'est pas trouv<75> ou si le fichier ou la fonction de plugin ne sont
pas nomm<6D>s correctement. pas nomm<6D>s correctement.
</para> </para>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:
mode: sgml mode: sgml

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.2 Maintainer: yannick Status: ready --> <!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
<sect1 id="plugins.outputfilters"> <sect1 id="plugins.outputfilters">
<title>Filtres de sortie</title> <title>Filtres de sortie</title>
<para> <para>
@@ -45,7 +46,15 @@ function smarty_outputfilter_protect_email($output, &$smarty)
]]> ]]>
</programlisting> </programlisting>
</example> </example>
<para>
Voir aussi
<link linkend="api.register.outputfilter">
<varname>register_outputfilter()</varname></link> et
<link linkend="api.unregister.outputfilter">
<varname>unregister_outputfilter()</varname></link>.
</para>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:
mode: sgml mode: sgml

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.2 Maintainer: yannick Status: ready --> <!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
<sect1 id="plugins.prefilters.postfilters"> <sect1 id="plugins.prefilters.postfilters">
<title>filtres de pr<70>-compilation/filtres de post-compilation</title> <title>filtres de pr<70>-compilation/filtres de post-compilation</title>
<para> <para>
@@ -84,6 +85,17 @@
]]> ]]>
</programlisting> </programlisting>
</example> </example>
<para>
Voir aussi
<link linkend="api.register.prefilter">
<varname>register_prefilter()</varname></link>,
<link linkend="api.unregister.prefilter">
<varname>unregister_prefilter()</varname></link>
<link linkend="api.register.postfilter">
<varname>register_postfilter()</varname></link> et
<link linkend="api.unregister.postfilter">
<varname>unregister_postfilter()</varname></link>.
</para>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:

View File

@@ -1,140 +1,147 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.2 Maintainer: yannick Status: ready --> <!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
<sect1 id="plugins.resources"><title>Ressources</title> <sect1 id="plugins.resources"><title>Ressources</title>
<para> <para>
Les plugins ressources sont un moyen g<>n<EFBFBD>rique de fournir des sources Les plugins ressources sont un moyen g<>n<EFBFBD>rique de fournir des sources
de templates ou des composants de scripts PHP <20> Smarty. Quelques exemples de templates ou des composants de scripts PHP <20> Smarty. Quelques exemples
de ressources : bases de donn<6E>es, LDAP, m<>moire partag<61>e, sockets, etc. de ressources : bases de donn<6E>es, LDAP, m<>moire partag<61>e, sockets, etc.
</para> </para>
<para> <para>
Il y au total 4 fonctions qui ont besoin d'<27>tre enregistr<74>es pour Il y au total quatre fonctions qui ont besoin d'<27>tre enregistr<74>es pour
chaque type de ressource. Chaque fonction re<72>oit le nom de la ressource demand<6E>e chaque type de ressource. Chaque fonction re<72>oit le nom de la ressource demand<6E>e
comme premier param<61>tre et l'objet Smarty comme dernier param<61>tre. comme premier param<61>tre et l'objet Smarty comme dernier param<61>tre.
Les autres param<61>tres d<>pendent de la fonction. Les autres param<61>tres d<>pendent de la fonction.
</para> </para>
<funcsynopsis> <funcsynopsis>
<funcprototype> <funcprototype>
<funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_source</function></funcdef> <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_source</function></funcdef>
<paramdef>string <parameter>$rsrc_name</parameter></paramdef> <paramdef>string <parameter>$rsrc_name</parameter></paramdef>
<paramdef>string <parameter>&amp;$source</parameter></paramdef> <paramdef>string <parameter>&amp;$source</parameter></paramdef>
<paramdef>object <parameter>&amp;$smarty</parameter></paramdef> <paramdef>object <parameter>&amp;$smarty</parameter></paramdef>
</funcprototype> </funcprototype>
<funcprototype> <funcprototype>
<funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_timestamp</function></funcdef> <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_timestamp</function></funcdef>
<paramdef>string <parameter>$rsrc_name</parameter></paramdef> <paramdef>string <parameter>$rsrc_name</parameter></paramdef>
<paramdef>int <parameter>&amp;$timestamp</parameter></paramdef> <paramdef>int <parameter>&amp;$timestamp</parameter></paramdef>
<paramdef>object <parameter>&amp;$smarty</parameter></paramdef> <paramdef>object <parameter>&amp;$smarty</parameter></paramdef>
</funcprototype> </funcprototype>
<funcprototype> <funcprototype>
<funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_secure</function></funcdef> <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_secure</function></funcdef>
<paramdef>string <parameter>$rsrc_name</parameter></paramdef> <paramdef>string <parameter>$rsrc_name</parameter></paramdef>
<paramdef>object <parameter>&amp;$smarty</parameter></paramdef> <paramdef>object <parameter>&amp;$smarty</parameter></paramdef>
</funcprototype> </funcprototype>
<funcprototype> <funcprototype>
<funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_trusted</function></funcdef> <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_trusted</function></funcdef>
<paramdef>string <parameter>$rsrc_name</parameter></paramdef> <paramdef>string <parameter>$rsrc_name</parameter></paramdef>
<paramdef>object <parameter>&amp;$smarty</parameter></paramdef> <paramdef>object <parameter>&amp;$smarty</parameter></paramdef>
</funcprototype> </funcprototype>
</funcsynopsis> </funcsynopsis>
<para> <itemizedlist>
La premi<6D>re fonction est suppos<6F>e r<>cup<75>rer la ressource. Son second <listitem>
param<EFBFBD>tre est une variable pass<73>e par r<>f<EFBFBD>rence o<> le r<>sultat doit <20>tre <para>
stock<EFBFBD>. La fonction est suppos<6F>e retourner <literal>true</literal> si La premi<6D>re fonction est suppos<6F>e r<EFBFBD>cup<EFBFBD>rer la ressource. Son second
elle r<>ussit <20> r<>cup<75>rer la ressource et <literal>false</literal> sinon. param<61>tre est une variable pass<73>e par r<>f<EFBFBD>rence o<> le r<>sultat doit <20>tre
</para> stock<63>. La fonction est suppos<6F>e retourner &true; si
elle r<>ussit <20> r<>cup<75>rer la ressource et &false; sinon.
</para></listitem>
<para> <listitem><para>
La seconde fonction est suppos<6F>e r<>cup<75>rer la date de derni<6E>re modification La seconde fonction est suppos<6F>e r<>cup<75>rer la date de derni<6E>re modification
de la ressource demand<6E>e (comme un timestamp UNIX). Le second param<61>tre de la ressource demand<6E>e (comme un timestamp UNIX). Le second param<61>tre
est une variable pass<73>e par r<>f<EFBFBD>rence dans laquelle la date doit est une variable pass<73>e par r<>f<EFBFBD>rence dans laquelle la date doit
<20>tre stock<63>e. La fonction est suppos<6F>e renvoyer <literal>true</literal> si elle <20>tre stock<63>e. La fonction est suppos<6F>e renvoyer &true; si elle
r<>ussit <20> r<>cup<75>rer la date et <literal>false</literal> sinon. r<>ussit <20> r<>cup<75>rer la date et &false; sinon.
</para> </para></listitem>
<para> <listitem><para>
La troisi<73>me fonction est suppos<6F>e retourner <literal>true</literal> La troisi<73>me fonction est suppos<6F>e retourner &true;
ou <literal>false</literal> selon si la ressource demand<6E>e est s<>re ou &false; selon si la ressource demand<6E>e est s<>re
ou non. La fonction est utilis<69>e seulement pour les ressources templates ou non. La fonction est utilis<69>e seulement pour les ressources templates
mais doit tout de m<>me <20>tre d<>finie. mais doit tout de m<>me <20>tre d<>finie.
</para> </para></listitem>
<para> <listitem><para>
La quatri<72>me fonction est suppos<6F>e retourner <literal>true</literal> La quatri<72>me fonction est suppos<6F>e retourner &true;
ou <literal>false</literal> selon si l'on peut faire confiance ou ou &false; selon si l'on peut faire confiance ou
non <20> la ressource demand<6E>e. Cette fonction est utilis<69>e seulement non <20> la ressource demand<6E>e. Cette fonction est utilis<69>e seulement
pour les composants de scripts PHP demand<6E>s par les balises pour les composants de scripts PHP demand<6E>s par les balises
<command>include_php</command> ou <command>insert</command> <link linkend="language.function.include.php">
ayant un attribut <structfield>src</structfield>. Quoiqu'il en soit, <varname>{include_php}</varname></link> ou
elle doit <20>tre d<>finie pour les ressources templates. <link linkend="language.function.insert"><varname>{insert}</varname></link>
</para> ayant un attribut <parameter>src</parameter>. Quoiqu'il en soit,
elle doit <20>tre d<>finie pour les ressources templates.
</para></listitem>
</itemizedlist>
<para> <example>
Lisez <20>galement <title>resource plugin</title>
<link linkend="api.register.resource">register_resource()</link> et <programlisting role="php">
<link linkend="api.unregister.resource">unregister_resource()</link>.
</para>
<example>
<title>resource plugin</title>
<programlisting role="php">
<![CDATA[ <![CDATA[
<?php <?php
/* /*
* Smarty plugin * Smarty plugin
* ------------------------------------------------------------- * -------------------------------------------------------------
* Fichier : resource.db.php * Fichier : resource.db.php
* Type : ressource * Type : ressource
* Nom : db * Nom : db
* R<>le : R<>cup<75>re des templates depuis une base de donn<6E>es * R<>le : R<>cup<75>re des templates depuis une base de donn<6E>es
* ------------------------------------------------------------- * -------------------------------------------------------------
*/ */
function smarty_resource_db_source($tpl_name, &$tpl_source, &$smarty) function smarty_resource_db_source($tpl_name, &$tpl_source, &$smarty)
{ {
// fait des requ<71>tes BD pour r<>cup<75>rer votre template // fait des requ<71>tes BD pour r<>cup<75>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
from my_table from my_table
where tpl_name='$tpl_name'"); where tpl_name='$tpl_name'");
if ($sql->num_rows) { if ($sql->num_rows) {
$tpl_source = $sql->record['tpl_source']; $tpl_source = $sql->record['tpl_source'];
return true; return true;
} else { } else {
return false; return false;
} }
} }
function smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$smarty) function smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$smarty)
{ {
// fait des requ<71>tes BD pour remplir $tpl_timestamp // fait des requ<71>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
where tpl_name='$tpl_name'"); where tpl_name='$tpl_name'");
if ($sql->num_rows) { if ($sql->num_rows) {
$tpl_timestamp = $sql->record['tpl_timestamp']; $tpl_timestamp = $sql->record['tpl_timestamp'];
return true; return true;
} else { } else {
return false; return false;
} }
} }
function smarty_resource_db_secure($tpl_name, &$smarty) function smarty_resource_db_secure($tpl_name, &$smarty)
{ {
// suppose que tous les templates sont svrs // suppose que tous les templates sont svrs
return true; return true;
} }
function smarty_resource_db_trusted($tpl_name, &$smarty) function smarty_resource_db_trusted($tpl_name, &$smarty)
{ {
// inutilis<69>e pour les templates // inutilis<69>e pour les templates
} }
?> ?>
]]> ]]>
</programlisting> </programlisting>
</example> </example>
<para>
Voir aussi :
<link linkend="api.register.resource">register_resource()</link> et
<link linkend="api.unregister.resource">unregister_resource()</link>.
</para>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:
mode: sgml mode: sgml

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.2 Maintainer: yannick Status: ready --> <!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
<sect1 id="plugins.writing"> <sect1 id="plugins.writing">
<title>Ecrire des plugins</title> <title>Ecrire des plugins</title>
<para> <para>
@@ -28,9 +29,20 @@ require_once $smarty->_get_plugin_filepath('function', 'html_options');
</programlisting> </programlisting>
<para> <para>
Une r<>gle g<>n<EFBFBD>rale est que chaque objet Smarty est toujours pass<73> au plugin Une r<>gle g<>n<EFBFBD>rale est que chaque objet Smarty est toujours pass<73> au plugin
en tant que dernier param<61>tre (<28> part pour les modificateurs). en tant que dernier param<61>tre, sauf pour deux exceptions :
</para> </para>
<itemizedlist>
<listitem><para>
les modificateurs ne sont pas pass<73>s du tout <20> l'objet Smarty
</para></listitem>
<listitem><para>
les blocs r<>cup<75>rent le param<61>tre
<parameter>$repeat</parameter> pass<73> apr<70>s l'objet Smarty afin de
conserver une compatibilit<69> avec les anciennes versions de Smarty.
</para></listitem>
</itemizedlist>
</sect1> </sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:
mode: sgml mode: sgml

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.8 Maintainer: yannick Status: ready --> <!-- EN-Revision: 1.9 Maintainer: yannick Status: ready -->
<chapter id="smarty.constants"> <chapter id="smarty.constants">
<title>Constantes</title> <title>Constantes</title>
@@ -10,7 +10,7 @@
<para> <para>
Il doit s'agir du <emphasis role="bold">chemin complet</emphasis> Il doit s'agir du <emphasis role="bold">chemin complet</emphasis>
du r<>pertoire o<> se trouvent les fichiers classes de Smarty. du r<>pertoire o<> se trouvent les fichiers classes de Smarty.
S'il n'est pas d<>fini, Smarty essaiera alors d'en S'il n'est pas d<>fini dans votre script, Smarty essaiera alors d'en
d<>terminer automatiquement la valeur. d<>terminer automatiquement la valeur.
S'il est d<>fini, le chemin <emphasis role="bold">doit se terminer par un slash</emphasis>. S'il est d<>fini, le chemin <emphasis role="bold">doit se terminer par un slash</emphasis>.
</para> </para>
@@ -20,10 +20,10 @@
<![CDATA[ <![CDATA[
<?php <?php
// d<>finit le chemin du r<>pertoire de Smarty sur un syst<73>me *nix // d<>finit le chemin du r<>pertoire de Smarty sur un syst<73>me *nix
define('SMARTY_DIR', '/usr/local/lib/php/Smarty/libs/'); define('SMARTY_DIR', '/usr/local/lib/php/Smarty-v.e.r/libs/');
// d<>finit le chemin du r<>pertoire de Smarty sur un syst<73>me Windows // d<>finit le chemin du r<>pertoire de Smarty sur un syst<73>me Windows
define('SMARTY_DIR', 'c:/webroot/libs/Smarty/libs/'); define('SMARTY_DIR', 'c:/webroot/libs/Smarty-v.e.r/libs/');
// inclut la classe Smarty. Notez le 'S' en majuscule // inclut la classe Smarty. Notez le 'S' en majuscule
require_once(SMARTY_DIR . 'Smarty.class.php'); require_once(SMARTY_DIR . 'Smarty.class.php');
@@ -33,18 +33,18 @@ require_once(SMARTY_DIR . 'Smarty.class.php');
</example> </example>
<para> <para>
Voir aussi Voir aussi
<link linkend="language.variables.smarty.const">$smarty.const</link> et <link linkend="language.variables.smarty.const"><parameter>$smarty.const</parameter></link> et
<link linkend="variable.php.handling">$php_handling constants</link>. <link linkend="variable.php.handling"><parameter>$php_handling constants</parameter></link>.
</para> </para>
</sect1> </sect1>
<sect1 id="constant.smarty.core.dir"> <sect1 id="constant.smarty.core.dir">
<title>SMARTY_CORE_DIR</title> <title>SMARTY_CORE_DIR</title>
<para> <para>
Il doit s'agir du chemin complet du r<>pertoire o<> Il doit s'agir du <emphasis>chemin complet</emphasis> du r<>pertoire o<>
se trouvent les fichiers internes de Smarty. S'il n'est se trouvent les fichiers internes de Smarty. S'il n'est
pas d<>fini, Smarty placera comme valeur par d<>faut la pas d<>fini, Smarty placera comme valeur par d<>faut la
valeur de la constante pr<70>c<EFBFBD>dente valeur de la constante pr<70>c<EFBFBD>dente
<link linkend="constant.smarty.dir">SMARTY_DIR</link>. S'il est <link linkend="constant.smarty.dir"><constant>SMARTY_DIR</constant></link>. S'il est
d<>fini, le chemin doit se terminer par un slash. Utilisez cette d<>fini, le chemin doit se terminer par un slash. Utilisez cette
constante lorsque vous incluez manuellement n'importe constante lorsque vous incluez manuellement n'importe
quel fichier core.*. quel fichier core.*.
@@ -65,7 +65,7 @@ require_once(SMARTY_CORE_DIR . 'core.get_microtime.php');
<para> <para>
Voir aussi Voir aussi
<link linkend="language.variables.smarty.const">$smarty.const</link>. <link linkend="language.variables.smarty.const"><parameter>$smarty.const</parameter></link>.
</para> </para>
</sect1> </sect1>
</chapter> </chapter>