Variables $template_dir C'est le nom par défaut du répertoire des templates. Si vous ne spécifiez aucun chemin lors de l'utilisation de templates, Smarty les cherchera a cet emplacement. Par défaut, il s'agit de "./templates", ce qui signifie qu'il va chercher le répertoire templates dans le répertoire oú se trouve le script PHP en cours d'exécution. Note technique Il n'est pas conseillé de mettre ce répertoire dans l'arborescence Web. $compile_dir C'est le nom du répertoire oú se trouvent les templates compilés. Par défaut, il s'agit de "./templates_c", ce qui signifie que Smarty va chercher ce répertoire dans le même répertoire que le script PHP en cours d'exécution. Note technique Ce réglage doit être soit un chemin absolu, soit un chemin relatif. include_path n'est pas utilisé pour écrire des fichiers. Note technique Il n'est pas conseillé de mettre ce répertoire sous la racine de l'arborescence Web. $config_dir Il s'agit du répertoire utilisé pour stocker les fichiers de configuration utilisés dans les templates. La valeur par défaut est "./configs", ce qui signifie que Smarty va chercher ce répertoire dans le même répertoire que le script PHP qui s'exécute. Note technique Il n'est pas conseillé de mettre ce répertoire sous la racine de l'arborescence Web. $plugins_dir Ce sont les répertoire dans lesquels Smarty ira chercher les plugins dont il a besoin. La valeur par défaut est "plugins" sous le répertoire SMARTY_DIR. Si vous donnez un chemin relatif, Smarty regardera d'abord relativement au SMARTY_DIR, puis relativement au rtc (répertoire de travail courant), puis relativement a chaque entrée de votre répertoire d'inclusion PHP. Note technique Pour des raisons de performances, ne réglez pas votre plugins_dir pour qu'il utilise votre include_path PHP. Utilisez un chemin absolu ou un chemin relatif a SMARTY_DIR ou au rtc. $debugging Cela active la console de débogage. La console est une fenêtre javascript qui vous informe des templates inclus et des variables assignées dans la page courante. $debug_tpl C'est le nom du fichier template utilisé pour la console de débuggage. Par défaut debug.tpl, il se situe dans SMARTY_DIR $debugging_ctrl Cela permet d'avoir différents moyens pour activer le débogage. URL signifie que si SMARTY_DEBUG se trouve dans QUERY_STRING, le débuggage est activé a l'invocation du script. Si $debugging est a vrai, cette valeur est sans effet. $global_assign C'est une liste de variable qui sont toujours implicitement assignées au moteur de templates. Ceci est commode pour rendre des variables globales ou des variables du serveur accessibles a tous les templates plut(t que de devoir les assigner a la main. Chaque élément de $global_assign doit être soit le nom de la variable globale, soit une paire clef/valeur, oú clef est le nom du tableau global et valeur le tableau de variable assignées depuis ce tableau global. $SCRIPT_NAME est globalement assigné par défaut depuis $HTTP_SERVER_VARS. Note technique On peut accéder aux variables du serveur avec la variable $smarty, par exemple {$smarty.server.SCRIPT_NAME}. Se reporter a la section sur la variable $smarty. $undefined Cela régle la valeur de $undefined, null par défaut. N'est actuellement utilisé que pour initialiser des variables non-définies dans $global_assign a des valeurs par défaut. $autoload_filters Si vous désirez charger des filtres a chaque invocation de templates, vous pouvez le spécifier en utilisant cette variable. Les types de filtres et les valeurs sont des tableaux comportant le nom des filtres. $smarty->autoload_filters = array('pre' => array('trim', 'stamp'), 'output' => array('convert')); $compile_check A chaque invocation de l'application PHP, Smarty fait un test pour voir si le template courant a été modifié (date de derniére modification différente) depuis sa derniére compilation. S'il a changé, le template est recompilé. Si le template n'a pas encore été compilé, il le sera quelle que soit la valeur ce réglage. Par défaut cette valeur est a vrai. Quand une application est mise en production (les templates ne changent plus), cette vérification n'est pas nécessaire. Assurez-vous de mettre $compile_check a "false" pour des performances maximales. Notez que si vous mettez ce paramétre a "false" et qu'un template est modifié, vous ne verrez *pas* le changement car le template ne sera *pas* recompilé. Si le processus de cache est activé et que $compile_check l'est aussi, alors les fichiers du cache seront regénérés si un template concerné ou un fichier de configuration concerné est modifié. Voir aussi $force_compile ou clear_compiled_tpl. $force_compile Cela oblige Smarty a (re)compiler les templates a chaque invocation. Ce réglage supplante $compile_check. Par défaut, il est désactivé. Ceci est commode pour le développement et le débogage mais ne devrait jamais être utilisé dans un environnment de production. Si le systéme de cache est actif, les fichiers du cache seront regénérés a chaque appel. $caching Ce paramétre demande a Smarty de mettre ou non en cache la sortie des templates. Par défaut ce réglage est a 0 (désactivé). Si vos templates générent du contenu redondant, il est conseillé d'activer le cache. Cela permettra un gain de performance conséquent. Vous pouvez aussi avoir de nombreux fichiers de cache pour un même template. Une valeur de 1 ou 2 active le cache. 1 indique a Smarty d'utiliser la variable $cache_lifetime pour déterminer si le fichier de cache a expiré. Une valeur de 2 indique a Smarty d'utiliser la valeur $cache_lifetime spécifiée a la génération du cache. Ainsi vous pouvez régler la durée de vie d'un fichier de cache avant de récupérer le template pour avoir un certain contr(le quand ce fichier en particulier expire. Voir aussi is_cached. Si $compile_check est actif, le contenu du cache sera regénéré si un des templates ou un des fichiers de configuration qui fait partie de ce fichier de cache a été modifié. Si $force_compile est actif, le contenu du cache est toujours regénéré. $cache_dir Il s'agit du nom du répertoire oú les caches des templates sont stockés. Par défaut il s'agit de "./cache", ce qui signifie que Smarty va chercher ce répertoire dans le même répertoire que le script PHP en cours d'exécution. Note technique Ce réglage doit être soit un chemin absolu, soit un chemin relatif. include_path n'a aucune influence lors de l'écriture des fichiers. Note technique Il n'est pas conseillé de mettre ce répertoire dans l'arborescence Web. $cache_lifetime Il s'agit de la durée en secondes pendant laquelle un cache de template est valide. Une fois cette durée dépassée, le cache est regénéré. $caching doit être a "true" pour que $cache_lifetime ait une quelconque utilité. Avec une valeur de -1, le cache n'expire jamais. Avec une valeur de 0, le cache est toujours regénéré (utile a des fins de tests seulement. Une meilleure faton de désactiver le cache est de mettre $caching a "false"). Si $force_compile est activé, les fichiers du cache seront regénérés a chaque fois, désactivant ainsi le cache. Vous pouvez effacer tous les fichiers du cache avec la function clear_all_cache() ou de faton individuelle (ou groupée) avec la fonction clear_cache(). Note technique Si vous souhaitez donner a certains templates leur propre durée de vie en cache, vous pouvez le faire en réglant $caching a 2, puis $cache_lifetime a une unique valeur juste avant d'appeler display ou fetch(). $cache_handler_func Vous pouvez utiliser votre propre fonction de gestion du cache plut(t que d'utiliser celle livrée avec Smarty. Référez-vous a la section sur la fonction de gestion de cache personnalisée pour plus de détails. $cache_modified_check Si cette variable est a vrai, Smarty respectera l'en-tête If-Modified-Since envoyé par le client. Si la date de derniére modification du fichier de cache n'a pas changé depuis la derniére visite, alors un en-tête "304 Not Modified" sera envoyé a la place du contenu. Cela ne fonctionne qu'avec du contenu mis en cache hors de la balise insert. $config_overwrite Si cette variable est a vrai, les variables lues dans les fichiers de configuration peuvent s'écraser entre elles. Sinon les variables seront mises dans un tableau. Très utile si vous voulez stocker des tableaux de données dans des fichiers de configuration, listez simplement chaque élément plusieurs fois. Mise a faux par défaut. $config_booleanize Si cette variable est a vrai, les valeurs on/true/yes et off/false/no dans les fichiers de configuration sont automitiquement converties en booléen. De cette faton vous pouvez utiliser ces valeurs dans le template de la faton suivante : {if #foobar#} ... {/if}. Si foobar est a on, true ou yes, l'instruction {if} sera exécutée. vrai par défaut. $config_read_hidden Si cette variable est a vrai, les sections cachés (dont les noms commencent par un point) dans les fichiers de configuration peuvent être lues depuis les templates. On laisse habituellement cela a faux, de cette faton vous pouvez stocker des données sensibles dans les fichiers de configuration, comme par exemple des paramétres de base de données, sans vous soucier de la faton dont les templates les chargent. Mise a faux par défaut. $config_fix_newlines Si cette variable est mise a vrai, les caractéres de nouvelles lignes mac et dos (\r et \r\n) sont convertis en \n quand ils sont analysés. vrai par défaut. $default_template_handler_func Cette fonction est appelée quand un template ne peut pas être obtenu avec sa ressource. $php_handling Indique a Smarty comment interpréter le code PHP intégré dans les templates. Il y a quatre valeurs possibles, par défaut SMARTY_PHP_PASSTHRU. Notez que cela n'affecte PAS le code PHP entouré des balises {php}{/php} dans le template. SMARTY_PHP_PASSTHRU - Smarty écrit les balises telles quelles. SMARTY_PHP_QUOTE - Smarty transforme les balises en entités HTML. SMARTY_PHP_REMOVE - Smarty supprime les balises des templates. SMARTY_PHP_ALLOW - Smarty exécute les balises comme du code PHP. NOTE : Intégrer du code PHP dans les templates est vivement déconseillé. Préférez les fonctions utilisateurs ou les modificateurs de variables. $security Cette variable est a faux par défaut. $security est de rigueur quand vous n'Otes pas complétement svr des personnes qui éditent les templates (par ftp par exemple) et que vous voulez réduire le risque que la sécurité du systéme soit compromise par le language de template. Activer cette option de sécurité applique les régles suivantes au langage de template, a moins que $security_settings ne spécifie le contraire : Si $php_handling est réglée a SMARTY_PHP_ALLOW, cela est implicitement changé a SMARTY_PHP_PASSTHRU. Les fonctions PHP ne sont pas autorisées dans les instructions IF, a part celles déclarées dans $security_settings. Les templates ne peuvent être inclus que depuis des répertoires listés dans le tableau $security_dir. Les fichiers locaux ne peuvent être récupérés que depuis les répertoires listés dans le tableau $security_dir en utilisant {fetch}. Les balises {php}{/php} ne sont pas autorisées. Les fonctions PHP ne sont pas autorisées en tant modificateurs, a part celles spécifiées dans $security_settings. $secure_dir Il s'agit d'un tableau contenant tous les répertoires locaux qui sont considérés comme sécurisés. {include} et {fetch} l'utilisent quand la sécurité est activée. $security_settings Ces réglages servent à écraser ou spécifier les paramétres de sécurité quand celle-ci est activée. Les réglages possibles sont les suivants : PHP_HANDLING - true/false. Si vrai, le réglage $php_handling n'est pas vérifié. IF_FUNCS - Le tableau des noms de fonctions PHP autorisées dans les intructions IF. INCLUDE_ANY - true/false. Si vrai, les templates peuvent être inclus de n'importe oú, quelque soit le contenu de $secure_dir. PHP_TAGS - true/false. Si vrai, les balises {php}{/php} sont autorisées dans les templates. MODIFIER_FUNCS - Le tableau des noms de fonctions autorisées a être utilisées comme modificateurs de variables. $trusted_dir $trusted_dir n'est utilisée lorsque $security est activée. C'est un tableau de tous les répertoires qui peuvent être considérés comme svrs. Les répertoires svrs sont ceux qui contiennent des scripts PHP qui sont exécutés directement depuis les templates avec {include_php}. $left_delimiter Il s'agit du délimiteur gauche utilisé par le moteur de templates. La valeur par défaut est "{". $right_delimiter Il s'agit du délimiteur droit utilisé par le moteur de templates. La valeur par défaut est "}". $compiler_class Spécifie le nom de la classe du compilateur qui va être utilisée pour compiler les templates. Le compilateur par défaut est 'Smarty_Compiler'. Réservé aux utilisateurs avancés. $request_vars_order L'ordre dans lequel les variables de requêtes sont enregistrées, identique a variables_order dans php.ini. $compile_id Identifiant persistant du compilateur. On peut passer le même compile_id a chaque appel de fonction mais une alternative consiste a régler ce compile_id, qui sera utilisé implicitement. $use_sub_dirs Régler cela a faux si votre environnement PHP n'autorise pas Smarty a créer des sous-répertoires. Les sous-répertoires sont efficaces, utilisez-les quand vous le pouvez. $default_modifiers Il s'agit d'un tableau de modificateurs utilisé pour assigner une valeur par défaut a chaque variable dans un template. Par exemple, pour par défaut échapper les caractéres HTML de chaque variable, utilisez array('escape:"htmlall"'); Pour rendre une variable indépendante des modificateurs par défaut, passez-lui en paramétre le modificateur "nodefaults" : {$var|nodefaults}.