mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-05 19:04:27 +02:00
sync with EN & typo
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.1 Maintainer: nobody Status: partial -->
|
||||
<!-- EN-Revision: 1.4 Maintainer: yannick Status: ready -->
|
||||
<chapter id="advanced.features">
|
||||
<title>Fonctionnalit<EFBFBD>s avanc<6E>es</title>
|
||||
&programmers.advanced-features.advanced-features-objects;
|
||||
|
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.1 Maintainer: nobody Status: partial -->
|
||||
<!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
|
||||
<sect1 id="advanced.features.objects">
|
||||
<title>Objets</title>
|
||||
<para>
|
||||
Smarty donne l'acc<63>s aux objets PHP a travers les templates. Il y
|
||||
Smarty donne l'acc<63>s aux objets PHP <EFBFBD> travers les templates. Il y
|
||||
a 2 moyens d'y avoir acc<63>s. Le premier consiste a allouer les objets
|
||||
au template puis de les utiliser avec une syntaxe similaire a celles
|
||||
des fonctions personnalis<69>es. Le deuxi<78>me moyen consiste a allouer
|
||||
@@ -28,23 +28,38 @@
|
||||
d'allocation.
|
||||
</para>
|
||||
<para>
|
||||
Par d<>faut, les param<61>tres pass<73>s aux objets depuis le templates le sont de la
|
||||
m<>me faton que les fonctions utilisateurs les r<>cup<75>rent.
|
||||
Le premier param<61>tre correspond a un tableau associatif, le second a l'objet
|
||||
Smarty. Si vous souhaitez que les param<61>tres soient pass<73>es un a un, comme
|
||||
Par d<>faut, les param<61>tres pass<73>s aux objets depuis le template le sont de la
|
||||
m<>me fa<EFBFBD>on que les fonctions utilisateurs les r<>cup<75>rent.
|
||||
Le premier param<61>tre correspond <EFBFBD> un tableau associatif, le second <EFBFBD> l'objet
|
||||
Smarty. Si vous souhaitez que les param<61>tres soient pass<73>s un <EFBFBD> un, comme
|
||||
dans un appel traditionnel, d<>finissez registration, quatri<72>me param<61>tre optionnel,
|
||||
a false.
|
||||
<EFBFBD> false.
|
||||
</para>
|
||||
<para>
|
||||
Le cinqui<75>me param<61>tre optionnel n'a d'effet que si le param<61>tre
|
||||
<parameter>format</parameter> vaut <literal>true</literal> et il contient
|
||||
une liste de m<>thodes qui doivent <20>tre trait<69>es comme des blocks. Cel<65> signifie
|
||||
que ces m<>thodes ont un tag fermant dans le template
|
||||
(<literal>{foobar->meth2}...{/foobar->meth2}</literal>) et que les param<61>tres
|
||||
de ces m<>thodes fonctionnent de la m<>me fa<66>on que les param<61>tres des blocks
|
||||
de fonctions des plugins : Ils contiennent 4 param<61>tres
|
||||
<parameter>$params</parameter>,
|
||||
<parameter>$content</parameter>,
|
||||
<parameter>&$smarty</parameter> et
|
||||
<parameter>&$repeat</parameter> et ils fonctionnent de la m<>me
|
||||
fa<66>on que les blocks de fonctions des plugins.
|
||||
</para>
|
||||
<example>
|
||||
<title>utilisation d'un objet allou<6F> ou assign<67></title>
|
||||
<programlisting>
|
||||
<?php
|
||||
<title>Utilisation d'un objet allou<6F> ou assign<67></title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// la classe
|
||||
|
||||
class My_Object() {
|
||||
function meth1($params, &$smarty_obj) {
|
||||
return "this is my meth1";
|
||||
}
|
||||
function meth1($params, &$smarty_obj) {
|
||||
return "this is my meth1";
|
||||
}
|
||||
}
|
||||
|
||||
$myobj = new My_Object;
|
||||
@@ -59,10 +74,16 @@ $smarty->register_object("foobar",$myobj,null,false);
|
||||
$smarty->assign_by_ref("myobj", $myobj);
|
||||
|
||||
$smarty->display("index.tpl");
|
||||
?>
|
||||
|
||||
TEMPLATE:
|
||||
?>
|
||||
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
Et voici comment acc<63>der <20> vos objets dans index.tpl:
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{* acc<63>s a notre objet enregistr<74> *}
|
||||
{foobar->meth1 p1="foo" p2=$bar}
|
||||
|
||||
@@ -71,7 +92,9 @@ TEMPLATE:
|
||||
the output was {$output)
|
||||
|
||||
{* access our assigned object *}
|
||||
{$myobj->meth1("foo",$bar)}</programlisting>
|
||||
{$myobj->meth1("foo",$bar)}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
@@ -1,31 +1,33 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.1 Maintainer: nobody Status: partial -->
|
||||
<!-- EN-Revision: 1.2 Maintainer: yannick Status: ready -->
|
||||
<sect1 id="advanced.features.outputfilters">
|
||||
<title>Filtres de sortie</title>
|
||||
<para>
|
||||
Quand le template est appel<65> via les fonctions display() ou fetch(),
|
||||
sa sortie est envoy<6F>e a travers un ou plusieurs filtres de sorties.
|
||||
Ils diff<66>rent des filtres de post-compilation dans le sens ou ils agissent
|
||||
sa sortie est envoy<6F>e <EFBFBD> travers un ou plusieurs filtres de sorties.
|
||||
Ils diff<66>rent des filtres de post-compilation dans le sens o<EFBFBD> ils agissent
|
||||
sur la sortie des templates, une fois ex<65>cut<75>s, et non sur les sources
|
||||
des templates.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Les filtres de sortie peuvent <20>tre soit
|
||||
<link linkend="api.register.outputfilter">d<EFBFBD>clar<EFBFBD>s</link> soit
|
||||
charg<EFBFBD>s depuis les r<>pertoires des plugins en utilisant la fonction
|
||||
<link linkend="api.load.filter">load_filter()</link>
|
||||
ou en r<>glant la variable
|
||||
<link linkend="variable.autoload.filters">$autoload_filters</link>.
|
||||
Smarty passera la sortie du template en premier argument et attendra
|
||||
de la fonction qu'elle retourne le r<>sultat de l'ex<65>cution.
|
||||
</para>
|
||||
<example>
|
||||
<title>utilisation d'un filtre de sortie</title>
|
||||
<programlisting>
|
||||
<?php
|
||||
charg<72>s depuis les r<>pertoires des plugins en utilisant la fonction
|
||||
<link linkend="api.load.filter">load_filter()</link>
|
||||
ou en r<>glant la variable
|
||||
<link linkend="variable.autoload.filters">$autoload_filters</link>.
|
||||
Smarty passera la sortie du template en premier argument et attendra
|
||||
de la fonction qu'elle retourne le r<>sultat de l'ex<65>cution.
|
||||
</para>
|
||||
<example>
|
||||
<title>Utilisation d'un filtre de sortie</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
<?php
|
||||
// mettez ceci dans votre application
|
||||
function protect_email($tpl_output, &$smarty)
|
||||
function protect_email($tpl_output, &$smarty)
|
||||
{
|
||||
$tpl_output =
|
||||
preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!',
|
||||
@@ -39,9 +41,11 @@ $smarty->display("index.tpl");
|
||||
|
||||
// dor<6F>navant toute occurence d'un adresse email dans le r<>sultat du template
|
||||
// aura un protection simple contre les robots spammers
|
||||
?></programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
|
@@ -1,38 +1,46 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.1 Maintainer: nobody Status: partial -->
|
||||
<!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
|
||||
<sect1 id="advanced.features.postfilters">
|
||||
<title>Filtres de post-compilation</title>
|
||||
<para>
|
||||
Les filtres de post-compilation sont des fonctions PHP que vos templates
|
||||
ex<65>cutent apr<70>s avoir <20>t<EFBFBD> compil<69>s. Les filtres de post-compilation peuvent
|
||||
<20>tre soit <link linkend="api.register.postfilter">d<EFBFBD>clar<EFBFBD>s</link> soit charg<72>s
|
||||
<20>tre soit <link linkend="api.register.postfilter">d<EFBFBD>clar<EFBFBD>s</link>, soit charg<72>s
|
||||
depuis les r<>pertoires des plugins en utilisant la fonction
|
||||
<link linkend="api.load.filter">load_filter()</link> ou en r<>glant
|
||||
la variable <link linkend="variable.autoload.filters">$autoload_filters</link>.
|
||||
Smarty passera le template compil<69> en tant que premier param<61>tre et attendra
|
||||
de la fonction qu'elle retourne le r<>sultat de l'ex<65>cution.
|
||||
</para>
|
||||
<example>
|
||||
<title>utilisation d'un filtre de post-compilation de templates</title>
|
||||
<programlisting>
|
||||
<?php
|
||||
la variable <link linkend="variable.autoload.filters">$autoload_filters</link>.
|
||||
Smarty passera le template compil<69> en tant que premier param<61>tre et attendra
|
||||
de la fonction qu'elle retourne le r<>sultat de l'ex<65>cution.
|
||||
</para>
|
||||
<example>
|
||||
<title>Utilisation d'un filtre de post-compilation de templates</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// mettez cela dans votre application
|
||||
function add_header_comment($tpl_source, &$smarty)
|
||||
function add_header_comment($tpl_source, &$smarty)
|
||||
{
|
||||
return "<?php echo \"<!-- Created by Smarty! -->\n\" ?>\n".$tpl_source;
|
||||
return "<?php echo \"<!-- Cr<43><72> par Smarty ! -->\n\"; ?>\n".$tpl_source;
|
||||
}
|
||||
|
||||
// enregistre le filtre de post-compilation
|
||||
$smarty->register_postfilter("add_header_comment");
|
||||
$smarty->display("index.tpl");
|
||||
?>
|
||||
|
||||
{* template Smarty compil<69> index.tpl *}
|
||||
<!-- Created by Smarty! -->
|
||||
{* reste du contenu du template... *}</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
Votre template Smarty index.tpl ressemblera, apr<70>s compilation <20> :
|
||||
</para>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
<!-- Cr<43><72> par Smarty ! -->
|
||||
{* reste du contenu du template... *}
|
||||
]]>
|
||||
</screen>
|
||||
</example>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.1 Maintainer: nobody Status: partial -->
|
||||
<!-- EN-Revision: 1.2 Maintainer: yannick Status: ready -->
|
||||
<sect1 id="advanced.features.prefilters">
|
||||
<title>Filtres de pr<70>-compilation</title>
|
||||
<para>
|
||||
@@ -8,51 +8,58 @@
|
||||
ex<65>cutent avant qu'ils ne soient compil<69>s. Cela peut <20>tre utile
|
||||
pour pr<70>-traiter vos templates afin d'enlever les commentaires
|
||||
inutiles, garder un oeil sur ce que les gens mettent dans leurs templates, etc.
|
||||
</para>
|
||||
<para>
|
||||
Les filtre de pr<70>-compilations peuvent <20>tre soit
|
||||
<link linkend="api.register.prefilter">d<EFBFBD>clar<EFBFBD>s</link> soit charg<72>s
|
||||
a partir des r<>pertoires de plugins en utilisant la fonction
|
||||
<link linkend="api.load.filter">load_filter()</link> ou en r<>glant
|
||||
la variable
|
||||
<link linkend="variable.autoload.filters">$autoload_filters</link>.
|
||||
Smarty passera a la fonction le code source en tant que premier argument,
|
||||
et attendra en retour le code modifi<66>.
|
||||
</para>
|
||||
<example>
|
||||
<title>Utilisation un filtre de pr<70>-compilation de template</title>
|
||||
<programlisting>
|
||||
<?php
|
||||
<link linkend="api.register.prefilter">d<EFBFBD>clar<EFBFBD>s</link>, soit charg<72>s
|
||||
<EFBFBD> partir des r<>pertoires de plugins en utilisant la fonction
|
||||
<link linkend="api.load.filter">load_filter()</link> ou en r<>glant
|
||||
la variable
|
||||
<link linkend="variable.autoload.filters">$autoload_filters</link>.
|
||||
</para>
|
||||
<para>
|
||||
Smarty passera <20> la fonction le code source en tant que premier argument,
|
||||
et attendra en retour le code modifi<66>.
|
||||
</para>
|
||||
<example>
|
||||
<title>Utilisation un filtre de pr<70>-compilation de template</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
<?php
|
||||
// mettre ceci dans votre application
|
||||
function remove_dw_comments($tpl_source, &$smarty)
|
||||
function remove_dw_comments($tpl_source, &$smarty)
|
||||
{
|
||||
return preg_replace("/<!--#.*-->/U","",$tpl_source);
|
||||
return preg_replace("/<!--#.*-->/U","",$tpl_source);
|
||||
}
|
||||
|
||||
// enregistrer le filtre de pr<70>-compilation
|
||||
$smarty->register_prefilter("remove_dw_comments");
|
||||
$smarty->display("index.tpl");
|
||||
?>
|
||||
|
||||
{* template Smarty index.tpl *}
|
||||
<!--# cette ligne va <20>tre supprim<69>e par le filtre de pr<70>-compilation --></programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"../../../../manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
Ceci effacera tous les commentaires de la source du template.
|
||||
</para>
|
||||
</example>
|
||||
</sect1>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"../../../../manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
|
@@ -5,33 +5,33 @@
|
||||
<title>Fonction de gestion du cache</title>
|
||||
<para>
|
||||
Une alternative au m<>canisme de cache par d<>faut (bas<61> sur des fichiers
|
||||
de cache) consiste a sp<73>cifier une fonction de gestion de cache utilisateur
|
||||
de cache) consiste <EFBFBD> sp<73>cifier une fonction de gestion de cache utilisateur
|
||||
qui sera utilis<69>e pour lire, <20>crire et effacer les fichiers de cache.
|
||||
</para>
|
||||
<para>
|
||||
Il suffit de cr<63>er dans votre application une fonction que Smarty
|
||||
utilisera pour la gestion du cache et d'assigner le nom de cette
|
||||
fonction a la variable de classe
|
||||
fonction <EFBFBD> la variable de classe
|
||||
<link linkend="variable.cache.handler.func">$cache_handler_func</link>.
|
||||
Smarty utilisera alors cette fonction pour g<>rer les donn<6E>es du cache.
|
||||
Le premier argument est l'action, qui sera 'read', 'write' ou 'clear'.
|
||||
Le second param<61>tre est l'objet Smarty. Le troisi<73>me est le contenu
|
||||
du cache. Pour <20>crire, Smarty passe le contenu du cache dans ces param<61>tres.
|
||||
Pour lire, Smarty s'attend a ce que votre fonction accepte ce param<61>tre
|
||||
par r<>f<EFBFBD>rence et que vous le remplissiez avec les donn<6E>es du cache. Pour effacer,
|
||||
il suffit de passer une variable fictive car cette derni<6E>re n'est pas utilis<69>e.
|
||||
Le quatri<72>me param<61>tre est le nom du fichier de template (utile pour
|
||||
lire/<2F>crire), le cinqui<75>me param<61>tre est l'identifiant de cache (optionnel)
|
||||
et le sixi<78>me est l'identifiant de compilation.
|
||||
</para>
|
||||
<para>
|
||||
Note: Le dernier param<61>tre ($exp_time) a <20>t<EFBFBD> ajout<75> dans Smarty-2.6.0.
|
||||
</para>
|
||||
<example>
|
||||
<title>exemple d'utilisation de MySQL pour la source du cache</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
<?php
|
||||
Smarty utilisera alors cette fonction pour g<>rer les donn<6E>es du cache.
|
||||
Le premier argument est l'action, qui sera 'read', 'write' ou 'clear'.
|
||||
Le second param<61>tre est l'objet Smarty. Le troisi<73>me est le contenu
|
||||
du cache. Pour <20>crire, Smarty passe le contenu du cache dans ces param<61>tres.
|
||||
Pour lire, Smarty s'attend <EFBFBD> ce que votre fonction accepte ce param<61>tre
|
||||
par r<>f<EFBFBD>rence et que vous le remplissiez avec les donn<6E>es du cache. Pour effacer,
|
||||
il suffit de passer une variable fictive car cette derni<6E>re n'est pas utilis<69>e.
|
||||
Le quatri<72>me param<61>tre est le nom du fichier de template (utile pour
|
||||
lire/<2F>crire), le cinqui<75>me param<61>tre est l'identifiant de cache (optionnel)
|
||||
et le sixi<78>me est l'identifiant de compilation (optionnel).
|
||||
</para>
|
||||
<para>
|
||||
Note: Le dernier param<61>tre ($exp_time) a <20>t<EFBFBD> ajout<75> dans Smarty-2.6.0.
|
||||
</para>
|
||||
<example>
|
||||
<title>Exemple d'utilisation de MySQL pour la source du cache</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
/*
|
||||
|
||||
exemple d'usage :
|
||||
@@ -46,7 +46,7 @@ $smarty->display('index.tpl');
|
||||
|
||||
|
||||
la base mysql est attendu dans ce format :
|
||||
|
||||
|
||||
create database SMARTY_CACHE;
|
||||
|
||||
create table CACHE_PAGES(
|
||||
@@ -58,78 +58,78 @@ CacheContents MEDIUMTEXT NOT NULL
|
||||
|
||||
function mysql_cache_handler($action, &$smarty_obj, &$cache_content, $tpl_file=null, $cache_id=null, $compile_id=null)
|
||||
{
|
||||
// l'h(te de la bd, l'utilisateur, et le mot de passe
|
||||
$db_host = 'localhost';
|
||||
$db_user = 'myuser';
|
||||
$db_pass = 'mypass';
|
||||
$db_name = 'SMARTY_CACHE';
|
||||
$use_gzip = false;
|
||||
|
||||
// cr<63>e un identifiant de cache unique
|
||||
$CacheID = md5($tpl_file.$cache_id.$compile_id);
|
||||
|
||||
if(! $link = mysql_pconnect($db_host, $db_user, $db_pass)) {
|
||||
$smarty_obj->_trigger_error_msg("cache_handler: could not connect to database");
|
||||
return false;
|
||||
}
|
||||
mysql_select_db($db_name);
|
||||
// l'h<EFBFBD>te de la bd, l'utilisateur, et le mot de passe
|
||||
$db_host = 'localhost';
|
||||
$db_user = 'myuser';
|
||||
$db_pass = 'mypass';
|
||||
$db_name = 'SMARTY_CACHE';
|
||||
$use_gzip = false;
|
||||
|
||||
// cr<63>e un identifiant de cache unique
|
||||
$CacheID = md5($tpl_file.$cache_id.$compile_id);
|
||||
|
||||
if(! $link = mysql_pconnect($db_host, $db_user, $db_pass)) {
|
||||
$smarty_obj->_trigger_error_msg("cache_handler: could not connect to database");
|
||||
return false;
|
||||
}
|
||||
mysql_select_db($db_name);
|
||||
|
||||
switch ($action) {
|
||||
case 'read':
|
||||
// r<>cup<75>re le cache dans la base de donn<6E>es
|
||||
$results = mysql_query("select CacheContents from CACHE_PAGES where CacheID='$CacheID'");
|
||||
if(!$results) {
|
||||
$smarty_obj->_trigger_error_msg("cache_handler: query failed.");
|
||||
}
|
||||
$row = mysql_fetch_array($results,MYSQL_ASSOC);
|
||||
|
||||
if($use_gzip && function_exists("gzuncompress")) {
|
||||
$cache_content = gzuncompress($row["CacheContents"]);
|
||||
} else {
|
||||
$cache_content = $row["CacheContents"];
|
||||
}
|
||||
$return = $results;
|
||||
break;
|
||||
case 'write':
|
||||
// sauvegarde le cache dans la base de donn<6E>es
|
||||
|
||||
if($use_gzip && function_exists("gzcompress")) {
|
||||
// compresse le contenu pour gagner de la place
|
||||
$contents = gzcompress($cache_content);
|
||||
} else {
|
||||
$contents = $cache_content;
|
||||
}
|
||||
$results = mysql_query("replace into CACHE_PAGES values(
|
||||
'$CacheID',
|
||||
'".addslashes($contents)."')
|
||||
");
|
||||
if(!$results) {
|
||||
$smarty_obj->_trigger_error_msg("cache_handler: query failed.");
|
||||
}
|
||||
$return = $results;
|
||||
break;
|
||||
case 'clear':
|
||||
// efface les donn<6E>es du cache
|
||||
if(empty($cache_id) && empty($compile_id) && empty($tpl_file)) {
|
||||
// les efface toutes
|
||||
$results = mysql_query("delete from CACHE_PAGES");
|
||||
} else {
|
||||
$results = mysql_query("delete from CACHE_PAGES where CacheID='$CacheID'");
|
||||
}
|
||||
if(!$results) {
|
||||
$smarty_obj->_trigger_error_msg("cache_handler: query failed.");
|
||||
}
|
||||
$return = $results;
|
||||
break;
|
||||
default:
|
||||
// erreur, action inconnue
|
||||
$smarty_obj->_trigger_error_msg("cache_handler: unknown action \"$action\"");
|
||||
$return = false;
|
||||
break;
|
||||
}
|
||||
mysql_close($link);
|
||||
return $return;
|
||||
|
||||
switch ($action) {
|
||||
case 'read':
|
||||
// r<>cup<75>re le cache dans la base de donn<6E>es
|
||||
$results = mysql_query("select CacheContents from CACHE_PAGES where CacheID='$CacheID'");
|
||||
if(!$results) {
|
||||
$smarty_obj->_trigger_error_msg("cache_handler: query failed.");
|
||||
}
|
||||
$row = mysql_fetch_array($results,MYSQL_ASSOC);
|
||||
|
||||
if($use_gzip && function_exists("gzuncompress")) {
|
||||
$cache_content = gzuncompress($row["CacheContents"]);
|
||||
} else {
|
||||
$cache_content = $row["CacheContents"];
|
||||
}
|
||||
$return = $results;
|
||||
break;
|
||||
case 'write':
|
||||
// sauvegarde le cache dans la base de donn<6E>es
|
||||
|
||||
if($use_gzip && function_exists("gzcompress")) {
|
||||
// compresse le contenu pour gagner de la place
|
||||
$contents = gzcompress($cache_content);
|
||||
} else {
|
||||
$contents = $cache_content;
|
||||
}
|
||||
$results = mysql_query("replace into CACHE_PAGES values(
|
||||
'$CacheID',
|
||||
'".addslashes($contents)."')
|
||||
");
|
||||
if(!$results) {
|
||||
$smarty_obj->_trigger_error_msg("cache_handler: query failed.");
|
||||
}
|
||||
$return = $results;
|
||||
break;
|
||||
case 'clear':
|
||||
// efface les donn<6E>es du cache
|
||||
if(empty($cache_id) && empty($compile_id) && empty($tpl_file)) {
|
||||
// les efface toutes
|
||||
$results = mysql_query("delete from CACHE_PAGES");
|
||||
} else {
|
||||
$results = mysql_query("delete from CACHE_PAGES where CacheID='$CacheID'");
|
||||
}
|
||||
if(!$results) {
|
||||
$smarty_obj->_trigger_error_msg("cache_handler: query failed.");
|
||||
}
|
||||
$return = $results;
|
||||
break;
|
||||
default:
|
||||
// erreur, action inconnue
|
||||
$smarty_obj->_trigger_error_msg("cache_handler: unknown action \"$action\"");
|
||||
$return = false;
|
||||
break;
|
||||
}
|
||||
mysql_close($link);
|
||||
return $return;
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
@@ -1,52 +1,68 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.1 Maintainer: nobody Status: partial -->
|
||||
<!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
|
||||
<sect1 id="template.resources">
|
||||
<title>Ressources</title>
|
||||
<para>
|
||||
Les templates peuvent provenir d'une grande vari<72>t<EFBFBD> de ressources. Quand vous
|
||||
affichez ou r<>cup<75>rez un template, ou quand vous incluez un template
|
||||
dans un autre template, vous fournissez un type de ressource, suivi
|
||||
par le chemin appropri<72> et le nom du template.
|
||||
par le chemin appropri<72> et le nom du template. Si une ressource n'est pas
|
||||
explicitement donn<6E>e, la valeur de la variable <link
|
||||
linkend="variable.default.resource.type">$default_resource_type</link>
|
||||
sera utilis<69>e.
|
||||
</para>
|
||||
<sect2 id="templates.from.template.dir">
|
||||
<title>Templates depuis $template_dir</title>
|
||||
<para>
|
||||
Les templates du r<>pertoire $template_dir n'ont pas
|
||||
besoin d'une ressource template, bien que vous puissiez utiliser
|
||||
la ressource "file" pour <20>tre coh<6F>rent. Vous n'avez qu'a fournir
|
||||
la ressource "file" pour <20>tre coh<6F>rent. Vous n'avez qu'<EFBFBD> fournir
|
||||
le chemin vers le template que vous voulez utiliser, relatif
|
||||
au r<>pertoire racine $template_dir.
|
||||
</para>
|
||||
<example>
|
||||
<title>Utilisation de templates depuis $template_dir</title>
|
||||
<programlisting>
|
||||
// le script PHP
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$smarty->display("index.tpl");
|
||||
$smarty->display("admin/menu.tpl");
|
||||
$smarty->display("file:admin/menu.tpl"); // le m<>me que celui ci-dessus
|
||||
$smarty->display("file:admin/menu.tpl"); // le m<>me que ci-dessus
|
||||
?>
|
||||
|
||||
{* le template Smarty *}
|
||||
{include file="index.tpl"}
|
||||
{include file="file:index.tpl"} {* le m<>me que celui ci-dessus *}</programlisting>
|
||||
{include file="file:index.tpl"} {* le m<>me que ci-dessus *}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
<sect2 id="templates.from.any.dir">
|
||||
<title>Templates a partir de n'importe quel r<>pertoire</title>
|
||||
<title>Templates <EFBFBD> partir de n'importe quel r<>pertoire</title>
|
||||
<para>
|
||||
Les templates en-dehors du r<>pertoire $template_dir n<>cessitent
|
||||
le type de ressource template, suivi du chemin absolu et du nom du
|
||||
template.
|
||||
</para>
|
||||
<example>
|
||||
<title>utilisation d'un template depuis n'importe quel r<>pertoire</title>
|
||||
<programlisting>
|
||||
// le script PHP
|
||||
<title>Utilisation d'un template depuis n'importe quel r<>pertoire</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$smarty->display("file:/export/templates/index.tpl");
|
||||
$smarty->display("file:/path/to/my/templates/menu.tpl");
|
||||
|
||||
{* le template Smarty *}
|
||||
{include file="file:/usr/local/share/templates/navigation.tpl"}</programlisting>
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
Le template Smarty :
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{include file="file:/usr/local/share/templates/navigation.tpl"}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<sect3 id="templates.windows.filepath">
|
||||
@@ -55,17 +71,26 @@ $smarty->display("file:/path/to/my/templates/menu.tpl");
|
||||
Si vous utilisez Windows, les chemins de fichiers sont la plupart
|
||||
du temps sur un disque identifi<66> par une lettre (c:) au d<>but du chemin.
|
||||
Assurez-vous de bien mettre "file:" dans le chemin pour <20>viter des
|
||||
conflits d'espace de nommage et obtenir les r<>sultats escompt<70>s.
|
||||
conflits d'espace de noms et obtenir les r<>sultats escompt<70>s.
|
||||
</para>
|
||||
<example>
|
||||
<title>utilisation de templates avec des chemins de fichiers Windows</title>
|
||||
<programlisting>
|
||||
// le script PHP
|
||||
<title>Utilisation de templates avec des chemins de fichiers Windows</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$smarty->display("file:C:/export/templates/index.tpl");
|
||||
$smarty->display("file:F:/path/to/my/templates/menu.tpl");
|
||||
|
||||
{* le template Smarty *}
|
||||
{include file="file:D:/usr/local/share/templates/navigation.tpl"}</programlisting>
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
Le template Smarty :
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{include file="file:D:/usr/local/share/templates/navigation.tpl"}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect3>
|
||||
</sect2>
|
||||
@@ -73,15 +98,17 @@ $smarty->display("file:F:/path/to/my/templates/menu.tpl");
|
||||
<sect2 id="templates.from.elsewhere">
|
||||
<title>Templates depuis d'autres sources</title>
|
||||
<para>
|
||||
Vous pouvez r<>cup<75>rer les templates a partir n'importe quelle
|
||||
source a laquelle vous avez acc<63>s avec PHP : base de donn<6E>es,
|
||||
Vous pouvez r<>cup<75>rer les templates <EFBFBD> partir de n'importe quelle
|
||||
source <EFBFBD> laquelle vous avez acc<63>s avec PHP : base de donn<6E>es,
|
||||
sockets, LDAP et ainsi de suite. Il suffit d'<27>crire les fonctions
|
||||
de ressource plugins et de les enregistrer aupr<70>s de Smarty.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Reportez-vous a la section <link linkend="plugins.resources">ressource plugins</link>
|
||||
pour plus d'informations sur les fonctions que vous Otes cens<6E> fournir.
|
||||
Reportez-vous <EFBFBD> la section <link linkend="plugins.resources">ressource plugins</link>
|
||||
pour plus d'informations sur les fonctions que vous <EFBFBD>tes cens<6E> fournir.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
Notez que vous ne pouvez pas <20>craser la ressource <literal>file</literal> native,
|
||||
@@ -91,12 +118,12 @@ $smarty->display("file:F:/path/to/my/templates/menu.tpl");
|
||||
</para>
|
||||
</note>
|
||||
<example>
|
||||
<title>utilisation de ressources utilisateurs</title>
|
||||
<programlisting>
|
||||
// le script PHP
|
||||
|
||||
<title>Utilisation de ressources utilisateurs</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// mettez ces fonctions quelque part dans votre application
|
||||
function db_get_template ($tpl_name, &$tpl_source, &$smarty_obj)
|
||||
function db_get_template ($tpl_name, &$tpl_source, &$smarty_obj)
|
||||
{
|
||||
// requ<71>te BD pour r<>cup<75>rer le template
|
||||
// et remplir $tpl_source
|
||||
@@ -112,7 +139,7 @@ function db_get_template ($tpl_name, &$tpl_source, &$smarty_obj)
|
||||
}
|
||||
}
|
||||
|
||||
function db_get_timestamp($tpl_name, &$tpl_timestamp, &$smarty_obj)
|
||||
function db_get_timestamp($tpl_name, &$tpl_timestamp, &$smarty_obj)
|
||||
{
|
||||
// requ<71>te BD pour remplir $tpl_timestamp
|
||||
$sql = new SQL;
|
||||
@@ -127,13 +154,13 @@ function db_get_timestamp($tpl_name, &$tpl_timestamp, &$smarty_obj)
|
||||
}
|
||||
}
|
||||
|
||||
function db_get_secure($tpl_name, &$smarty_obj)
|
||||
function db_get_secure($tpl_name, &$smarty_obj)
|
||||
{
|
||||
// on suppose que tous les templates sont svrs
|
||||
return true;
|
||||
}
|
||||
|
||||
function db_get_trusted($tpl_name, &$smarty_obj)
|
||||
function db_get_trusted($tpl_name, &$smarty_obj)
|
||||
{
|
||||
// pas utilis<69>e pour les templates dans notre cas
|
||||
}
|
||||
@@ -146,9 +173,17 @@ $smarty->register_resource("db", array("db_get_template",
|
||||
|
||||
// utilise la ressource depuis le script PHP
|
||||
$smarty->display("db:index.tpl");
|
||||
|
||||
{* utilise la ressource depuis le template Smarty *}
|
||||
{include file="db:/extras/navigation.tpl"}</programlisting>
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
<para>
|
||||
Le template Smarty :
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{include file="db:/extras/navigation.tpl"}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
|
||||
@@ -156,35 +191,38 @@ $smarty->display("db:index.tpl");
|
||||
<title>Fonction de gestion de template par d<>faut</title>
|
||||
<para>
|
||||
Vous pouvez sp<73>cifier une fonction qui sera utilis<69>e pour
|
||||
r<>cup<75>rer le contenu d'un template dans le cas o<> le template
|
||||
r<>cup<75>rer le contenu d'un template dans le cas o<> le template
|
||||
ne peut pas <20>tre r<>cup<75>r<EFBFBD> depuis sa ressource. Une utilisation possible est
|
||||
la cr<63>ation de templates a la vol<6F>e.
|
||||
la cr<63>ation de templates <EFBFBD> la vol<6F>e.
|
||||
</para>
|
||||
<example>
|
||||
<title>utilisation de la fonction de gestion de template par d<>faut</title>
|
||||
<programlisting>
|
||||
<?php
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// mettez cette fonction quelque part dans votre application
|
||||
|
||||
function make_template ($resource_type, $resource_name, &$template_source, &$template_timestamp, &$smarty_obj)
|
||||
function make_template ($resource_type, $resource_name, &$template_source, &$template_timestamp, &$smarty_obj)
|
||||
{
|
||||
if( $resource_type == 'file' ) {
|
||||
if ( ! is_readable ( $resource_name )) {
|
||||
// cr<63>e le fichier de template et renvoie le contenu
|
||||
$template_source = "This is a new template.";
|
||||
$template_timestamp = time();
|
||||
$smarty_obj->_write_file($resource_name,$template_source);
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
// pas un fichier
|
||||
return false;
|
||||
if( $resource_type == 'file' ) {
|
||||
if ( ! is_readable ( $resource_name )) {
|
||||
// cr<63>e le fichier de template et renvoie le contenu
|
||||
$template_source = "Ceci est un nouveau template.";
|
||||
$template_timestamp = time();
|
||||
$smarty_obj->_write_file($resource_name,$template_source);
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
// pas un fichier
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// r<>gle la fonction par d<>faut
|
||||
$smarty->default_template_handler_func = 'make_template';
|
||||
?></programlisting>
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
@@ -1,8 +1,15 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.1 Maintainer: nobody Status: partial -->
|
||||
<chapter id="api.functions">
|
||||
<!-- EN-Revision: 1.8 Maintainer: yannick Status: ready -->
|
||||
<reference id="api.functions">
|
||||
<title>M<EFBFBD>thodes</title>
|
||||
<titleabbrev></titleabbrev>
|
||||
<partintro>
|
||||
<section>
|
||||
<title />
|
||||
<para></para>
|
||||
</section>
|
||||
</partintro>
|
||||
&programmers.api-functions.api-append;
|
||||
&programmers.api-functions.api-append-by-ref;
|
||||
&programmers.api-functions.api-assign;
|
||||
@@ -42,7 +49,9 @@
|
||||
&programmers.api-functions.api-unregister-postfilter;
|
||||
&programmers.api-functions.api-unregister-prefilter;
|
||||
&programmers.api-functions.api-unregister-resource;
|
||||
</chapter>
|
||||
|
||||
</reference>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.1 Maintainer: nobody Status: partial -->
|
||||
<!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
|
||||
<chapter id="api.variables">
|
||||
<title>Variables</title>
|
||||
|
||||
@@ -11,8 +11,6 @@
|
||||
&programmers.api-variables.variable-debugging;
|
||||
&programmers.api-variables.variable-debug-tpl;
|
||||
&programmers.api-variables.variable-debugging-ctrl;
|
||||
&programmers.api-variables.variable-global-assign;
|
||||
&programmers.api-variables.variable-undefined;
|
||||
&programmers.api-variables.variable-autoload-filters;
|
||||
&programmers.api-variables.variable-compile-check;
|
||||
&programmers.api-variables.variable-force-compile;
|
||||
@@ -35,9 +33,12 @@
|
||||
&programmers.api-variables.variable-right-delimiter;
|
||||
&programmers.api-variables.variable-compiler-class;
|
||||
&programmers.api-variables.variable-request-vars-order;
|
||||
&programmers.api-variables.variable-request-use-auto-globals;
|
||||
&programmers.api-variables.variable-error-reporting;
|
||||
&programmers.api-variables.variable-compile-id;
|
||||
&programmers.api-variables.variable-use-sub-dirs;
|
||||
&programmers.api-variables.variable-default-modifiers;
|
||||
&programmers.api-variables.variable-default-resource-type;
|
||||
</chapter>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.1 Maintainer: nobody Status: partial -->
|
||||
<!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
|
||||
<chapter id="caching">
|
||||
<title>Cache</title>
|
||||
<para>
|
||||
@@ -9,25 +9,26 @@
|
||||
linkend="api.fetch">fetch()</link> en sauvegardant leur r<>sultat
|
||||
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.
|
||||
Le syst<73>me de cache
|
||||
peut acc<63>l<EFBFBD>rer les traitements de faton impressionnante, en particulier les
|
||||
templates dont la compilation est tr<74>s longue. Comme le r<>sultat de
|
||||
display() ou de fetch() est dans le cache, un fichier de cache peut
|
||||
<20>tre compos<6F> de plusieurs fichiers de templates, plusieurs fichiers
|
||||
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
|
||||
le r<>sultat de display() ou de fetch() est dans le cache, un fichier de cache
|
||||
peut <20>tre compos<6F> de plusieurs fichiers de templates, plusieurs fichiers
|
||||
de configuration, etc.
|
||||
</para>
|
||||
<para>
|
||||
Comme les templates sont dynamiques, il est important de faire attention
|
||||
a la faton dont les fichiers de cache sont g<>n<EFBFBD>r<EFBFBD>s, et pour combien de temps.
|
||||
<EFBFBD> la fa<EFBFBD>on dont les fichiers de cache sont g<>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
|
||||
contenu ne change pas souvent, il peut <20>tre int<6E>ressant de mettre cette page
|
||||
dans le cache pour une heure ou plus. A l'inverse, si vous affichez une page
|
||||
de m<>t<EFBFBD>o mises a jour toutes les minutes, mettre cette page en cache
|
||||
de m<>t<EFBFBD>o mise a jour toutes les minutes, mettre cette page en cache
|
||||
n'a aucun sens.
|
||||
</para>
|
||||
&programmers.caching.caching-setting-up;
|
||||
&programmers.caching.caching-multiple-caches;
|
||||
&programmers.caching.caching-groups;
|
||||
|
||||
&programmers.caching.caching-cacheable;
|
||||
</chapter>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
|
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.1 Maintainer: nobody Status: partial -->
|
||||
<!-- EN-Revision: 1.5 Maintainer: yannick Status: ready -->
|
||||
<chapter id="plugins">
|
||||
<title>Etendre Smarty avec des plugins</title>
|
||||
<para>
|
||||
La version 2.0 a introduit l'architecture de plugin qui est
|
||||
utilis<69>e pour pratiquement toute les fonctionnalit<69>s
|
||||
utilis<69>e pour pratiquement toutes les fonctionnalit<69>s
|
||||
personnalisables de Smarty. Ceci comprend :
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem><simpara>les fonctions</simpara></listitem>
|
||||
@@ -19,9 +19,9 @@
|
||||
<listitem><simpara>les insertions</simpara></listitem>
|
||||
</itemizedlist>
|
||||
A part pour les ressources, la compatibilit<69> avec les anciennes
|
||||
fatons d'enregistrer les fonctions de gestion avec l'API register_
|
||||
fa<EFBFBD>ons d'enregistrer les fonctions de gestion avec l'API register_
|
||||
est conserv<72>e. Si vous n'avez pas utilis<69> cette API et que vous avez
|
||||
a la place directement modifi<66> les variables de classes
|
||||
<EFBFBD> la place directement modifi<66> les variables de classes
|
||||
<literal>$custom_funcs</literal>, <literal>$custom_mods</literal> et
|
||||
d'autres, vous devez alors modifier vos scripts pour utiliser
|
||||
l'API ou convertir vos fonctionnalit<69>s personnalis<69>es en plugins.
|
||||
|
@@ -1,20 +1,18 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.1 Maintainer: nobody Status: partial -->
|
||||
<!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
|
||||
<chapter id="smarty.constants">
|
||||
<title>Constantes</title>
|
||||
<para></para>
|
||||
|
||||
<sect1 id="constant.smarty.dir">
|
||||
<title>SMARTY_DIR</title>
|
||||
<para>
|
||||
Il doit s'agir du chemin complet du r<>pertoire o<>
|
||||
Il doit s'agir du chemin complet du r<>pertoire o<>
|
||||
se trouvent les fichiers classes de Smarty.
|
||||
S'il n'est pas d<>fini, Smarty essaiera alors d'en
|
||||
d<>terminer automatiquement la valeur.
|
||||
S'il est d<>fini, le chemin doit se terminer par un slash.
|
||||
</para>
|
||||
|
||||
<example>
|
||||
<title>SMARTY_DIR</title>
|
||||
<programlisting role="php">
|
||||
@@ -26,6 +24,30 @@ define("SMARTY_DIR","/usr/local/lib/php/Smarty/");
|
||||
|
||||
require_once(SMARTY_DIR."Smarty.class.php");
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<sect1 id="constant.smarty.core.dir">
|
||||
<title>SMARTY_CORE_DIR</title>
|
||||
<para>
|
||||
Il doit s'agir du chemin complet du r<>pertoire o<>
|
||||
se trouvent les fichiers internes de Smarty. S'il n'est
|
||||
pas d<>fini, Smarty placera comme valeur par d<>faut la
|
||||
valeur de la constante pr<70>c<EFBFBD>dente SMARTY_DIR. S'il est
|
||||
d<>fini, le chemin doit se terminer par un slash. Utilisez cette
|
||||
constante lorsque vous incluez manuellement n'importe
|
||||
quel fichier core.*.
|
||||
</para>
|
||||
<example>
|
||||
<title>SMARTY_CORE_DIR</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// chargement de core.get_microtime.php
|
||||
|
||||
require_once(SMARTY_CORE_DIR."core.get_microtime.php");
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
Reference in New Issue
Block a user