Variables $template_dir C'est le nom par dTfaut du rTpertoire des templates. Si vous ne spTcifiez aucun chemin lors de l'utilisation de templates, Smarty les cherchera a cet emplacement. Par dTfaut, il s'agit de "./templates", ce qui signifie qu'il va chercher le rTpertoire templates dans le rTpertoire oś se trouve le script PHP en cours d'exTcution. Note technique Il n'est pas conseillT de mettre ce rTpertoire dans l'arborescence Web. $compile_dir C'est le nom du rTpertoire oś se trouvent les templates compilTs. Par dTfaut, il s'agit de "./templates_c", ce qui signifie que Smarty va chercher ce rTpertoire dans le mOme rTpertoire que le script PHP en cours d'exTcution. Note technique Ce rTglage doit Otre soit un chemin absolu, soit un chemin relatif. include_path n'est pas utilisT pour Tcrire des fichiers. Note technique Il n'est pas conseillT de mettre ce rTpertoire sous la racine de l'arborescence Web. $config_dir Il s'agit du rTpertoire utilisT pour stocker les fichiers de configuration utilisTs dans les templates. La valeur par dTfaut est "./configs", ce qui signifie que Smarty va chercher ce rTpertoire dans le mOme rTpertoire que le script PHP qui s'exTcute. Note technique Il n'est pas conseillT de mettre ce rTpertoire sous la racine de l'arborescence Web. $plugins_dir Ce sont les rTpertoire dans lesquels Smarty ira chercher les plugins dont il a besoin. La valeur par dTfaut est "plugins" sous le rTpertoire SMARTY_DIR. Si vous donnez un chemin relatif, Smarty regardera d'abord relativement au SMARTY_DIR, puis relativement au rtc (rTpertoire de travail courant), puis relativement a chaque entrTe de votre rTpertoire d'inclusion PHP. Note technique Pour des raisons de performances, ne rTglez 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 dTbogage. La console est une fenOtre javascript qui vous informe des templates inclus et des variables assignTes dans la page courante. $debug_tpl C'est le nom du fichier template utilisT pour la console de dTbuggage. Par dTfaut debug.tpl, il se situe dans SMARTY_DIR $debugging_ctrl Cela permet d'avoir diffTrents moyens pour activer le dTbogage. URL signifie que si SMARTY_DEBUG se trouve dans QUERY_STRING, le dTbuggage est activT 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 assignTes 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 TlTment de $global_assign doit Otre 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 assignTes depuis ce tableau global. $SCRIPT_NAME est globalement assignT par dTfaut depuis $HTTP_SERVER_VARS. Note technique On peut accTder 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 rFgle la valeur de $undefined, null par dTfaut. N'est actuellement utilisT que pour initialiser des variables non-dTfinies dans $global_assign a des valeurs par dTfaut. $autoload_filters Si vous dTsirez charger des filtres a chaque invocation de templates, vous pouvez le spTcifier 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 TtT modifiT (date de derniFre modification diffTrente) depuis sa derniFre compilation. S'il a changT, le template est recompilT. Si le template n'a pas encore TtT compilT, il le sera quelle que soit la valeur ce rTglage. Par dTfaut cette valeur est a vrai. Quand une application est mise en production (les templates ne changent plus), cette vTrification n'est pas nTcessaire. Assurez-vous de mettre $compile_check a "false" pour des performances maximales. Notez que si vous mettez ce paramFtre a "false" et qu'un template est modifiT, vous ne verrez *pas* le changement car le template ne sera *pas* recompilT. Si le processus de cache est activT et que $compile_check l'est aussi, alors les fichiers du cache seront regTnTrTs si un template concernT ou un fichier de configuration concernT est modifiT. Voir aussi $force_compile ou clear_compiled_tpl. $force_compile Cela oblige Smarty a (re)compiler les templates a chaque invocation. Ce rTglage supplante $compile_check. Par dTfaut, il est dTsactivT. Ceci est commode pour le dTveloppement et le dTbogage mais ne devrait jamais Otre utilisT dans un environnment de production. Si le systFme de cache est actif, les fichiers du cache seront regTnTrTs a chaque appel. $caching Ce paramFtre demande a Smarty de mettre ou non en cache la sortie des templates. Par dTfaut ce rTglage est a 0 (dTsactivT). Si vos templates gTnFrent du contenu redondant, il est conseillT d'activer le cache. Cela permettra un gain de performance consTquent. Vous pouvez aussi avoir de nombreux fichiers de cache pour un mOme template. Une valeur de 1 ou 2 active le cache. 1 indique a Smarty d'utiliser la variable $cache_lifetime pour dTterminer si le fichier de cache a expirT. Une valeur de 2 indique a Smarty d'utiliser la valeur $cache_lifetime spTcifiTe a la gTnTration du cache. Ainsi vous pouvez rTgler la durTe de vie d'un fichier de cache avant de rTcupTrer 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 regTnTrT si un des templates ou un des fichiers de configuration qui fait partie de ce fichier de cache a TtT modifiT. Si $force_compile est actif, le contenu du cache est toujours regTnTrT. $cache_dir Il s'agit du nom du rTpertoire oś les caches des templates sont stockTs. Par dTfaut il s'agit de "./cache", ce qui signifie que Smarty va chercher ce rTpertoire dans le mOme rTpertoire que le script PHP en cours d'exTcution. Note technique Ce rTglage doit Otre soit un chemin absolu, soit un chemin relatif. include_path n'a aucune influence lors de l'Tcriture des fichiers. Technical Note Il n'est pas conseillT de mettre ce rTpertoire dans l'arborescence Web. $cache_lifetime Il s'agit de la durTe en secondes pendant laquelle un cache de template est valide. Une fois cette durTe dTpassTe, le cache est regTnTrT. $caching doit Otre a "true" pour que $cache_lifetime ait une quelconque utilitT. Avec une valeur de -1, le cache n'expire jamais. Avec une valeur de 0, le cache est toujours regTnTrT (utile a des fins de tests seulement. Une meilleure faton de dTsactiver le cache est de mettre $caching a "false"). Si $force_compile est activT, les fichiers du cache seront regTnTrTs a chaque fois, dTsactivant ainsi le cache. Vous pouvez effacer tous les fichiers du cache avec la function clear_all_cache() ou de faton individuelle (ou groupTe) avec la fonction clear_cache(). Note technique Si vous souhaitez donner a certains templates leur propre durTe de vie en cache, vous pouvez le faire en rTglant $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 livrTe avec Smarty. RTfTrez-vous a la section sur la fonction de gestion de cache personnalisTe pour plus de dTtails. $cache_modified_check Si cette variable est a vrai, Smarty respectera l'en-tOte If-Modified-Since envoyT par le client. Si la date de derniFre modification du fichier de cache n'a pas changT depuis la derniFre visite, alors un en-tOte "304 Not Modified" sera envoyT 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'Tcraser entre elles. Sinon les variables seront mises dans un tableau. TrFs utile si vous voulez stocker des tableaux de donnTes dans des fichiers de configuration, listez simplement chaque TlTment plusieurs fois. Mise a faux par dTfaut. $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 boolTen. 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 exTcutTe. vrai par dTfaut. $config_read_hidden Si cette variable est a vrai, les sections cachTs (dont les noms commencent par un point) dans les fichiers de configuration peuvent Otre lues depuis les templates. On laisse habituellement cela a faux, de cette faton vous pouvez stocker des donnTes sensibles dans les fichiers de configuration, comme par exemple des paramFtres de base de donnTes, sans vous soucier de la faton dont les templates les chargent. Mise a faux par dTfaut. $config_fix_newlines Si cette variable est mise a vrai, les caractFres de nouvelles lignes mac et dos (\r et \r\n) sont convertis en \n quand ils sont analysTs. vrai par dTfaut. $default_template_handler_func Cette fonction est appelTe quand un template ne peut pas Otre obtenu avec sa ressource. $php_handling Indique a Smarty comment interprTter le code PHP intTgrT dans les templates. Il y a quatre valeurs possibles, par dTfaut SMARTY_PHP_PASSTHRU. Notez que cela n'affecte PAS le code PHP entourT des balises {php}{/php} dans le template. SMARTY_PHP_PASSTHRU - Smarty Tcrit les balises telles quelles. SMARTY_PHP_QUOTE - Smarty transforme les balises en entitTs HTML. SMARTY_PHP_REMOVE - Smarty supprime les balises des templates. SMARTY_PHP_ALLOW - Smarty exTcute les balises comme du code PHP. NOTE : IntTgrer du code PHP dans les templates est vivement dTconseillT. PrTfTrez les fonctions utilisateurs ou les modificateurs de variables. $security Cette variable est a faux par dTfaut. $security est de rigueur quand vous n'Otes pas complFtement svr des personnes qui Tditent les templates (par ftp par exemple) et que vous voulez rTduire le risque que la sTcuritT du systFme soit compromise par le language de template. Activer cette option de sTcuritT applique les rFgles suivantes au langage de template, a moins que $security_settings ne spTcifie le contraire : Si $php_handling est rTglTe a SMARTY_PHP_ALLOW, cela est implicitement changT a SMARTY_PHP_PASSTHRU. Les fonctions PHP ne sont pas autorisTes dans les instructions IF, a part celles dTclarTes dans $security_settings. Les templates ne peuvent Otre inclus que depuis des rTpertoires listTs dans le tableau $security_dir. Les fichiers locaux ne peuvent Otre rTcupTrTs que depuis les rTpertoires listTs dans le tableau $security_dir en utilisant {fetch}. Les balises {php}{/php} ne sont pas autorisTes. Les fonctions PHP ne sont pas autorisTes en tant modificateurs, a part celles spTcifiTes dans $security_settings. $secure_dir Il s'agit d'un tableau contenant tous les rTpertoires locaux qui sont considTrTs comme sTcurisTs. {include} et {fetch} l'utilisent quand la sTcuritT est activTe. $security_settings Ces rTglages servent a Tcraser ou spTcifier les paramFtres de sTcuritT quand celle-ci est activTe. Les rTglages possibles sont les suivants : PHP_HANDLING - true/false. Si vrai, le rTglage $php_handling n'est pas vTrifiT. IF_FUNCS - Le tableau des noms de fonctions PHP autorisTes dans les intructions IF. INCLUDE_ANY - true/false. Si vrai, les templates peuvent Otre inclus de n'importe oś, quelque soit le contenu de $secure_dir. PHP_TAGS - true/false. Si vrai, les balises {php}{/php} sont autorisTes dans les templates. MODIFIER_FUNCS - Le tableau des noms de fonctions autorisTes a Otre utilisTes comme modificateurs de variables. $trusted_dir $trusted_dir n'est utilisTe lorsque $security est activTe. C'est un tableau de tous les rTpertoires qui peuvent Otre considTrTs comme svrs. Les rTpertoires svrs sont ceux qui contiennent des scripts PHP qui sont exTcutTs directement depuis les templates avec {include_php}. $left_delimiter Il s'agit du dTlimiteur gauche utilisT par le moteur de templates. La valeur par dTfaut est "{". $right_delimiter Il s'agit du dTlimiteur droit utilisT par le moteur de templates. La valeur par dTfaut est "}". $compiler_class SpTcifie le nom de la classe du compilateur qui va Otre utilisTe pour compiler les templates. Le compilateur par dTfaut est 'Smarty_Compiler'. RTservT aux utilisateurs avancTs. $request_vars_order L'ordre dans lequel les variables de requOtes sont enregistrTes, identique a variables_order dans php.ini. $compile_id Identifiant persistant du compilateur. On peut passer le mOme compile_id a chaque appel de fonction mais une alternative consiste a rTgler ce compile_id, qui sera utilisT implicitement. $use_sub_dirs RTgler cela a faux si votre environnement PHP n'autorise pas Smarty a crTer des sous-rTpertoires. Les sous-rTpertoires sont efficaces, utilisez-les quand vous le pouvez. $default_modifiers Il s'agit d'un tableau de modificateurs utilisT pour assigner une valeur par dTfaut a chaque variable dans un template. Par exemple, pour par dTfaut Tchapper les caractFres HTML de chaque variable, utilisez array('escape:"htmlall"'); Pour rendre une variable indTpendante des modificateurs par dTfaut, passez-lui en paramFtre le modificateur "nodefaults" : {$var|nodefaults}.