MTthodes append void append mixed var void append string varname mixed var void append string varname mixed var boolean merge UtilisTe pour ajouter un TlTment a un tableau assignT. Si vous utilisez cette fonction avec une chaene de caractFre, elle est convertie en tableau auquel on ajoute ensuite l'TlTment. Vous pouvez explicitement passer des paires nom/valeur. Si vous passez le troisiFme paramFtre (optionel) a vrai, la valeur sera fusionnTe avec le tableau plut(t que d'Otre ajoutTe. Note technique Le paramFtre de fusion respecte les clTs des tableaux, ainsi si vous fusionnez deux tableaux indexTs numTriquement, ils pourront s'Tcraser l'un l'autre ou donner des clTs qui ne se suivent pas. Cela diffFre donc de la fonction PHP array_merge() qui supprime les clTs numTriques et les renumTrote. append // passe des paires nom/valeur $smarty->append("Name","Fred"); $smarty->append("Address",$address); // passe un tableau associatif $smarty->append(array("city" => "Lincoln","state" => "Nebraska")); append_by_ref void append_by_ref string varname mixed var void append_by_ref string varname mixed var boolean merge UtilisTe pour ajouter des valeurs a un template par rTfTrence plut(t que par copie. Si vous ajoutez une variable par rTfTrence puis changez sa valeur, le changement est aussi rTpercutT sur la valeur assignTe. Pour les objets, append_by_ref ne fait pas de copie en mTmoire de l'objet assignT. Voir la documentation PHP pour plus d'informations sur les rTfTrences de variable. Si vous passez le troisiFme paramFtre a vrai, la valeur sera fusionnTe avec le tableau courant plut(t que d'Otre ajoutTe. Note technique Le paramFtre de fusion respecte les clTs des tableaux, ainsi si vous fusionnez deux tableaux indexTs numTriquement, ils pourront s'Tcraser l'un l'autre ou donner des clTs qui ne se suivent pas. Cela diffFre donc de la fonction PHP array_merge() qui supprime les clTs numTriques et les renumTrote. append_by_ref // ajoute des paires nom/valeur $smarty->append_by_ref("Name",$myname); $smarty->append_by_ref("Address",$address); assign void assign mixed var void assign string varname mixed var UtilisTe pour assigner des valeurs aux templates. Vous pouvez explicitement passer des paires nom/valeur, ou des tableaux associatifs contenant des paires nom/valeur. assign // passe des paires nom/valeur $smarty->assign("Name","Fred"); $smarty->assign("Address",$address); // passe un tableau associatif $smarty->assign(array("city" => "Lincoln","state" => "Nebraska")); assign_by_ref void assign_by_ref string varname mixed var UtilisTe pour assigner des valeurs aux templates par rTfTrence plut(t que par copie. RTfTrez-vous au manuel PHP pour une explication plus prTcise sur les rTfTrences des variables. Note technique Si vous assignez une variable par rTfTrence puis changez sa valeur, le changement est aussi rTpercutT sur la valeur assignTe. Pour les objets, assign_by_ref ne fait pas de copie en mTmoire de l'objet assignT. RTfTrez-vous au manuel PHP pour une explication plus prTcise sur les rTfTrences de variable. assign_by_ref // passe des paires noms/valeurs $smarty->assign_by_ref("Name",$myname); $smarty->assign_by_ref("Address",$address); clear_all_assign void clear_all_assign UtilisTe pour effacer les valeurs de toutes les variables assignTes. clear_all_assign // efface toutes les variables assignTes $smarty->clear_all_assign(); clear_all_cache void clear_all_cache int expire time UtilisTe pour effacer les fichiers de cache des templates. Vous pouvez passer un paramFtre optionnel afin d'indiquer l'Gge minimun que doivent avoir les fichiers de cache pour qu'ils soient effacTs. clear_all_cache // efface le cache $smarty->clear_all_cache(); clear_assign void clear_assign string var Efface la valeur d'une variable assignTe. Il peut s'agir d'une simple valeur ou d'un tableau de valeur. clear_assign // efface une variable $smarty->clear_assign("Name"); // efface plusieurs variables $smarty->clear_assign(array("Name","Address","Zip")); clear_cache voidclear_cache stringtemplate stringcache id stringcompile id stringexpire time UtilisTe pour nettoyer le(s) fichier(s) de cache d'un template en particulier. Si vous avez plusieurs fichiers de cache pour ce template vous pouvez en spTcifier un en particulier en passant son identifiant en deuxiFme paramFtre. Vous pouvez aussi passer un identifiant de compilation en troisiFme paramFtre. Vous pouvez grouper des templates ensemble afin qu'ils puissent Otre supprimTs en groupe. RTfTrez-vous a la section sur le cache pour plus d'informations. Vous pouvez passer un quatriFme paramFtre pour indiquer un Gge minimum en secondes que le fichier en cache doit avoir avant d'Otre effacT. clear_cache // efface le fichier de cache de ce template $smarty->clear_cache("index.tpl"); // efface un fichier de cache grGce a son identifiant de cache $smarty->clear_cache("index.tpl","CACHEID"); clear_compiled_tpl void clear_compiled_tpl string tpl_file UtilisTe pour effacer la version compilTe du template spTcifiT ou de tous les templates si aucun n'est spTcifiT. Cette fonction est destinTe a un usage avancT et n'est pas habituellement utilisTe. clear_compiled_tpl // efface la version compilTe du template spTcifiT $smarty->clear_compiled_tpl("index.tpl"); // efface tout le contenu du rTpertoire des templates compilTs $smarty->clear_compiled_tpl(); clear_config voidclear_config stringvar UtilisTe pour effacer toutes les variables de configuration s'Ttant vues assigner une valeur. Si une variable est spTcifiTe, seule cette variable est effacTe. clear_config // efface toutes les variables de configuration assignTes $smarty->clear_config(); // efface une seule variable $smarty->clear_config('foobar'); config_load voidconfig_load stringfile stringsection UtilisTe pour charger des donnTes d'un fichier de config et les assigner a un template. Cette fonction fonctionne exactement comme la fonction de template config_load. Note technique Comme pour Smarty 2.4.0, les variables de templates assignTes sont conservTes entre chaque appel a fetch et display. Les variables de configuration chargTes avec config_load sont globales. Les fichiers de config sont aussi compilTs pour une exTcution plus rapide et respecte les rTglages de force_compile et de compile_check. config_load // charge les variables de configuration et les assigne $smarty->config_load('my.conf'); // charge une section $smarty->config_load('my.conf','foobar'); display voiddisplay stringtemplate stringcache_id stringcompile_id UtilisTe pour afficher un template. Il faut fournir un type et un chemin de ressource template valides. Vous pouvez passer en second paramFtre un identifiant de fichier de cache. Reportez-vous a la section cache pour plus de renseignements. Le troisiFme paramFtre optionnel est un identifiant de compilation. Cela s'avFre utile quand vous voulez compiler diffTrentes versions d'un mOme template, pour par exemple avoir des templates compilTs sTparTs pour diffTrents langages. Une autre utilitT de ce paramFtre est le cas oś vous utilisez plus d'un $template_dir mais un seul $compile_dir, car certains templates avec le mOme nom s'Tcraseraient entre eux. Vous pouvez aussi rTgler la variable $compile_id une seule fois au lieu de la passer a chaque appel. affichage include("Smarty.class.php"); $smarty = new Smarty; $smarty->caching = true; // ne fait un appel a la base de donnTes que si le fichier // de cache n'existe pas if(!$smarty->is_cached("index.tpl")) { // quelques donnTes $address = "245 N 50th"; $db_data = array( "City" => "Lincoln", "State" => "Nebraska", "Zip" = > "68502" ); $smarty->assign("Name","Fred"); $smarty->assign("Address",$address); $smarty->assign($db_data); } // display the output $smarty->display("index.tpl"); Utilisez la syntaxe des ressources templates pour afficher des fichiers en-dehors du rTpertoire $template_dir exemples de fonction d'affichage de ressources templates // chemin absolu $smarty->display("/usr/local/include/templates/header.tpl"); // chemin absolu (pareil) $smarty->display("file:/usr/local/include/templates/header.tpl"); // chemin absolu Windows (on DOIT utiliser le prTfixe "file:") $smarty->display("file:C:/www/pub/templates/header.tpl"); // inclue a partir de la ressource template "db" $smarty->display("db:header.tpl"); fetch stringfetch stringtemplate stringcache_id stringcompile_id UtilisTe pour renvoyer le rTsultat du template plut(t que de l'afficher. Il faut passer un type et un chemin de ressource template valides. Vous pouvez passer un identifiant de cache en deuxiFme paramFtre. Reportez-vous a la section cache pour plus de renseignements. Un troisiFme paramFtre optionnel est un identifiant de compilation. Cela s'avFre utile quand vous voulez compiler diffTrentes versions d'un mOme template, pour par exemple avoir des templates compilTs sTparTs pour diffTrents langages. Une autre utilitT de ce paramFtre est le cas oś vous utilisez plus d'un $template_dir mais un seul $compile_dir, car certains templates avec le mOme nom s'Tcraseraient entre eux. Vous pouvez aussi rTgler la variable $compile_id une seule fois plut(t que de la passer a chaque appel. fetch include("Smarty.class.php"); $smarty = new Smarty; $smarty->caching = true; // ne fait un appel a la base de donnTes que si le fichier // de cache n'existe pas if(!$smarty->is_cached("index.tpl")) { // quelques donnTes $address = "245 N 50th"; $db_data = array( "City" => "Lincoln", "State" => "Nebraska", "Zip" = > "68502" ); $smarty->assign("Name","Fred"); $smarty->assign("Address",$address); $smarty->assign($db_data); } // rTcupFre le rTsultat $output = $smarty->fetch("index.tpl"); // fait quelque chose avec $output echo $output; get_config_vars arrayget_config_vars stringvarname Retourne la valeur de la variable de configuration passTe en paramFtre. Si aucun paramFtre n'est donnT, un tableau de toutes les variables de configuration chargTes est renvoyT. get_config_vars // rTcupFre la variable de configuration chargTe 'foo' $foo = $smarty->get_config_vars('foo'); // rTcupFre toutes les variables de configuration chargTes $config_vars = $smarty->get_config_vars(); // les affiche a l'Tcran print_r($config_vars); get_registered_object array get_registered_object string object_name Retourne la rTfTrence d'un objet enregistrT. Utile quand vous voulez accTder directement a un objet enregistrT avec une fonction utilisateur. get_registered_object function smarty_block_foo($params, &$smarty) { if (isset[$params['object']]) { // rTcupFre la rTfTrence de l'objet enregistrT $obj_ref =& $smarty->get_registered_object($params['object']); // $obj_ref est maintenant une rTfTrence vers l'objet } } get_template_vars arrayget_template_vars stringvarname Retourne la valeur assignTe passTe en paramFtre. Si aucun paramFtre n'est donnT, un tableau de toutes les variables assignTes est renvoyT. get_template_vars // rTcupFre la variable 'foo' assignTe au template // get assigned template var 'foo' $foo = $smarty->get_template_vars('foo'); // rTcupFre toutes les variables assignTes a ce template $tpl_vars = $smarty->get_template_vars(); // les affiche a l'Tcran print_r($tpl_vars); is_cached void is_cached string template [string cache_id] Retourne vrai s'il y a un fichier de cache valide pour ce template. Cela fonctionne seulement si caching est a vrai. is_cached $smarty->caching = true; if(!$smarty->is_cached("index.tpl")) { // faire des requOtes base de donnTes et assigner // des variables ici. } $smarty->display("index.tpl"); Vous pouvez aussi passer en second paramFtre un identifiant de cache au cas oś vous voudriez plusieurs fichiers de cache pour ce template. is_cached with multiple-cache template $smarty->caching = true; if(!$smarty->is_cached("index.tpl","FrontPage")) { // faire des requOtes base de donnTes et assigner // des variables ici. } $smarty->display("index.tpl","FrontPage"); load_filter void load_filter string type string name Cette fonction peut Otre utilisTe pour charger un plugin de filtrage. Le premier argument spTcifie le type du filtre et peut prendre l'une des valeurs suivantes : 'pre', 'post' ou 'output'. Le second argument spTcifie le nom du plugin de filtrage, par exemple 'trim'. Chargement de plugins de filtrage $smarty->load_filter('pre', 'trim'); // charge le filtre 'trim' de type 'pre' $smarty->load_filter('pre', 'datefooter'); // charge un autre filtre de type 'pre' appelT 'datefooter' $smarty->load_filter('output', 'compress'); // charge le filtre 'compress' de type 'output' register_block void register_block string name string impl UtilisTe pour dTclarrer dynamiquement des plugins de fonction de blocs. Il faut passer en paramFtre le nom de la fonction de blocs, suivi du nom de la fonction PHP qui l'implTmente. register_block /* PHP */ $smarty->register_block("translate", "do_translation"); function do_translation ($params, $content, &$smarty) { if ($content) { $lang = $params['lang']; // fait de la traduction avec la variable $content echo $translation; } } {* template *} {translate lang="br"} Hello, world! {/translate} register_compiler_function void register_compiler_function string name string impl UtilisTe pour dTclarer dynamiquement un plugin de fonction de compilation. Il faut passer en paramFtres le nom de la fonction de compilation, suivi par la fonction PHP qui l'implTmente. register_function void register_function string name string impl UtilisTe pour dTclarer dynamiquement des plugins de fonction de templates. Il faut passer en paramFtres le nom de la fonction de templates, suivi par le nom de la fonction PHP qui l'implTmente. register_function $smarty->register_function("date_now", "print_current_date"); function print_current_date ($params) { extract($params); if(empty($format)) $format="%b %e, %Y"; echo strftime($format,time()); } // vous pouvez maintenant utiliser ceci dans Smarty pour afficher // la date actuelle : {date_now} ou {date_now format="%Y/%m/%d"} // pour la formater register_modifier void register_modifier string name string impl UtilisTe pour dTclarer dynamiquement un plugin de modificateur. Il faut passer en paramFtre le nom du modificateur de variables, suivi de la fonction PHP qui l'implTmente. register_modifier // associons la fonction PHP stripslashes a un modificateur Smarty. $smarty->register_modifier("sslash","stripslashes"); // vous pouvez maintenant utiliser {$var|sslash} pour supprimer les slash des variables register_object void register_object string object_name object $object array allowed methods/properties boolean format UtilisTe pour enregistrer un objet a utiliser dans un template. Reportez-vous a la section objet de ce manuel pour des exemples. register_outputfilter void register_outputfilter string function_name UtilisTe pour dTclarer dynamiquement des filtres de sortie, pour agir sur la sortie d'un template avant qu'elle ne soit affichTe. Reportez-vous a la section filtres de sortie pour plus d'information sur le sujet. register_postfilter void register_postfilter string function_name UtilisTe pour dTclarer dynamiquement des filtres de post-compilation pour y faire passer des templates une fois qu'ils ont TtT compilTs. Reportez-vous a la section filtres de post-compilation de templates pour avoir plus de renseignements sur la faton de paramTtrer les fonctions de post-compilation. register_prefilter void register_prefilter string function_name UtilisTe pour dTclarer dynamiquement des filtres de prT-compilation pour y faire passer des templates avant qu'ils ne soient compilTs. Reportez-vous a la section filtres de prT-compilation de templates pour avoir plus de renseignements sur la faton de paramTtrer les fonctions de prT-compilation. register_resource void register_resource string name array resource_funcs UtilisTe pour dTclarer dynamiquement une ressource plugin dans Smarty. Il faut passer en paramFtre le nom de la ressource et le tableau des fonctions PHP qui l'implTmentent. Reportez-vous a la section ressources templates pour avoir plus d'informations sur la faton de paramTtrer une fonction rTcupTrant des templates. register_resource $smarty->register_resource("db", array("db_get_template", "db_get_timestamp", "db_get_secure", "db_get_trusted")); trigger_error void trigger_error string error_msg [int level] Cette fonction peut-Otre utilisTe pour afficher un message d'erreur en utilisant Smarty. Le paramFtre level peut prendre l'une des valeures utilisTes par la fonction PHP trigger_error, i.e. E_USER_NOTICE, E_USER_WARNING, etc. Par dTfaut il s'agit de E_USER_WARNING. template_exists bool template_exists string template Cette fonction vTrifie si le template spTcifiT existe. Elle accepte soit un chemin vers le template, soit une ressource de type chaene de caractFres prTcisant le nom du template. unregister_block void unregister_block string name UtilisTe pour dTsallouer dynamiquement un plugin de fonction de blocs. Passez en paramFtre le nom du bloc. unregister_compiler_function void unregister_compiler_function string name UtilisTe pour dTsallouer dynamiquement un fonction de compilation. Passez en paramFtre le nom de la fonction de compilation. unregister_function void unregister_function string name UtilisTe pour dTsallouer dynamiquement un plugin de fonction de templates. Passez en paramFtres le nom de la fonction de templates. unregister_function // nous ne voulons pas que les designers de templates aient accFs // au systFme de fichiers. $smarty->unregister_function("fetch"); unregister_modifier void unregister_modifier string name UtilisTe pour dTsallouer dynamiquement un plugin modificateur de variable. Passez en paramFtre le nom du modificateur de templates. unregister_modifier // nous ne voulons pas que les designers de templates // suppriment les balises des Tlements $smarty->unregister_modifier("strip_tags"); unregister_object void unregister_object string object_name UtilisTe pour dTsallouer un objet. unregister_outputfilter void unregister_outputfilter string function_name UtilisTe pour dTsallouer dynamiquement un filtre de sortie. unregister_postfilter void unregister_postfilter string function_name UtilisTe pour dTsallouer dynamiquement un filtre de post-compilation. unregister_prefilter void unregister_prefilter string function_name UtilisTe pour dTsallouer dynamiquement un filtre de prT-compilation. unregister_resource void unregister_resource string name UtilisTe pour dTsallouer dynamiquement un plugin ressource. Passez en paramFtre le nom de la ressource. unregister_resource $smarty->unregister_resource("db");