MTthodes append void append mixed var void append string varname mixed var void append string varname mixed var boolean merge Utilisée pour ajouter un Tlément a un tableau assigné. Si vous utilisez cette fonction avec une chaene de caractère, elle est convertie en tableau auquel on ajoute ensuite l'Tlément. Vous pouvez explicitement passer des paires nom/valeur. Si vous passez le troisième paramètre (optionel) a vrai, la valeur sera fusionnée avec le tableau plut(t que d'Otre ajoutée. Note technique Le paramètre de fusion respecte les clés des tableaux, ainsi si vous fusionnez deux tableaux indexés numériquement, ils pourront s'Tcraser l'un l'autre ou donner des clés qui ne se suivent pas. Cela diffère donc de la fonction PHP array_merge() qui supprime les clés numériques et les renumérote. 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 Utilisée pour ajouter des valeurs a un template par référence plut(t que par copie. Si vous ajoutez une variable par référence puis changez sa valeur, le changement est aussi répercuté sur la valeur assignée. Pour les objets, append_by_ref ne fait pas de copie en mémoire de l'objet assigné. Voir la documentation PHP pour plus d'informations sur les références de variable. Si vous passez le troisième paramètre a vrai, la valeur sera fusionnée avec le tableau courant plut(t que d'Otre ajoutée. Note technique Le paramètre de fusion respecte les clés des tableaux, ainsi si vous fusionnez deux tableaux indexés numériquement, ils pourront s'Tcraser l'un l'autre ou donner des clés qui ne se suivent pas. Cela diffère donc de la fonction PHP array_merge() qui supprime les clés numériques et les renumérote. 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 Utilisée 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 Utilisée pour assigner des valeurs aux templates par référence plut(t que par copie. RTférez-vous au manuel PHP pour une explication plus précise sur les références des variables. Note technique Si vous assignez une variable par référence puis changez sa valeur, le changement est aussi répercuté sur la valeur assignée. Pour les objets, assign_by_ref ne fait pas de copie en mémoire de l'objet assigné. RTférez-vous au manuel PHP pour une explication plus précise sur les références 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 Utilisée pour effacer les valeurs de toutes les variables assignées. clear_all_assign // efface toutes les variables assignées $smarty->clear_all_assign(); clear_all_cache void clear_all_cache int expire time Utilisée pour effacer les fichiers de cache des templates. Vous pouvez passer un paramètre optionnel afin d'indiquer l'Gge minimun que doivent avoir les fichiers de cache pour qu'ils soient effacés. clear_all_cache // efface le cache $smarty->clear_all_cache(); clear_assign void clear_assign string var Efface la valeur d'une variable assignée. 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 Utilisée 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 spécifier un en particulier en passant son identifiant en deuxième paramètre. Vous pouvez aussi passer un identifiant de compilation en troisième paramètre. Vous pouvez grouper des templates ensemble afin qu'ils puissent Otre supprimés en groupe. RTférez-vous a la section sur le cache pour plus d'informations. Vous pouvez passer un quatrième paramètre pour indiquer un Gge minimum en secondes que le fichier en cache doit avoir avant d'Otre effacé. 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 Utilisée pour effacer la version compilée du template spécifié ou de tous les templates si aucun n'est spécifié. Cette fonction est destinée a un usage avancé et n'est pas habituellement utilisée. clear_compiled_tpl // efface la version compilée du template spécifié $smarty->clear_compiled_tpl("index.tpl"); // efface tout le contenu du répertoire des templates compilés $smarty->clear_compiled_tpl(); clear_config voidclear_config stringvar Utilisée pour effacer toutes les variables de configuration s'Ttant vues assigner une valeur. Si une variable est spécifiée, seule cette variable est effacée. clear_config // efface toutes les variables de configuration assignées $smarty->clear_config(); // efface une seule variable $smarty->clear_config('foobar'); config_load voidconfig_load stringfile stringsection Utilisée pour charger des données 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 assignées sont conservées entre chaque appel a fetch et display. Les variables de configuration chargées avec config_load sont globales. Les fichiers de config sont aussi compilés pour une exécution plus rapide et respecte les réglages 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 Utilisée pour afficher un template. Il faut fournir un type et un chemin de ressource template valides. Vous pouvez passer en second paramètre un identifiant de fichier de cache. Reportez-vous a la section cache pour plus de renseignements. Le troisième paramètre optionnel est un identifiant de compilation. Cela s'avère utile quand vous voulez compiler différentes versions d'un même template, pour par exemple avoir des templates compilés séparés pour différents langages. Une autre utilité de ce paramètre est le cas oú vous utilisez plus d'un $template_dir mais un seul $compile_dir, car certains templates avec le même nom s'Tcraseraient entre eux. Vous pouvez aussi régler 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 données que si le fichier // de cache n'existe pas if(!$smarty->is_cached("index.tpl")) { // quelques données $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 répertoire $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 préfixe "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 Utilisée pour renvoyer le résultat 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 deuxième paramètre. Reportez-vous a la section cache pour plus de renseignements. Un troisième paramètre optionnel est un identifiant de compilation. Cela s'avère utile quand vous voulez compiler différentes versions d'un même template, pour par exemple avoir des templates compilés séparés pour différents langages. Une autre utilité de ce paramètre est le cas oú vous utilisez plus d'un $template_dir mais un seul $compile_dir, car certains templates avec le même nom s'Tcraseraient entre eux. Vous pouvez aussi régler 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 données que si le fichier // de cache n'existe pas if(!$smarty->is_cached("index.tpl")) { // quelques données $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); } // récupère le résultat $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 passée en paramètre. Si aucun paramètre n'est donné, un tableau de toutes les variables de configuration chargées est renvoyé. get_config_vars // récupère la variable de configuration chargée 'foo' $foo = $smarty->get_config_vars('foo'); // récupère toutes les variables de configuration chargées $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 référence d'un objet enregistré. Utile quand vous voulez accéder directement a un objet enregistré avec une fonction utilisateur. get_registered_object function smarty_block_foo($params, &$smarty) { if (isset[$params['object']]) { // récupère la référence de l'objet enregistré $obj_ref =& $smarty->get_registered_object($params['object']); // $obj_ref est maintenant une référence vers l'objet } } get_template_vars arrayget_template_vars stringvarname Retourne la valeur assignée passée en paramètre. Si aucun paramètre n'est donné, un tableau de toutes les variables assignées est renvoyé. get_template_vars // récupère la variable 'foo' assignée au template // get assigned template var 'foo' $foo = $smarty->get_template_vars('foo'); // récupère toutes les variables assignées 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 requêtes base de données et assigner // des variables ici. } $smarty->display("index.tpl"); Vous pouvez aussi passer en second paramètre 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 requêtes base de données et assigner // des variables ici. } $smarty->display("index.tpl","FrontPage"); load_filter void load_filter string type string name Cette fonction peut Otre utilisée pour charger un plugin de filtrage. Le premier argument spécifie le type du filtre et peut prendre l'une des valeurs suivantes : 'pre', 'post' ou 'output'. Le second argument spécifie 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' appelé 'datefooter' $smarty->load_filter('output', 'compress'); // charge le filtre 'compress' de type 'output' register_block void register_block string name string impl Utilisée pour déclarrer dynamiquement des plugins de fonction de blocs. Il faut passer en paramètre le nom de la fonction de blocs, suivi du nom de la fonction PHP qui l'implémente. 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 Utilisée pour déclarer dynamiquement un plugin de fonction de compilation. Il faut passer en paramètres le nom de la fonction de compilation, suivi par la fonction PHP qui l'implémente. register_function void register_function string name string impl Utilisée pour déclarer dynamiquement des plugins de fonction de templates. Il faut passer en paramètres le nom de la fonction de templates, suivi par le nom de la fonction PHP qui l'implémente. 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 Utilisée pour déclarer dynamiquement un plugin de modificateur. Il faut passer en paramètre le nom du modificateur de variables, suivi de la fonction PHP qui l'implémente. 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 Utilisée 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 Utilisée pour déclarer dynamiquement des filtres de sortie, pour agir sur la sortie d'un template avant qu'elle ne soit affichée. Reportez-vous a la section filtres de sortie pour plus d'information sur le sujet. register_postfilter void register_postfilter string function_name Utilisée pour déclarer dynamiquement des filtres de post-compilation pour y faire passer des templates une fois qu'ils ont Tté compilés. Reportez-vous a la section filtres de post-compilation de templates pour avoir plus de renseignements sur la faton de paramétrer les fonctions de post-compilation. register_prefilter void register_prefilter string function_name Utilisée pour déclarer dynamiquement des filtres de pré-compilation pour y faire passer des templates avant qu'ils ne soient compilés. Reportez-vous a la section filtres de pré-compilation de templates pour avoir plus de renseignements sur la faton de paramétrer les fonctions de pré-compilation. register_resource void register_resource string name array resource_funcs Utilisée pour déclarer dynamiquement une ressource plugin dans Smarty. Il faut passer en paramètre le nom de la ressource et le tableau des fonctions PHP qui l'implémentent. Reportez-vous a la section ressources templates pour avoir plus d'informations sur la faton de paramétrer une fonction récupérant 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 utilisée pour afficher un message d'erreur en utilisant Smarty. Le paramètre level peut prendre l'une des valeures utilisées par la fonction PHP trigger_error, i.e. E_USER_NOTICE, E_USER_WARNING, etc. Par défaut il s'agit de E_USER_WARNING. template_exists bool template_exists string template Cette fonction vérifie si le template spécifié existe. Elle accepte soit un chemin vers le template, soit une ressource de type chaene de caractères précisant le nom du template. unregister_block void unregister_block string name Utilisée pour désallouer dynamiquement un plugin de fonction de blocs. Passez en paramètre le nom du bloc. unregister_compiler_function void unregister_compiler_function string name Utilisée pour désallouer dynamiquement un fonction de compilation. Passez en paramètre le nom de la fonction de compilation. unregister_function void unregister_function string name Utilisée pour désallouer dynamiquement un plugin de fonction de templates. Passez en paramètres le nom de la fonction de templates. unregister_function // nous ne voulons pas que les designers de templates aient accès // au système de fichiers. $smarty->unregister_function("fetch"); unregister_modifier void unregister_modifier string name Utilisée pour désallouer dynamiquement un plugin modificateur de variable. Passez en paramètre 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 Utilisée pour désallouer un objet. unregister_outputfilter void unregister_outputfilter string function_name Utilisée pour désallouer dynamiquement un filtre de sortie. unregister_postfilter void unregister_postfilter string function_name Utilisée pour désallouer dynamiquement un filtre de post-compilation. unregister_prefilter void unregister_prefilter string function_name Utilisée pour désallouer dynamiquement un filtre de pré-compilation. unregister_resource void unregister_resource string name Utilisée pour désallouer dynamiquement un plugin ressource. Passez en paramètre le nom de la ressource. unregister_resource $smarty->unregister_resource("db");