mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-06 19:34:27 +02:00
sync with EN
#Un biberon, un commit ! Merci Ewan ;)
This commit is contained in:
@@ -1,16 +1,35 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.4 Maintainer: didou Status: ready -->
|
||||
<!-- EN-Revision: 1.5 Maintainer: didou Status: ready -->
|
||||
|
||||
<chapter id="resources">
|
||||
<title>Ressources</title>
|
||||
<para>
|
||||
La page Web de Smarty se trouve <20> l'adresse suivante : &url.smarty;
|
||||
Vous pouvez souscrire <20> la mailing liste en envoyant un email <20>
|
||||
&ml.general.sub;.
|
||||
Les archives de la mailing list se trouvent <20> l'adresse suivante :
|
||||
&url.ml.archive;
|
||||
La page Web de Smarty se trouve <20> l'adresse suivante :
|
||||
<ulink url="&url.smarty;">&url.smarty;</ulink>
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
Vous pouvez souscrire <20> la mailing liste en envoyant un email <20>
|
||||
<literal>&ml.general.sub;</literal>.
|
||||
Les archives de la mailing list se trouvent <20> l'adresse suivante :
|
||||
<ulink url="&url.ml.archive;">ici</ulink>
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Les forums sur <ulink url="&url.forums;">&url.forums;</ulink>
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Le wiki sur <ulink url="&url.wiki;">&url.wiki;</ulink>
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Le chat sur <ulink url="&url.wiki;">irc.freenode.net#smarty</ulink>
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
La FAQ <ulink url="&url.faq_1;">ici</ulink> et <ulink url="&url.faq_2;">ici</ulink>
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</chapter>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
@@ -30,4 +49,4 @@ End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
-->
|
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.11 Maintainer: didou Status: ready -->
|
||||
<!-- EN-Revision: 1.12 Maintainer: didou Status: ready -->
|
||||
|
||||
<chapter id="tips">
|
||||
<title>Trucs et astuces</title>
|
||||
@@ -10,13 +10,21 @@
|
||||
<para>
|
||||
Peut-<2D>tre voudrez-vous des fois afficher une valeur par
|
||||
d<>faut pour une variable qui n'a pas <20>t<EFBFBD> assign<67>e, comme
|
||||
pour afficher "&nbsp;" afin que les couleurs de fond
|
||||
des tableaux fonctionnent. Beaucoup utiliseraient une
|
||||
instruction <link linkend="language.function.if">{if}</link>
|
||||
pour afficher <literal>&nbsp;</literal> afin que les couleurs
|
||||
de fond des tableaux fonctionnent. Beaucoup utiliseraient une
|
||||
instruction <link linkend="language.function.if"><varname>{if}</varname></link>
|
||||
pour g<>rer cel<65>, mais il existe un moyen
|
||||
plus facile dans Smarty : l'utilisation du modificateur
|
||||
de variable <link
|
||||
linkend="language.modifier.default"><emphasis>d<EFBFBD>faut</emphasis></link>.
|
||||
de variable
|
||||
<link linkend="language.modifier.default"><varname>default</varname></link>.
|
||||
<note>
|
||||
<para>Les erreurs <quote>de variable ind<6E>finie</quote> seront affich<63>s si
|
||||
la fonction PHP
|
||||
<ulink url="&url.php-manual;error_reporting">
|
||||
<varname>error_reporting()</varname></ulink> vaut <constant>E_ALL</constant>
|
||||
et qu'une variable n'a pas <20>t<EFBFBD> assign<67>e <20> Smarty.
|
||||
</para>
|
||||
</note>
|
||||
</para>
|
||||
<example>
|
||||
<title>Afficher &nbsp; quand une variable est vide</title>
|
||||
@@ -36,8 +44,8 @@
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Voir aussi
|
||||
<link linkend="language.modifier.default">default</link> et
|
||||
Voir aussi
|
||||
<link linkend="language.modifier.default"><varname>default</varname></link> et
|
||||
<link linkend="tips.default.var.handling">la gestion des variables par d<>faut</link>.
|
||||
</para>
|
||||
</sect1>
|
||||
@@ -46,12 +54,14 @@
|
||||
<title>Gestion des variables par d<>faut</title>
|
||||
<para>
|
||||
Si une variable est utilis<69>e fr<66>quemment dans vos templates,
|
||||
lui appliquer le modificateur par d<>faut peut <20>tre un peu fastidieux.
|
||||
lui appliquer le modificateur
|
||||
<link linkend="language.modifier.default"><varname>default</varname></link>
|
||||
peut <20>tre un peu fastidieux.
|
||||
Vous pouvez rem<65>dier <20> cel<65> en lui assignant une valeur par d<>faut
|
||||
avec la fonction <link linkend="language.function.assign">{assign}</link>.
|
||||
avec la fonction <link linkend="language.function.assign"><varname>{assign}</varname></link>.
|
||||
</para>
|
||||
<example>
|
||||
<title>assigner une valeur par d<>faut <20> une variable de template</title>
|
||||
<title>Assigner une valeur par d<>faut <20> une variable de template</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{* faites cela quelque part en haut de votre template *}
|
||||
@@ -64,7 +74,7 @@
|
||||
</example>
|
||||
<para>
|
||||
Voir aussi
|
||||
<link linkend="language.modifier.default">default</link> et
|
||||
<link linkend="language.modifier.default"><varname>default</varname></link> et
|
||||
<link linkend="tips.blank.var.handling">la gestion des variables non-assign<67>es</link>.
|
||||
</para>
|
||||
</sect1>
|
||||
@@ -74,18 +84,18 @@
|
||||
<para>
|
||||
Quand la majorit<69> de vos templates utilisent les m<>mes en-t<>te et pied-de-page,
|
||||
il est d'usage de les mettre dans leurs propres templates et de les inclure
|
||||
(<link linkend="language.function.include">{include}</link>).
|
||||
(<link linkend="language.function.include"><varname>{include}</varname></link>).
|
||||
Mais comment faire si l'en-t<>te doit avoir un titre diff<66>rent, selon la page
|
||||
d'o<> on vient ? Vous pouvez passer le titre <20> l'en-t<>te en tant qu'
|
||||
<link linkend="language.syntax.attributes">attribut</link> quand il est inclus.
|
||||
</para>
|
||||
|
||||
<example>
|
||||
<title>passer le titre au template d'en-t<>te</title>
|
||||
<title>Passer le titre au template d'en-t<>te</title>
|
||||
|
||||
<para>
|
||||
<filename>mainpage.tpl</filename> - Lorsque la page principal est construite,
|
||||
le titre 'Man Page' est pass<73> au <filename>header.tpl</filename> et sera utilis<69>
|
||||
le titre <quote>Man Page</quote> est pass<73> au <filename>header.tpl</filename> et sera utilis<69>
|
||||
en tant que titre.
|
||||
</para>
|
||||
<programlisting>
|
||||
@@ -98,12 +108,13 @@
|
||||
|
||||
<para>
|
||||
<filename>archives.tpl</filename> - Lorsque la page principal est construite, le titre
|
||||
sera 'Archives'. Notez que dans cet exemple, nous utilisons une variable du fichier
|
||||
sera <quote>Archives</quote>. Notez que dans cet exemple, nous utilisons une variable du fichier
|
||||
<filename>archives_page.conf</filename> au lieu d'une variable classique.
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{config_load file='archive_page.conf'}
|
||||
|
||||
{include file='header.tpl' title=#archivePageTitle#}
|
||||
{* corps du template ici *}
|
||||
{include file='footer.tpl'}
|
||||
@@ -111,9 +122,9 @@
|
||||
</programlisting>
|
||||
|
||||
<para>
|
||||
<filename>header.tpl</filename> - Notez que "Smarty News" est affich<63> si la variable
|
||||
$title n'est pas d<>finie, en utilisant le modificateur de variable par
|
||||
<link linkend="language.modifier.default">d<EFBFBD>faut</link>.
|
||||
<filename>header.tpl</filename> - Notez que <quote>Smarty News</quote> est affich<63>
|
||||
si la variable <literal>$title</literal> n'est pas d<>finie, en utilisant le modificateur de variable par
|
||||
<link linkend="language.modifier.default"><varname>default</varname></link>.
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
@@ -142,18 +153,11 @@
|
||||
<para>
|
||||
De fa<66>on g<>n<EFBFBD>rale, essayez de toujours passer les dates <20> Smarty
|
||||
sous forme de <ulink url="&url.php-manual;time">timestamp</ulink>.
|
||||
Cel<EFBFBD> permet aux designers de templates d'utiliser
|
||||
<link linkend="language.modifier.date.format">date_format</link>
|
||||
Cela permet aux designers de templates d'utiliser
|
||||
<link linkend="language.modifier.date.format"><varname>date_format</varname></link>
|
||||
pour avoir un contr<74>le total sur le formatage des dates et de comparer
|
||||
facilement les dates entre elles.
|
||||
</para>
|
||||
<note>
|
||||
<para>
|
||||
A partir Smarty 1.4.0, vous pouvez passer les dates <20> Smarty
|
||||
sous la forme de timestamps Unix ou MySQL, ou tout autre format de dates
|
||||
que comprend <ulink url="&url.php-manual;strtotime">strtotime()</ulink>.
|
||||
</para>
|
||||
</note>
|
||||
<example>
|
||||
<title>Utilisation de date_format</title>
|
||||
<programlisting>
|
||||
@@ -166,7 +170,7 @@
|
||||
</para>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
Jan 4, 2001
|
||||
Jan 4, 2009
|
||||
]]>
|
||||
</screen>
|
||||
<programlisting>
|
||||
@@ -179,10 +183,13 @@ Jan 4, 2001
|
||||
</para>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
2001/01/04
|
||||
2009/01/04
|
||||
]]>
|
||||
</screen>
|
||||
<programlisting>
|
||||
</screen>
|
||||
<para>
|
||||
Les dates peuvent <20>tre compar<61>es dans le template en utilisant les timestamps, comme ceci :
|
||||
</para>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{if $date1 < $date2}
|
||||
...
|
||||
@@ -191,7 +198,8 @@ Jan 4, 2001
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>
|
||||
En utilisant la fonction <link linkend="language.function.html.select.date">{html_select_date}</link>
|
||||
En utilisant la fonction
|
||||
<link linkend="language.function.html.select.date"><varname>{html_select_date}</varname></link>
|
||||
dans un template, le programmeur veut en g<>n<EFBFBD>ral convertir le
|
||||
r<>sultat d'un formulaire en un timestamp.
|
||||
Voici une fonction qui devrait vous <20>tre utile.
|
||||
@@ -210,13 +218,13 @@ $startDate = makeTimeStamp($startDate_Year, $startDate_Month, $startDate_Day);
|
||||
function makeTimeStamp($year='', $month='', $day='')
|
||||
{
|
||||
if(empty($year)) {
|
||||
$year = strftime("%Y");
|
||||
$year = strftime('%Y');
|
||||
}
|
||||
if(empty($month)) {
|
||||
$month = strftime("%m");
|
||||
$month = strftime('%m');
|
||||
}
|
||||
if(empty($day)) {
|
||||
$day = strftime("%d");
|
||||
$day = strftime('%d');
|
||||
}
|
||||
|
||||
return mktime(0, 0, 0, $month, $day, $year);
|
||||
@@ -228,10 +236,10 @@ function makeTimeStamp($year='', $month='', $day='')
|
||||
|
||||
<para>
|
||||
Voir aussi
|
||||
<link linkend="language.function.html.select.date">{html_select_date}</link>,
|
||||
<link linkend="language.function.html.select.time">{html_select_time}</link>,
|
||||
<link linkend="language.modifier.date.format">date_format</link> et
|
||||
<link linkend="language.variables.smarty.now">$smarty.now</link>,
|
||||
<link linkend="language.function.html.select.date"><varname>{html_select_date}</varname></link>,
|
||||
<link linkend="language.function.html.select.time"><varname>{html_select_time}</varname></link>,
|
||||
<link linkend="language.modifier.date.format"><varname>date_format</varname></link> et
|
||||
<link linkend="language.variables.smarty.now"><parameter>$smarty.now</parameter></link>,
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
@@ -311,8 +319,9 @@ function insert_header()
|
||||
Traditionnellemnt, la programmation avec des templates dans les applications
|
||||
se d<>roule de la fa<66>on suivante : d'abord vous r<>cup<75>rez vos variables
|
||||
dans l'application PHP (peut-<2D>tre avec des requ<71>tes en base de donn<6E>es), puis
|
||||
vous instanciez votre objet Smarty, <link linkend="api.assign">assign()</link>
|
||||
les variables et <link linkend="api.display">display()</link> le
|
||||
vous instanciez votre objet Smarty,
|
||||
<link linkend="api.assign"><varname>assign()</varname></link>
|
||||
les variables et <link linkend="api.display"><varname>display()</varname></link> le
|
||||
template. Disons par exemple que nous avons un t<>l<EFBFBD>scripteur dans
|
||||
notre template. Nous r<>cup<75>rerions les donn<6E>es dans notre application,
|
||||
puis les assignerions ensuite pour les afficher. Mais ne serait-ce pas
|
||||
@@ -329,7 +338,7 @@ function insert_header()
|
||||
<para>
|
||||
<filename>function.load_ticker.php</filename> -
|
||||
Efface le fichier du r<>pertoire des
|
||||
<link linkend="variable.plugins.dir">$plugins</link>
|
||||
<link linkend="variable.plugins.dir"><parameter>$plugins</parameter></link>
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
@@ -367,9 +376,9 @@ Stock Name: {$ticker.name} Stock Price: {$ticker.price}
|
||||
</example>
|
||||
<para>
|
||||
Voir aussi
|
||||
<link linkend="language.function.include.php">{include_php}</link>,
|
||||
<link linkend="language.function.include">{include}</link> et
|
||||
<link linkend="language.function.php">{php}</link>.
|
||||
<link linkend="language.function.include.php"><varname>{include_php}</varname></link>,
|
||||
<link linkend="language.function.include"><varname>{include}</varname></link> et
|
||||
<link linkend="language.function.php"><varname>{php}</varname></link>.
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1 id="tips.obfuscating.email">
|
||||
@@ -380,14 +389,13 @@ Stock Name: {$ticker.name} Stock Price: {$ticker.price}
|
||||
adresses est de parcourir les pages Web. Voici une fa<66>on de rem<65>dier
|
||||
<20> ce probl<62>me : mettre votre adresse email dans du Javascript brouill<6C>
|
||||
au milieu de votre source HTML, sans que cel<65> ne g<>ne l'affichage sur le
|
||||
navigateur Web. Cel<EFBFBD> est fait gr<67>ce au plugin
|
||||
<link linkend="language.function.mailto">{mailto}</link>.
|
||||
navigateur Web. Cela est fait gr<67>ce au plugin
|
||||
<link linkend="language.function.mailto"><varname>{mailto}</varname></link>.
|
||||
</para>
|
||||
<example>
|
||||
<title>Exemple de dissimulation d'une adresse email</title>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
{* dans le template *}
|
||||
<div id="contact">Envoyer une demande <20>
|
||||
{mailto address=$EmailAddress encode='javascript' subject='Bonjour'}
|
||||
]]>
|
||||
@@ -403,8 +411,8 @@ Stock Name: {$ticker.name} Stock Price: {$ticker.price}
|
||||
</note>
|
||||
<para>
|
||||
Voir aussi
|
||||
<link linkend="language.modifier.escape">escape</link> et
|
||||
<link linkend="language.function.mailto">{mailto}</link>.
|
||||
<link linkend="language.modifier.escape"><varname>escape</varname></link> et
|
||||
<link linkend="language.function.mailto"><varname>{mailto}</varname></link>.
|
||||
</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.4 Maintainer:gerald Status: ready -->
|
||||
<!-- EN-Revision: 1.5 Maintainer:gerald Status: ready -->
|
||||
|
||||
<chapter id="troubleshooting">
|
||||
<title>Diagnostic des erreurs</title>
|
||||
<para></para>
|
||||
@@ -13,15 +14,15 @@
|
||||
</para>
|
||||
<example>
|
||||
<title>erreurs Smarty</title>
|
||||
<screen>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
Warning: Smarty: [in index.tpl line 4]: syntax error: unknown tag - '%blah'
|
||||
in /path/to/smarty/Smarty.class.php on line 1041
|
||||
in /path/to/smarty/Smarty.class.php on line 1041
|
||||
|
||||
Fatal error: Smarty: [in index.tpl line 28]: syntax error: missing section name
|
||||
in /path/to/smarty/Smarty.class.php on line 1041
|
||||
in /path/to/smarty/Smarty.class.php on line 1041
|
||||
]]>
|
||||
</screen>
|
||||
</screen>
|
||||
</example>
|
||||
|
||||
<para>
|
||||
@@ -38,131 +39,135 @@ Fatal error: Smarty: [in index.tpl line 28]: syntax error: missing section name
|
||||
|
||||
<example>
|
||||
<title>Erreur d'analyse PHP</title>
|
||||
<screen>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
Parse error: parse error in /path/to/smarty/templates_c/index.tpl.php on line 75
|
||||
]]>
|
||||
</screen>
|
||||
</screen>
|
||||
</example>
|
||||
|
||||
<para>
|
||||
Quand vous rencontrez une erreur d'analyse PHP, le num<75>ro de la ligne
|
||||
indiqu<71> est celui du fichier PHP compil<69> et non du template. Vous pouvez alors
|
||||
regarder le template et d<>tecter l'erreur. Voici quelques erreurs fr<66>quentes :
|
||||
balises fermantes pour <link linkend="language.function.if">{if}{/if}</link>
|
||||
ou <link linkend="language.function.if">{section}{/section}</link> manquantes, ou
|
||||
syntaxe logique incorrecte dans une instruction {if}. Si vous ne trouvez pas l'erreur,
|
||||
vous devrez alors ouvrir le fichier PHP compil<69> et aller <20> la ligne correspondante pour
|
||||
trouver d'o<> vient l'erreur.
|
||||
balises fermantes pour
|
||||
<link linkend="language.function.if"><varname>{if}{/if}</varname></link>
|
||||
ou
|
||||
<link linkend="language.function.if"><varname>{section}{/section}</varname></link>
|
||||
manquantes, ou syntaxe logique incorrecte dans une instruction <varname>{if}</varname>.
|
||||
Si vous ne trouvez pas l'erreur, vous devrez alors ouvrir le fichier PHP compil<69> et aller <20> la
|
||||
ligne correspondante pour trouver d'o<> vient l'erreur.
|
||||
</para>
|
||||
|
||||
|
||||
<example>
|
||||
<title>Autres erreurs communes</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<screen>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
Warning: Smarty error: unable to read resource: "index.tpl" in...
|
||||
ou
|
||||
Warning: Smarty error: unable to read resource: "site.conf" in...
|
||||
]]>
|
||||
</screen>
|
||||
<para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
Le dossier <link linkend="variable.template.dir">$template_dir</link>
|
||||
est incorrect, n'existe pas ou le fichier
|
||||
the file <filename>index.tpl</filename> n'est pas dans le dossier
|
||||
<filename class="directory">templates/</filename>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Une fonction <link linkend="language.function.config.load">{config_load}</link>
|
||||
est dans un template (ou
|
||||
<link linkend="api.config.load">config_load()</link>
|
||||
a <20>t<EFBFBD> appel<65>) et soit
|
||||
<link linkend="variable.config.dir">$config_dir</link>
|
||||
est incoh<6F>rent, n'existe pas, ou
|
||||
<filename>site.conf</filename> n'est pas dans le dossier.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
</listitem><listitem>
|
||||
|
||||
<screen>
|
||||
<![CDATA[
|
||||
Fatal error: Smarty error: the $compile_dir 'templates_c' does not exist,
|
||||
or is not a directory...
|
||||
]]>
|
||||
</screen>
|
||||
</screen>
|
||||
<para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
Le dossier
|
||||
<link linkend="variable.template.dir"><parameter>$template_dir</parameter></link>
|
||||
est incorrect, n'existe pas ou le fichier
|
||||
the file <filename>index.tpl</filename> n'est pas dans le dossier
|
||||
<filename class="directory">templates/</filename>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Une fonction
|
||||
<link linkend="language.function.config.load"><varname>{config_load}</varname></link>
|
||||
est dans un template (ou
|
||||
<link linkend="api.config.load"><varname>config_load()</varname></link>
|
||||
a <20>t<EFBFBD> appel<65>) et soit
|
||||
<link linkend="variable.config.dir"><varname>$config_dir</varname></link>
|
||||
est incoh<6F>rent, n'existe pas, ou
|
||||
<filename>site.conf</filename> n'est pas dans le dossier.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
Fatal error: Smarty error: the $compile_dir 'templates_c' does not exist,
|
||||
or is not a directory...
|
||||
]]>
|
||||
</screen>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
Soit le dossier
|
||||
<link linkend="variable.compile.dir">$compile_dir</link>
|
||||
<link linkend="variable.compile.dir"><parameter>$compile_dir</parameter></link>
|
||||
n'est pas correctement d<>fini, le dossier n'existe pas, ou
|
||||
<filename>templates_c</filename> est un fichier et non un dossier.
|
||||
</para>
|
||||
</listitem><listitem>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
Fatal error: Smarty error: unable to write to $compile_dir '....
|
||||
]]>
|
||||
</screen>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
Fatal error: Smarty error: unable to write to $compile_dir '....
|
||||
]]>
|
||||
</screen>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
Le dossier <link linkend="variable.compile.dir">$compile_dir</link>
|
||||
Le dossier <link linkend="variable.compile.dir"><parameter>$compile_dir</parameter></link>
|
||||
n'est pas accessible en <20>criture par le serveur web. Voir le bas
|
||||
de la page sur l'<link linkend="installing.smarty.basic">installation de
|
||||
Smarty</link> pour les permissions.
|
||||
Smarty</link> pour les permissions.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</listitem><listitem>
|
||||
|
||||
<screen>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
Fatal error: Smarty error: the $cache_dir 'cache' does not exist,
|
||||
or is not a directory. in /..
|
||||
]]>
|
||||
</screen>
|
||||
</screen>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
Cela signifie que
|
||||
<link linkend="variable.caching">$caching</link> est activ<69> et soit
|
||||
<link linkend="variable.caching"><parameter>$caching</parameter></link> est activ<69> et soit
|
||||
le dossier
|
||||
<link linkend="variable.cache.dir">$cache_dir</link>
|
||||
<link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>
|
||||
n'est pas correctement d<>fini, le dossier n'existe pas, ou
|
||||
<filename>cache</filename> est un fichier et non un dossier.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</listitem><listitem>
|
||||
|
||||
<screen>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
Fatal error: Smarty error: unable to write to $cache_dir '/...
|
||||
]]>
|
||||
</screen>
|
||||
</screen>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
Cela signifie que
|
||||
<link linkend="variable.caching">$caching</link> est activ<69> et le dossier
|
||||
<link linkend="variable.cache.dir">$cache_dir</link>
|
||||
<link linkend="variable.caching"><parameter>$caching</parameter></link> est activ<69> et
|
||||
le dossier
|
||||
<link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>
|
||||
n'est pas accessible en <20>criture par le serveur web. Voir le bas
|
||||
de la page sur l'<link linkend="installing.smarty.basic">installation de
|
||||
Smarty</link> pour les permissions.
|
||||
Smarty</link> pour les permissions.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</example>
|
||||
</example>
|
||||
|
||||
<para>
|
||||
Voir aussi
|
||||
<link linkend="chapter.debugging.console">le d<>bogage</link>,
|
||||
<link linkend="variable.error.reporting">$error_reporting</link> et
|
||||
<link linkend="api.trigger.error">trigger_error()</link>.
|
||||
</para>
|
||||
<link linkend="variable.error.reporting"><parameter>$error_reporting</parameter></link> et
|
||||
<link linkend="api.trigger.error"><varname>trigger_error()</varname></link>.
|
||||
</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.13 Maintainer: yannick Status: ready -->
|
||||
<!-- EN-Revision: 1.15 Maintainer: yannick Status: ready -->
|
||||
|
||||
<part id="getting.started">
|
||||
<title>Pour commencer</title>
|
||||
@@ -157,8 +157,8 @@
|
||||
<title>Installation de base</title>
|
||||
<para>
|
||||
Copiez les fichiers biblioth<74>ques de Smarty du sous-dossier
|
||||
/libs/ de la distribution <20> un emplacement accessible <20> PHP.
|
||||
Ce sont des fichiers PHP que vous NE DEVEZ PAS
|
||||
<filename>/libs/</filename> de la distribution <20> un emplacement
|
||||
accessible <20> PHP. Ce sont des fichiers PHP que vous NE DEVEZ PAS
|
||||
modifier. Ils sont partag<61>s par toutes les applications et ne seront
|
||||
mis <20> jour que lorsque vous installerez une nouvelle version de
|
||||
Smarty.
|
||||
@@ -179,25 +179,26 @@ debug.tpl
|
||||
|
||||
<para>
|
||||
Smarty utilise une <ulink url="&url.php-manual;define">constante</ulink> PHP appel<65>e <link
|
||||
linkend="constant.smarty.dir">SMARTY_DIR</link> qui
|
||||
repr<70>sente le <emphasis role="bold">chemin complet</emphasis> de la biblioth<74>que Smarty. En fait,
|
||||
si votre application trouve le fichier
|
||||
linkend="constant.smarty.dir"><constant>SMARTY_DIR</constant></link> qui
|
||||
repr<70>sente le <emphasis role="bold">chemin complet</emphasis> de la biblioth<74>que Smarty.
|
||||
En fait, si votre application trouve le fichier
|
||||
<filename>Smarty.class.php</filename>, vous n'aurez pas
|
||||
besoin de d<>finir la variable <link linkend="constant.smarty.dir">SMARTY_DIR</link>,
|
||||
besoin de d<>finir la variable
|
||||
<link linkend="constant.smarty.dir"><constant>SMARTY_DIR</constant></link>,
|
||||
Smarty s'en chargera pour vous.
|
||||
En revanche, si <filename>Smarty.class.php</filename>
|
||||
n'est pas dans votre r<>pertoire d'inclusion ou que vous ne
|
||||
donnez pas un chemin absolu <20> votre application, vous
|
||||
devez d<>finir SMARTY_DIR explicitement. SMARTY_DIR
|
||||
devez d<>finir <constant>SMARTY_DIR</constant> explicitement.
|
||||
<constant>SMARTY_DIR</constant>
|
||||
<emphasis role="bold">doit</emphasis> avoir <20>tre termin<69> par un slash.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Voici comment cr<63>er une instance de Smarty dans vos scripts PHP :
|
||||
</para>
|
||||
|
||||
<example>
|
||||
<title>cr<EFBFBD>er une instance de Smarty</title>
|
||||
<title>Cr<EFBFBD>er une instance de Smarty</title>
|
||||
<para>
|
||||
Voici comment cr<63>er une instance de Smarty dans vos scripts PHP :
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
@@ -305,8 +306,8 @@ $smarty = new Smarty();
|
||||
une application principalement pour mettre en <20>vidence une
|
||||
convention de nommage des r<>pertoires. Vous pouvez utiliser le m<>me
|
||||
environnement pour n'importe quelle autre application, il suffit de
|
||||
remplacer "livredor" avec le nom de votre application. Nous allons
|
||||
mettre nos r<>pertoires Smarty dans
|
||||
remplacer <quote>livredor</quote> avec le nom de votre application.
|
||||
Nous allons mettre nos r<>pertoires Smarty dans
|
||||
<filename
|
||||
class="directory">/web/www.example.com/smarty/livredor/</filename>.
|
||||
</para>
|
||||
@@ -322,18 +323,19 @@ $smarty = new Smarty();
|
||||
<title>Technical Note</title>
|
||||
<para>
|
||||
Il est pratique de configurer le serveur Web de
|
||||
sorte que 'index.php' soit identifi<66> comme fichier
|
||||
sorte que <filename>index.php</filename> soit identifi<66> comme fichier
|
||||
par d<>faut de ce r<>pertoire. Aicnsi, si l'on tape
|
||||
'http://www.example.com/livredor/', le script 'index.php' soit
|
||||
ex<EFBFBD>cut<EFBFBD> sans que 'index.php' ne soit sp<73>cifi<EFBFBD> dans l'URL. Avec Apache,
|
||||
vous pouvez r<>gler cela en ajoutant 'index.php' <20> la ligne o<> se
|
||||
trouve <emphasis>DirectoryIndex</emphasis> (s<>parez chaque entr<74>e par un espace)
|
||||
dans le httpd.conf.
|
||||
</para>
|
||||
<para>
|
||||
<emphasis>DirectoryIndex
|
||||
index.htm index.html index.php index.php3 default.html index.cgi
|
||||
</emphasis>
|
||||
<literal>http://www.example.com/livredor/</literal>, le script
|
||||
<filename>index.php</filename> soit ex<65>cut<EFBFBD> sans que
|
||||
<filename>index.php</filename> ne soit sp<73>cifi<66> dans l'URL. Avec
|
||||
Apache, vous pouvez r<>gler cela en ajoutant <filename>index.php</filename>
|
||||
<EFBFBD> la ligne o<> se trouve <literal>DirectoryIndex</literal> (s<>parez chaque entr<74>e
|
||||
par un espace) dans le <filename>httpd.conf</filename>.
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
<![CDATA[DirectoryIndex index.htm index.html index.cgi index.php]]>
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
</para>
|
||||
</note>
|
||||
<para>
|
||||
@@ -341,7 +343,7 @@ $smarty = new Smarty();
|
||||
</para>
|
||||
|
||||
<example>
|
||||
<title>Exemple de structure de fichiers</title>
|
||||
<title>Structure de fichiers</title>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
/usr/local/lib/php/Smarty-v.e.r/libs/Smarty.class.php
|
||||
@@ -364,13 +366,13 @@ $smarty = new Smarty();
|
||||
<para>
|
||||
Smarty a besoin d'<emphasis role="bold">acc<EFBFBD>der en <20>criture</emphasis>
|
||||
aux r<>pertoires <link linkend="variable.compile.dir">
|
||||
<emphasis>$compile_dir</emphasis></link> et <link linkend="variable.cache.dir">
|
||||
<emphasis>$cache_dir</emphasis></link>,
|
||||
<parameter>$compile_dir</parameter></link> et <link linkend="variable.cache.dir">
|
||||
<parameter>$cache_dir</parameter></link>,
|
||||
assurez-vous donc que le serveur Web dispose de ces droits d'acc<63>s.
|
||||
Il s'agit g<>n<EFBFBD>ralement de l'utilisateur "nobody" et du group
|
||||
"nobody". Pour les utilisateurs de OS X, l'utilisateur par d<>faut
|
||||
est "web" et le group "web". Si vous utilisez Apache, vous pouvez
|
||||
parcourir le fichier httpd.conf (en g<>n<EFBFBD>ral dans
|
||||
parcourir le fichier <filename>httpd.conf</filename> (en g<>n<EFBFBD>ral dans
|
||||
"/usr/local/apache/conf/") pour d<>terminer quel est l'utilisateur
|
||||
et le groupe auquel il appartient.
|
||||
</para>
|
||||
@@ -389,7 +391,7 @@ chmod 770 /web/www.example.com/smarty/livredor/cache/
|
||||
</example>
|
||||
|
||||
<note>
|
||||
<title>Note technique</title>
|
||||
<title>Note</title>
|
||||
<para>
|
||||
La commande chmod 770 est relativement bien s<>curis<69>e, elle donne
|
||||
<20> l'utilisateur "nobody" et au groupe "nobody" les acc<63>s en
|
||||
@@ -400,12 +402,13 @@ chmod 770 /web/www.example.com/smarty/livredor/cache/
|
||||
</note>
|
||||
|
||||
<para>
|
||||
Nous devons cr<63>er le fichier 'index.tpl' que Smarty va charger.
|
||||
Il va se trouver dans le dossier <link linkend="variable.template.dir">$template_dir</link>.
|
||||
Nous devons cr<63>er le fichier <filename>index.tpl</filename> que Smarty va charger.
|
||||
Il va se trouver dans le dossier
|
||||
<link linkend="variable.template.dir"><parameter>$template_dir</parameter></link>.
|
||||
</para>
|
||||
|
||||
<example>
|
||||
<title>Edition de /web/www.example.com/smarty/templates/index.tpl</title>
|
||||
<title>Notre /web/www.example.com/smarty/templates/index.tpl</title>
|
||||
<screen>
|
||||
<![CDATA[
|
||||
|
||||
@@ -420,7 +423,8 @@ Bonjour, {$name}, Bienvenue dans Smarty !
|
||||
<note>
|
||||
<title>Note technique</title>
|
||||
<para>
|
||||
{* Smarty *} est un <link linkend="language.syntax.comments">commentaire</link>
|
||||
<literal>{* Smarty *}</literal> est un
|
||||
<link linkend="language.syntax.comments">commentaire</link>
|
||||
de template. Il n'est pas obligatoire mais il est bon de commencer tous vos templates
|
||||
avec ce commentaire. Cel<65> rend le fichier facilement
|
||||
reconnaissable en plus de son extension. Les <20>diteurs
|
||||
@@ -430,10 +434,11 @@ Bonjour, {$name}, Bienvenue dans Smarty !
|
||||
</note>
|
||||
|
||||
<para>
|
||||
Maintenant passons <20> l'<27>dition du fichier 'index.php'. Nous allons
|
||||
cr<63>er une instance de Smarty, <link linkend="api.assign">assigner</link>
|
||||
Maintenant passons <20> l'<27>dition du fichier <filename>index.php</filename>. Nous allons
|
||||
cr<63>er une instance de Smarty,
|
||||
<link linkend="api.assign"><varname>assigner<varname></link>
|
||||
une valeur <20> une variable de template et
|
||||
<link linkend="api.display">afficher</link> le r<>sultat avec 'index.tpl'.
|
||||
<link linkend="api.display">afficher</link> le r<>sultat avec <filename>index.tpl</filename>.
|
||||
</para>
|
||||
|
||||
<example>
|
||||
@@ -495,52 +500,54 @@ $smarty->display('index.tpl');
|
||||
propre classe fille et de l'initialiser selon votre environnement.
|
||||
De la sorte, nous n'aurons plus besoin de configurer <20> chaques fois les
|
||||
chemins de notre environnement. Cr<43>ons un nouveau r<>pertoire
|
||||
"/php/includes/livredor/" et un nouveau fichier appel<65> <filename>setup.php</filename>.
|
||||
Dans notre exemple d'environnement, "/php/includes" est notre
|
||||
<filename>/php/includes/livredor/</filename> et un nouveau fichier
|
||||
appel<EFBFBD> <filename>setup.php</filename>.
|
||||
Dans notre exemple d'environnement, <filename>/php/includes</filename> est notre
|
||||
include_path PHP. Assurez-vous de faire la m<>me chose ou alors d'utiliser
|
||||
des chemins absolus.
|
||||
</para>
|
||||
|
||||
<example>
|
||||
<title><EFBFBD>dition de /php/includes/livredor/setup.php</title>
|
||||
<title><EFBFBD>dition de /php/includes/livredor/setup.php</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
// charge la librairie Smarty
|
||||
require('Smarty.class.php');
|
||||
// charge la librairie Smarty
|
||||
require('Smarty.class.php');
|
||||
|
||||
// le fichier setup.php est un bon
|
||||
// endroit pour charger les fichiers
|
||||
// de librairies de l'application et vous pouvez
|
||||
// faire cel<65> juste ici. Par exemple :
|
||||
// require('livredor/livredor.lib.php');
|
||||
// le fichier setup.php est un bon
|
||||
// endroit pour charger les fichiers
|
||||
// de librairies de l'application et vous pouvez
|
||||
// faire cel<65> juste ici. Par exemple :
|
||||
// require('livredor/livredor.lib.php');
|
||||
|
||||
class Smarty_livredor extends Smarty {
|
||||
class Smarty_livredor extends Smarty {
|
||||
|
||||
function Smarty_livredor() {
|
||||
function Smarty_livredor() {
|
||||
|
||||
// Constructeur de la classe.
|
||||
// Appel<65> automatiquement <20> l'instanciation de la classe.
|
||||
// Constructeur de la classe.
|
||||
// Appel<65> automatiquement <20> l'instanciation de la classe.
|
||||
|
||||
$this->Smarty();
|
||||
$this->Smarty();
|
||||
|
||||
$this->template_dir = '/web/www.example.com/smarty/livredor/templates/';
|
||||
$this->compile_dir = '/web/www.example.com/smarty/livredor/templates_c/';
|
||||
$this->config_dir = '/web/www.example.com/smarty/livredor/configs/';
|
||||
$this->cache_dir = '/web/www.example.com/smarty/livredor/cache/';
|
||||
$this->template_dir = '/web/www.example.com/smarty/livredor/templates/';
|
||||
$this->compile_dir = '/web/www.example.com/smarty/livredor/templates_c/';
|
||||
$this->config_dir = '/web/www.example.com/smarty/livredor/configs/';
|
||||
$this->cache_dir = '/web/www.example.com/smarty/livredor/cache/';
|
||||
|
||||
$this->caching = true;
|
||||
$this->assign('app_name', 'Guest Book');
|
||||
}
|
||||
$this->caching = true;
|
||||
$this->assign('app_name', 'Guest Book');
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<para>
|
||||
Modifions maintenant le fichier 'index.php' pour qu'il utilise 'setup.php'
|
||||
Modifions maintenant le fichier <filename>index.php</filename> pour qu'il utilise
|
||||
<filename>setup.php</filename>
|
||||
</para>
|
||||
|
||||
<example>
|
||||
@@ -548,13 +555,13 @@ $smarty->display('index.tpl');
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
require('livredor/setup.php');
|
||||
require('livredor/setup.php');
|
||||
|
||||
$smarty = new Smarty_livredor;
|
||||
$smarty = new Smarty_livredor();
|
||||
|
||||
$smarty->assign('name','Ned');
|
||||
$smarty->assign('name','Ned');
|
||||
|
||||
$smarty->display('index.tpl');
|
||||
$smarty->display('index.tpl');
|
||||
|
||||
?>
|
||||
]]>
|
||||
@@ -563,8 +570,8 @@ $smarty->display('index.tpl');
|
||||
|
||||
<para>
|
||||
Vous savez maintenant qu'il est facile de cr<63>er une instance de Smarty,
|
||||
correctement configur<75>e, en utilisant Smarty_livredor qui initialise
|
||||
automatiquement tout ce qu'il faut pour votre application.
|
||||
correctement configur<75>e, en utilisant <literal>Smarty_livredor()</literal>
|
||||
qui initialise automatiquement tout ce qu'il faut pour votre application.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision$ -->
|
||||
<!-- EN-Revision: 1.5 Maintainer: yannick Status: ready -->
|
||||
<!-- EN-Revision: 1.6 Maintainer: yannick Status: ready -->
|
||||
|
||||
<!ENTITY note.parameter.merge '<note>
|
||||
<title>Note technique</title>
|
||||
@@ -20,10 +20,33 @@ C'est au cas o
|
||||
m<EFBFBD>me template, par exemple, pour avoir des templates compil<69>s
|
||||
pour diff<66>rents langages. Une autre utilit<69> pour l'identifiant de compilation
|
||||
<parameter>$compile_id</parameter> est lorsque vous utilisez plus d'un
|
||||
<link linkend="variable.template.dir">$template_dir</link> mais
|
||||
seulement un <link linkend="variable.compile.dir">$compile_dir</link>.
|
||||
<link linkend="variable.template.dir"><parameter>$template_dir</parameter></link> mais
|
||||
seulement un <link linkend="variable.compile.dir"><parameter>$compile_dir</parameter></link>.
|
||||
D<EFBFBD>finissez un <parameter>$compile_id</parameter>
|
||||
s<EFBFBD>par<EFBFBD> pour chaque <link linkend="variable.template.dir">$template_dir</link>,
|
||||
s<EFBFBD>par<EFBFBD> pour chaque
|
||||
<link linkend="variable.template.dir"><parameter>$template_dir</parameter></link>,
|
||||
sinon, les templates du m<>me nom s'effaceront. Vous pouvez <20>galement
|
||||
d<EFBFBD>finir la variable <link linkend="variable.compile.id">$compile_id</link> une seule
|
||||
fois plut<75>t que de la passer <20> chaque appel <20> la fonction.</para>'>
|
||||
fois plut<75>t que de la passer <20> chaque appel <20> la fonction.</para>'>
|
||||
|
||||
<!ENTITY api.register.snippet '<para>
|
||||
La fonction PHP de callback <parameter>function</parameter> peut <20>tre soit :
|
||||
<itemizedlist>
|
||||
<listitem><para>
|
||||
Une cha<68>ne de caract<63>res contenant la fonction <parameter>name</parameter>
|
||||
</para></listitem>
|
||||
|
||||
<listitem><para>
|
||||
Un tableau sous la forme <literal>array(&$object, $method)</literal> o<>
|
||||
<literal>&$object</literal> est une r<>f<EFBFBD>rence d'objet et
|
||||
<literal>$method</literal> une cha<68>ne contenant le nom de la m<>thode
|
||||
</para></listitem>
|
||||
|
||||
<listitem><para>
|
||||
Un tableau sous la forme
|
||||
<literal>array(&$class, $method)</literal> o<>
|
||||
<literal>$class</literal> est le nom de la classe et
|
||||
<literal>$method</literal> est une m<>thode de la classe.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>'>
|
Reference in New Issue
Block a user