Files
smarty/docs/fr/appendixes/troubleshooting.xml
yannick e6183de5ea sync with EN
#Un biberon, un commit ! Merci Ewan ;)
2006-09-30 03:20:52 +00:00

193 lines
6.1 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1.5 Maintainer:gerald Status: ready -->
<chapter id="troubleshooting">
<title>Diagnostic des erreurs</title>
<para></para>
<sect1 id="smarty.php.errors">
<title>Erreurs Smarty/PHP</title>
<para>
Smarty peut identifier de nombreuses erreurs comme des attributs de
balises manquants ou de noms de variables malformés. Dans ce cas-là,
vous verrez apparaître une erreur semblable à :
</para>
<example>
<title>erreurs Smarty</title>
<screen>
<![CDATA[
Warning: Smarty: [in index.tpl line 4]: syntax error: unknown tag - '%blah'
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
]]>
</screen>
</example>
<para>
Smarty vous indique le nom du template, le numéro de la ligne et l'erreur.
Après cela, vous pouvez connaître le numéro de ligne où il y a eu erreur dans
la définition de la classe Smarty.
</para>
<para>
Il y a certaines erreurs que Smarty ne peut pas détecter, comme les
balises fermantes manquantes. Ce type d'erreurs est la plupart du temps
repéré dans la phase de compilation PHP du template compilé.
</para>
<example>
<title>Erreur d'analyse PHP</title>
<screen>
<![CDATA[
Parse error: parse error in /path/to/smarty/templates_c/index.tpl.php on line 75
]]>
</screen>
</example>
<para>
Quand vous rencontrez une erreur d'analyse PHP, le numéro de la ligne
indiqué est celui du fichier PHP compilé et non du template. Vous pouvez alors
regarder le template et détecter l'erreur. Voici quelques erreurs fréquentes :
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é et aller à la
ligne correspondante pour trouver d'où vient l'erreur.
</para>
<example>
<title>Autres erreurs communes</title>
<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"><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 été appelé) et soit
<link linkend="variable.config.dir"><varname>$config_dir</varname></link>
est incohé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"><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>
</itemizedlist>
<screen>
<![CDATA[
Fatal error: Smarty error: unable to write to $compile_dir '....
]]>
</screen>
<itemizedlist>
<listitem>
<para>
Le dossier <link linkend="variable.compile.dir"><parameter>$compile_dir</parameter></link>
n'est pas accessible en é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.
</para>
</listitem>
</itemizedlist>
<screen>
<![CDATA[
Fatal error: Smarty error: the $cache_dir 'cache' does not exist,
or is not a directory. in /..
]]>
</screen>
<itemizedlist>
<listitem>
<para>
Cela signifie que
<link linkend="variable.caching"><parameter>$caching</parameter></link> est activé et soit
le dossier
<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>
<screen>
<![CDATA[
Fatal error: Smarty error: unable to write to $cache_dir '/...
]]>
</screen>
<itemizedlist>
<listitem>
<para>
Cela signifie que
<link linkend="variable.caching"><parameter>$caching</parameter></link> est activé et
le dossier
<link linkend="variable.cache.dir"><parameter>$cache_dir</parameter></link>
n'est pas accessible en é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.
</para>
</listitem>
</itemizedlist>
</example>
<para>
Voir aussi
<link linkend="chapter.debugging.console">le débogage</link>,
<link linkend="variable.error.reporting"><parameter>$error_reporting</parameter></link> et
<link linkend="api.trigger.error"><varname>trigger_error()</varname></link>.
</para>
</sect1>
</chapter>
<!-- 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
-->