Home

Smarty - le moteur et compilateur de template PHP

image

Contents

1. mailto address moi example com encode javascript_charcode lt script type text javascript language javascript gt lt i document write String fromCharCode 60 97 coup 60 47 97 62 gt lt script gt Voir aussi escape text format et le camouflage des adresses E mail math math autorise les designers de templates 4 effectuer des op rations dans le template e Toute valeur num rique peut tre utilis e dans une op ration et le r sultat sera affich la place des balises equation e Les variables utilis es dans l op ration sont pass es en tant que param tre et peuvent tre des variables de templates ou des valeurs statiques e abs ceil cos exp floor log log10 max min pi pow rand round sin sqrt srans et tan sont tous des op rateurs valides Voir la documentation PHP pour plus d informations sur ces fonctions math matiques http php net eval e Si vous sp cifiez l attribut assign la sortie de la fonction math sera assign e la variable donn e plut t que d tre directement affich e 128 Fonctions utilisateur Note technique math est une fonction co teuse en terme de performances du fait qu elle utilise la fonction PHP eval http php net eval Effectuer les calculs dans votre code PHP est beaucoup plus efficient donc chaque fois que possible effectuez vos cal
2. Nom attribut Type Requis Defaut Description style cha ne de Non n a Style pr d fini caract res indent number Non 0 Taille de l indentation pour chaque ligne indent_first number Non 0 Taille de l indentation de la premi re ligne indent_char cha ne de Non single space Le caract re ou la caract res cha ne utiliser pour indenter 136 Fonctions utilisateur Nom attribut Type Requis Defaut Description wrap number Non 80 combien de caract res doit on ajuster chaque ligne wrap_char cha ne de Non n Le caract re ou caract res cha ne de caract res avec lequel terminer les lignes wrap_cut boolean Non FALSE Si true wrap r duira les lignes au caract re exact au lieu d ajuster la fin d un mot assign cha ne de Non n a Le nom de la caract res variable PHP dans laquelle la sortie sera assign e 137 a his is his is foo foo textformat wrap 40 Fonctions utilisateur T T This is This is ar foo par pro eo8 Bar foo foo Example 8 27 textformat This is foo his 18 82 his dest FOO 2 foo foo wrap ar foo bar fo This is foo This is foo foo This is foo This is foo 40 tadent 4 foo bar foo SE F98 HEH O O a HHH This 45 pas foo This is foo foo This is foo bar 80188r foo foo bar foo bar foo foo be ERAS pig pas foo el eT
3. 2 cha ne de caract re Non espace Caract re utiliser pour l indentation 44 Modificateurs de variables Example 5 12 indent lt php Ssmarty gt assign articleTitle NJ judge to rule on nude beach Sun or rain expected today dark tonight Statistics show that teen pregnancy drops off significantly after 25 2 gt Ot le template est TitreArticle TitreArticle indent TitreArticle indent 10 TitreArticlelindent 1 t Affichera NJ judge to rule on nude beach Sun or rain expected today dark tonight Statistics show that teen pregnancy drops off significantly after 25 NJ judge to rule on nude beach Sun or rain expected today dark tonight Statistics show that teen pregnancy drops off significantly after 25 NJ judge to rule on nude beach Sun or rain expected today dark tonight Statistics show that teen pregnancy drops off significantly after 25 NJ judge to rule on nude beach Sun or rain expected today dark tonight Statistics show that teen pregnancy drops off significantly after 25 Voir aussi strip wordwrap et spacify lower Met une variable en minuscules C est l quivalent de la fonction PHP st rtolower http php net strtolower 45 Modificateurs de variables Example 5 13 lower lt php Ssmarty gt assign TitreArticle Deux Suspects Se Sont Sauv s 2 gt Ot le template est Titre
4. preg_replace S a zA Z0 9 a zA Z 2 3 0 9 1 3 1 40 2 tpl_output return Stpl_output enregistre le filtre de sortie Ssmarty gt register_outputfilter protect_email Ssmarty gt display index tpl1 dor navant toute occurence d un adresse email dans le r sultat du template aura un protection simple contre les robots spammers 2 gt Voir aussi register_outpurfilter load_filter Sautoload_filters les filtres de post compilation et olugins_dir Fonction de gestion du cache Une alternative au m canisme de cache par d faut bas sur des fichiers de cache consiste a sp cifier une fonction de gestion de cache utilisateur qui sera utilis e pour lire crire et effacer les fichiers de cache Il suffit de cr er dans votre application une fonction que Smarty utilisera pour la gestion du cache et d assigner le nom de cette fonction la variable de classe cache_handler_func Smarty utilisera alors cette fonction pour g rer les donn es du cache e Le premier argument est l action qui sera read write and clear e Le second param tre est l objet Smarty e Le troisi me est le contenu du cache Pour crire Smarty passe le contenu du cache dans ces param tres Pour lire Smarty s attend ce que votre fonction accepte ce param tre par r f rence et que vous le remplissiez avec les donn es du cache Pour effacer il suffit de passer une variable fictive car cette derni
5. 245 Trucs et astuces Dissimuler les adresses email Vous tes vous d ja demand pourquoi vos adresses emails sont sur autant de listes de diffusion de spam Une fa on pour les spammers de r cup rer les adresses est de parcourir les pages Web Voici une fa on de rem dier a ce probl me mettre votre adresse email dans du Javascript brouill au milieu de votre source HTML sans que cela ne g ne l affichage sur le navigateur Web Cela est fait grace au plugin mailto Example 18 8 Exemple de dissimulation d une adresse email lt div id contact gt Envoyer une demande a mailto address SEmailAddress encode javascript subject Bonjour Note technique Cette m thode n est pas infaillible Un spammer peut programmer son collecteur d email pour passer outre cette astuce mais c est cependant peu probable Voir aussi escape et mailto 246 Chapter 19 Ressources La page Web de Smarty se trouve l adresse suivante http www smarty net Vous pouvez souscrire la mailing liste en envoyant un email ismarty discussion subscribe googlegroups com Les archives de la mailing list se trouvent l adresse suivante ici http groups google com group smarty discussion Les forums sur http www smarty net forums Le wiki sur http smarty incutio com Le chat sur irc freenode net smarty http smarty incutio com La FAQ ici http smarty incutio com page SmartyFrequentlyAskedQuestions
6. 131 Fonctions utilisateur Nom attribut Type Requis Defaut Description height entier Non n a Hauteur de la popup left bool en Non FALSE La popup va a gauche de la souris right bool en Non FALSE La popup va droite de la souris center bool en Non FALSE La popup est centr e par rapport la position de la souris above bool en Non FALSE la popup est au dessus de la souris NOTE possible uniquement si la hauteur est d finie below bool en Non FALSE La popup apparait en dessous de la souris border entier Non n a Rends la bordure de la popup plus paisse ou plus fine offsetx entier Non n a A quelle distance du curseur la popup apparaitra horizontalement offsety entier Non n a A quelle distance du curseur la popup apparaitra verticalement fgbackground url vers l image Non n a Une image utiliser la place de la couleur de fonds dans la popup bgbackground url vers l image Non n a Image utiliser la place de la bordure de la popup NOTE vous veillerez d finir bgcolor ou la couleur apparaitra de m me NOTE Lorsque vous avez un lien de fermeture Netscape effectuera un nouveau rendu des cellules du tableau affichant mal les l ments 132 Fonctions utilisateur Nom attribut Type Requis Defaut Description closetext cha ne de Non n a D finit le texte de caract res fermeture par autre chose que Cl
7. Assurez vous de bien passer le m me identifiant aux fonctions is_cached et clear_cache 206 Cache Example 14 7 Passer un cache_id a is_cached lt php require Smarty class php Ssmarty new Smarty Ssmarty gt caching true Smy_cache_id _GET article_id if Ssmarty gt is_cached index tpl my_cache_id pas de fichier de cache dispo on assigne donc les variables Scontents get_database_contents Ssmarty gt assign contents Ssmarty gt display index tpl1 S my_cache_id 2 gt Vous pouvez effacer tous les fichiers de cache pour un identifiant de cache particulier en passant NULL en tant que premier param tre clear_cache Example 14 8 Effacement de tous les fichiers de cache pour un identifiant de cache particulier lt php require Smarty class php Ssmarty new Smarty Ssmarty gt caching true efface tous les fichiers de cache avec sports comme identifiant Ssmarty gt clear_cache null sports Ssmarty gt display index tpl1 sports 2 gt De cette mani re vous pouvez grouper vos fichiers de cache en leur donnant le m me identifiant Groupes de fichiers de cache Vous pouvez faire des groupements plus labor s en param trant les groupes de Scache_id II suffit de s parer chaque sous groupe avec une barre verticale dans la valeur de cache_id Vous pouvez faire autant de sous groupes que vous le d sirez
8. Example 7 24 un autre exemple avec Javascript lt script language JavaScript type text javascript gt function myJsFunction ldelim alert Le nom du serveur n smarty server SERVER_NAME n Ssmarty server SERVE rdelim lt script gt lt a href Javascript myJsFunction gt Cliquez ici pour des informations sur le serve Voir aussi Literal et la d sactivation de l analyse de Smarty literal Les balises literal permettent un bloc de donn es d tre pris tel quel sans qu il ne soit interpr t par Smarty Tr s pratique lors de l emplois d l ments tels que javascript acolades et autres qui peuvent confondre le moteur de template Tout le contenu situ entre les balises Literal literal ne sera pas interpr t et affich comme du contenu statique Si vous voulez inclure des tags de template dans votre block literal utilisez plut t ldelim rdelim pour chapper les d limiteurs individuels Example 7 25 Balises literal literal lt script language javascript gt lt function isblank field if field value return false else document loginform submit return true gt lt script gt literal 80 Fonctions natives Example 7 26 Exemple avec Javascript lt script language JavaScript type text javascript gt literal function myJsFunction name ip alert Le nom du serveur n name n
9. Cet exemple affichera toutes les valeurs du tableau Scustid section name customer loop Scustid id Scustid customer lt br gt section lt hr gt Affiche toutes les valeurs du tableau custid en ordre inverse section name foo loop Scustid step 1 Scustid foo lt br gt section L exemple ci dessus affichera id 1000 lt br gt id 1001 lt br gt id 1002 lt br gt lt hr gt id 1002 lt br gt id 1001 lt br gt id 1000 lt br gt 84 Fonctions natives Example 7 31 section sans un tableau assign section name foo start 10 loop 20 step 2 Ssmarty section foo index section lt hr gt section name bar loop 21 max 6 step 2 Ssmarty section bar index section L exemple ci dessus affichera 10 12 14 16 18 lt hr gt 20 18 16 14 12 10 Example 7 32 Nommage d une section Le name de la section peut tre ce que vous voulez voir les variables PHP http php net language variables Il sera utilis pour r f rencer les donn es de la section section name anything loop SmyArray SmyArray anything foo Sname anything Saddress anything bar section 85 Fonctions natives Example 7 33 Boucler dans un tableau associatif avec section Voici un exemple d affichage d un tableau associatif de donn es avec sect ion Ce qui suit est le script PHP assignant le tableau Scontacts Smarty lt php Sda
10. Example 5 1 Exemple de modificateur applique un modificateur a une variable Stitre upper modificateur avec param tres Stitre truncate 40 applique un modificateur un param tre de fonction html_table loop Smavariable upper avec param tres html_table loop mavariable truncate 40 applique un modificateur une chaine de caract res foobar lupper utilise date_format pour mettre en forme la date smarty now date_format d m Y applique un modificateur une fonction utilisateur mailtolupper address smarty example com utilisation de la fonction PHP str_repeat str_repeat 80 Compteur PHP SmyArray count m lange al atoire des IP du serveur grace a PHP Ssmarty server SERVER_ADDR shuffle ceci va mettre en majuscule et tronque le tableau lt select name name_id gt html_options output SmyArray upper truncate 20 lt select gt e Si vous appliquez un modificateur de variable un tableau plut t qu une variable simple le modificateur sera appliqu chaque valeur du tableau Si vous souhaitez que le modificateur travaille r ellement avec le tableau en tant que tel vous devez pr fixer le nom du modificateur avec un symbole 31 Modificateurs de variables Exemple SarticleTitle count affichera le nombre d l ments dans le tableau SarticleTitle en utili
11. 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 FALSE pour des performances maximales Notez que si vous mettez ce param tre 4 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 Scompile_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 150 Variables force_compile Cel oblige Smarty re compiler les templates chaque invocation Ce r glage supplante Scompile_check Par d faut il vaut FALSE 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 chaque appel caching Ce param tre demande Smarty de mettre ou non en cache la sortie des templates Par d faut ce r glage est 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 e 1 indique a Smarty d utiliser la variable
12. l exception que leur sortie n est PAS plac e en cache lorsque le cache du template est activ Les balises insert seront ex cut es chaque appel du template Nom attribut Type Requis Defaut Description name cha ne de Oui n a le nom de caract res la fonction insert insert_name assign cha ne de caract re Non n a Le nom de la variable qui recevra la sortie script cha ne de Non n a Le nom du script caract res PHP inclus avant que la fonction insert ne soit appel e 77 Fonctions natives Nom attribut Type Requis Defaut Description var var type Non n a Variable passer la fonction insert Supposons que vous avez un template avec un emplacement pour un bandeau publicitaire en haut de page Ce bandeau publicitaire peut contenir toutes sortes de contenus HTML images flash etc Nous ne pouvons pas placer du contenu statique cet endroit Nous ne voulons pas non plus que ce contenu fasse partie du cache Arrive alors la balise insert Le template connais emplacement_bandeau et id_site r cup r s depuis un fichier de configuration et besoin d un appel de fonction pour r cup rer le contenu du bandeau Example 7 22 Fonction insert exemple de r cup ration d un bandeau publicitaire insert name getBanner lid emplacement_bandeau sid id_site Dans cet exemple nous utilisons le nom getBanner et lui pass
13. la suite sera affich e sur une seule ligne strip lt table border 0 gt lt tr gt lt td gt lt a href Surl gt lt font color red gt Un test lt font gt lt a gt lt td gt lt tr gt lt table gt strip L exemple ci dessus affichera lt table border 0 gt lt tr gt lt td gt lt a href http mon example com gt lt font color red gt Un te Notez que dans l exemple ci dessus toutes les lignes commencent et se terminent par des balises HTML Sachez que si vous avez du texte en d but ou en fin de ligne dans des balises strip ce dernier sera coll au suivant pr c dent et risque de ne pas tre affich selon l effet d sir Voir aussi le modificateur strip 96 Chapter 8 Fonctions utilisateur Smarty est livr avec plusieurs fonctions utilisateurs que vous pouvez appeler dans vos templates assign assign est utilis pour d clarer des variables de template durant l ex cution du template Nom attribut Type Requis Defaut Description var chaine de caract re Oui n a Le nom de la variable assign e value cha ne de caract re Oui n a La valeur assign e Example 8 1 assign assign var name value Bob La valeur de Snam st Sname L exemple ci dessus affichera La valeur de Snam st Bob Example 8 2 assign avec quelques fonctions math matiques Cet exemple complexe doit avoir ces variables entre crochets assi
14. oe Ot le template est StitreArticle StitreArticle spacify titreArticle spacify Affichera Quelquechose s est mal pass et a provoqu cet accident disent les experts Quelquechose ERA SHIP ss 1 S x p ros E A o CR SNIP ae 4 OE SOROS SE Voir aussi wordwrapetnl2br string_format Un moyen pour formater les chaines de caract res comme par exemple les nombres d cimaux Utilise la syntaxe de sprintf http php net sprintf pour formater les l ments Position du Type Requis Defaut Description param tre 1 cha ne de Oui n a Le format utiliser caract res sprintf 50 Modificateurs de variables Example 5 18 string_format lt php Ssmarty gt assign nombre 23 5787446 2 gt Ot le template est Snombre Snombre string_format 2f Snombre string_format d Affichera 23 5787446 23 58 24 Voir aussi date_format strip Remplace les espaces multiples les nouvelles lignes et les tabulations par un espace simple ou une chaine donn e Note Si vous voulez r aliser cette action sur un bloc complet du template utilisez la fonction strip 51 Modificateurs de variables Example 5 19 strip lt php Ssmarty gt assign titreArticle Une r union autour n d un feu de chemin e t est toujours agr able Ssmarty gt display index tpl 2 gt Ot le template est StitreArticle StitreArtic
15. Example 15 1 Utilisation d un objet allou ou assign lt php la classe class My_Object function methl Sparams amp smarty_obj return Ceci est ma methode 1 Smyobj new My_Object enregistre l objet Ssmarty gt register_object foobar Smyobj on restreint l acc s a certaines m thodes et propri t s en les listant Ssmarty gt register_object foobar S myob j array methl meth2 propl pour utiliser le format habituel de param tre objet passez le bool en fals Ssmarty gt register_object foobar Smyobj null false on peut aussi assigner des objets Assignez par r f rence quand c est possible Ssmarty gt assign_by_ref myobj Smyobj Ssmarty gt display index tpl 2 gt 2 gt Et voici comment acc der vos objets dans index tpl acc s a notre objet enregistr foobar gt meth1l pl foo p2 Sbar on peut aussi assigner la sortie foobar gt meth1l pl foo p2 Sbar assign output the output was Soutput access our assigned object myobj gt methl foo bar Voir aussi register_object etassign Filtres de pre compilation Les filtres de pr compilation sont des fonctions PHP que vos templates ex cutent avant qu ils ne soient compil s Cela peut tre utile pour pr traiter vos templates afin d enlever les commentaires inutiles garder un oeil sur ce que les gens mettent dans
16. bool is_cached string template string cache_id string compile_id e Cela fonctionne seulement si Scaching est d fini TRU plus d informations E voir aussi la section sur le cache pour e Vous pouvez aussi passer en second param tre un identifiant de cache_idau cas o vous voudriez plusieurs fichiers de cache pour ce template e Vous pouvez donner un compile iden tant que troisi me param tre Si vous ne sp cifiez pas ce param tre le compile_id persistant sera utilis e Si vous ne voulez pas passer un cache_ 1d mais plut tun compile_id vous devez passer NULL en tant que cache_id Note technique Si is_cached retourne TRUE il charge en fait le cache existant et le stocke en interne Tout appel suppl mentaire display ou fetch retournera ce contenu stock en interne sans tenter de recharger le fichier en cache Cel vite des probl matiques d acc s concurents lorsqu un second processus efface le cache entre l appel de is_cached et l appel display comme dans l un de nos exemples ci dessus Cel signifie galement que les appels clear_cache et les changements de param tres du cache peuvent n avoir aucun effet alors que is_cached a retourn TRUE Example 13 19 Exemple avec is_cached lt php Ssmarty gt caching true if smarty gt is cached index tpl aucun appel la base de donn e Ssmarty gt display index tpl1 2 gt
17. 207 Cache e Vous pouvez voir les groupes de cache comme une hi rarchie de dossiers Par exemple un groupe de cache a b c peut tre consid r comme la hi rarchie de dossiers a b c e clear _ cache null alblc supprimera les fichiers a b c clear_cache null a b supprimera les fichiers a b e Si vous sp cifiez un compile_id de cette fa on clear_cache null alb foo il sera trait comme un groupe de cache appos a b c foo e Si vous sp cifiez un nom de template de cette fa on clear_cache foo tpl alb c alors Smarty tentera d effacer a b c foo tpl e Vous ne POUVEZ PAS effacer un nom de template sp cifi sous un groupe de cache multiple comme a b foo tpl le groupement de cache fonctionne UNIQUEMENT de gauche droite Vous pourriez vouloir grouper vos templates sous un groupe de cache simple hi rarchis pour tre capable de les effacer comme un groupe Le groupement de cache ne devrait pas tre confondu avec votre hi rarchie de dossiers de templates le groupement de cache n a aucune connaissance de la fa on dont vos templates sont structur s Donc par exemple si vous avez une structure de template comme themes blue index tpl et que vous voulez tre capable d effacer tous les fichiers de cache pour le th me blue vous devriez cr er une structure de groupe de cache qui refl te la structure de fichiers de vos templates comme display themes blue index
18. Fonctions utilisateur e overLib http www bosrup com web overlib a t crit par Erik Bosrup et le site de l auteur le t l chargement est disponible l adresse sur http www bosrup com web overlib Example 8 26 popup_init lt head gt popup_init doit tre appel une fois en d but de page popup_init src javascripts overlib js exemple avec une url compl te popup_init src http myserver org my_js_libs overlib overlib js lt head gt le premier exemple affichera lt head gt lt div id overDiv style position absolute visibility hidden z index 1000 gt lt d lt script type text javascript language JavaScript src javascripts overlib ove lt head gt Validation XHTML popup_init ne valide pas en validation stricte et vous devriez obtenir l erreur document type does not allow element div here i e une balise lt div gt dans la balise lt head gt Ceci signifie que vous devez inclure les balises lt script gt et lt div gt manuellement textformat textformat est une fonction de bloc utilis e pour formater du texte Elle nettoie la cha ne de ses espaces et caract res sp ciaux puis formate les paragraphes en ajustant ces derniers une certaine limite puis en indentant les lignes Vous pouvez soit utiliser un style pr d fini soit d finir explicitement chaque attribut Actuellement seul le style pr d fini email est disponible
19. Name clear_cache Efface le cache d un template sp cifique Description void clear_cache string template string cache_id string compile_id int expire time e Si vous avez plusieurs fichiers de cache pour ce template vous pouvez en sp cifier un en particulier en passant son identifiant cache _ id en deuxi me param tre e Vous pouvez aussi passer un identifiant de compilation compile_iden troisi me param tre Vous pouvez grouper des templates ensemble afin qu ils puissent tre supprim s en groupe R f rez vous la section sur le cache pour plus d informations e Vous pouvez passer un quatri me param tre pour indiquer un ge minimum en secondes que le fichier en cache doit avoir avant d tre effac Example 13 8 Exemple avec clear_cache lt php efface le fichier de cache de ce templat Ssmarty gt clear_cache index tpl1 efface un fichier de cache gr ce son identifiant de cache Ssmarty gt clear_cache index tpl CACHEID 2 gt Voir aussi le clear_all_cache et la section sur le cache 167 M thodes Name clear_compiled_tpl Efface la version compil e d un template sp cifi Description void clear_compiled_tpl string tpl_ file string compile _ id int exp_ time Utilis e pour effacer la version compil e du template sp cifi ou de tous les templates si aucun n est sp cifi Si vous passez uniquement un Scompile_id le template compi
20. Name template_exists V rifie si un template sp cifique existe Description bool template_exists string template Elle accepte soit un chemin vers le template soit une ressource de type chaine de caract res sp cifiant le nom du template Example 13 26 template_exists Cet exemple utilise _GET page pour inclure le contenu d un template Si le template n existe pas une page d erreur sera affich a la place Le fichier page_container tpl lt html gt lt head gt lt title gt Stitle lt title gt lt head gt lt body gt include file page_top tpl inclure le contenu du milieu de la page include file Spage_mid include file page_footer tpl lt body gt Et le script PHP lt php D finit le nom du fichier eg index inc tpl Smid_template _GET page inc tpl if Ssmarty gt template_exists mid_template Smid_template page_not_found inc tpl Ssmarty gt assign page_mid mid template Ssmarty gt display page_container tpl 2 gt Voir aussi display fetch include et insert 193 M thodes Name unregister_block D salloue dynamiquement un plugin de fonction de blocs Description void unregister_block string name Utilis e pour d sallouer dynamiquement un plugin de fonction de blocs Passez en param tre le nom name du bloc Voir aussi register_block et les plugins de fonctions de bl
21. Nom du jour de la semaine selon les param tres locaux e b Abr viation du nom du jour selon les param tres locaux B Nom complet du mois selon les param tres locaux e c Pr f rences d affichage selon les param tres locaux e C Si cle L ann e divis e par 100 et tronqu e comme un entier de 00 99 e d Jour du mois en tant que nombre d cimal de 01 31 D m me chose que m d y e e Jour du mois en tant que nombre d cimal Un chiffre unique est pr c d par un espace de 1 31 e g Position de la semaine dans le si cle 00 99 e G Position de la semaine incluant le si cle 0000 9999 e h identique a b H L heure en tant que d cimale en utilisant une horloge sur 24 de 00 23 e l L heure en tant que d cimale en utilisant une horloge sur 12 de 01 to 12 e j jour de l ann e de 001 366 e k Heure horloge sur 24 Les num ros un chiffre sont pr c d s d un espace de 0 23 Heure horloge sur 12 Les num ros un chiffre sont pr c d s d un espace de 1 12 m Mois en tant que nombre d cimal de 01 12 e M Minute en tant que nombre d cimal e Son Retour chariot nouvelle ligne e p soit am soit pm selon l heure donn e ou alors leurs correspondances locales e r heure en notation a m et p m e PR Heure au format 24 heures e S Secondes en tant que nombre d cimal e t Caract re tabulation
22. SEmailAddress escape hex gt SEmailAddress escape hexentity lt SEmailAddress escape mail ceci convertit un email en texte lt a href mailto 62 6f snip S65 74 gt amp x62 amp XOf amp XO2 Snip amp x65 G EXT4 lt a gt mi mail example com escape mail smarty AT example DOT com 43 Modificateurs de variables Example 5 11 Autres exemples Les fonctions PHP peuvent tre utilis es comme modificateurs suivant la configuration de security le param tre rewind enregistre l emplacement courant lt a href S SCRIPT_NAME page foo amp rewind smarty server REQUEST_URI urlencode gt cl Et ceci est utile pour les e mails mais lisez plut t la documentation de mailto email address mangled lt a href mailto S EmailAddress escape hex gt SEmailAddress escape mail lt a gt Voir aussi la l anayse Smarty d chappement mailto et le mascage des adresses e mail indent Indente chacune des lignes d une cha ne Comme param tre optionnel vous pouvez sp cifier le nombre de caract res utiliser pour l indentation 4 par d faut Comme second param tre optionnel vous pouvez sp cifier le caract re utiliser pour l indentation utilisez Xt pour les tabulations Position du Type Requis Defaut Description param tre 1 entier Non 4 De combien de caract res l indentation doit tre effectu e
23. T Heure courante quivalent H M S e Zu Jour de la semaine en tant que nombre d cimal 1 7 ou 1 repr sente le lundi 40 Modificateurs de variables e U Le num ro de la semaine en nombre d cimal utilisant le premier dimanche en tant que premier jour de la premi re semaine V Le num ro de la semaine de l ann e courante selon la norme ISO 8601 1988 de 01 53 ou la semaine est la premi re semaine qui dispose au minimum de 4 jours dans l ann e courante et ou Lundi est le premier jour de cette semaine e Yow Jour de la semaine en tant que nombre d cimal dimanche tant 0 e W Le num ro de la semaine de l ann e courante en tant que nombre d cimal ou Lundi est le premier jour de la premi re semaine x Repr sentation pr f r e de la date selon les param tres locaux e X Repr sentation pr f r e de l heure selon les param tres locaux sans la date e y L ann e en tant que nombre d cimal sans le si cle de 00 99 e Y L ann e en tant que nombre d cimal avec le si cle Z Zone horraire nom ou abr viation e Un caract re lit ral Voir aussi Ssmarty now strftime http php net strftime html_select_date et les astuces sur les dates default Utilis pour d finir une valeur par d faut une variable Si la variable est vide ou ind finie la valeur donn e est affich e en lieu et place default attends un seul argument Note
24. d abord vous r cup rez vos variables dans l application PHP peut tre avec des requ tes en base de donn es puis vous instanciez votre objet Smarty assign les variables et display le template Disons par exemple que nous avons un t l scripteur dans notre template Nous r cup rerions les donn es dans notre application puis les assignerions ensuite pour les afficher Mais ne serait ce pas mieux de pouvoir ajouter ce t l scripteur n importe quelle application en incluant directement le template sans avoir a se soucier de la r cup ration des donn es Vous pouvez r aliser cela en crivant un plugin personnalis pour r cup rer le contenu et l assigner une variable du template Example 18 7 Template composant function load_ticker php Efface le fichier du r pertoire des Splugins lt php notre fonction pour r cup rer les donn es function fetch_ticker symbol samp ticker_name amp amp ticker_ price du traitement qui r cup re ticker_name depuis la ressource ticker return Sticker_info function smarty_function_load_ticker Sparams amp Ssmarty appel de la fonction Sticker_info fetch_ticker params symbol assignation de la variable de templat Ssmarty gt assign params assign Sticker_info index tpl load_ticker symbol SMARTY assign ticker Stock Name Sticker name Stock Price ticker price Voir aussi include_php include et php
25. include a multi Svariable templat g amber links view tpl include file style_dir module view tpl Voir aussi include_php insert php les ressources de template et les templates composants include_php Notes techniques include_php est presque obsol te dans Smarty Vous pouvez obtenir des r sultats quivalents en utilisant les fonctions utilisateur La seule raison qui peut vous pousser utiliser 15 Fonctions natives include_php est que vous avez besoin de mettre une de vos fonction en quarantaine vis a vis du r pertoire plugins ou de votre application Reportez vous l exemple des templates composants pour plus de d tails Nom attribut Type Requis D faut Description file chaine de caract re oui n a Le nom du fichier PHP inclure once bol en Non TRUE Inclure plusieurs fois ou non le fichier PHP si plusieurs demandes d inclusions sont fa tes assign cha ne de caract re Non n a le nom de la variable PHP dans laquelle la sortie sera assign e plut t que directement affich e Les balises include_php sont utilis es pour inclure directement un script PHP dans vos templates Si securit y est activ alors le script ex cuter doit tre plac dans le chemin trusted dir La balise include_php attends l attribut file qui contient le chemin du fichier PHP inclure relatif Strusted dir ou absolu Par d faut les fichiers P
26. L exemple ci dessus affichera un tableau HTML contenant index id index_prev prev_id index _ next next_id 0 1001 1 1 1002 1 1002 0 1001 2 1003 2 1003 1 1002 3 1004 3 1004 2 1003 4 1005 4 1005 3 1004 5 iteration iteration contient l it ration courante de la boucle et commence un Note Ceci n est pas affect par les propri t s section start step et max contrairement la propri t index iteration commence galement un au lieu de z ro contrairement index rownum est un alias de iteration ils sont identiques 91 Fonctions natives Example 7 39 Exemple avec la propri t iteration lt php array of 3000 to 3015 Sid range 3000 3015 Ssmarty gt assign arr id 2 gt Le template pour afficher tous les autres l ments du tableau Sarr comme step 2 section name cu loop Sarr start 5 step 2 iteration Ssmarty section cu iteration index Ssmarty section cu index id Scustid cu lt br gt section L exemple ci dessus affichera iteration 1 ind iteration 2 ind x 5 id 3005 lt br gt x 7 id 3007 lt br gt iteration 3 ind iteration 4 ind x 9 id 3009 lt br gt x 11 id 3011 lt br gt iteration 5 ind x 13 id 3013 lt br gt iteration 6 ind x 15 id 3015 lt br gt Un autre exemple d utilisation de la propri t iteration est d afficher un bloc d en t te d un tableau toutes
27. Notez que cette source n est sauvegard e nulle part elle est seulement utilis pour la compilation string smarty_postfilter_name Scompiled amp Ssmarty string Scompiled object amp Ssmarty Les filtres de post compilation sont utilis s pour modifier la sortie du template le code PHP juste apr s que la compilation a t faite mais juste avant que le template ne soit sauvegard sur le syst me de fichiers Le premier param tre pass la fonction de filtre de post compilation est le code du template compil ventuellement d ja modifi par d autres filtres de post compilations Le plugin est cens retourner la version modifi e du code Example 16 7 Plugin de filtre de post compilation lt php Smarty plugin Fichier prefilter pre01 php Type filtre de pr compilation Nom pre01 R le Passe les balises HTML en minuscules function smarty_prefilter_pre0l source amp Ssmarty return preg_replace lt wt gt gt e strtolower 1 Ssource 230 Etendre Smarty avec des plugins Example 16 8 Plugin de filtre de post compilation Smarty plugin Fichier postfilter post01 php Type filtre de post compilation Nom post01l R le Renvoie du code qui liste toutes les variables du template function smarty_postfilter_post01 compiled amp smarty Scompiled lt pre gt n lt php print_r Sthis
28. a Avec error_reporting E_ALL http php net error_reporting les variables non d clar es lanceront toujours une erreur dans le template Cette fonction est utile pour remplacer les chaines vides ou de longueurs vides Position du Type Requis Defaut Description param tre 1 chaine de Non empty La valeur par d faut caract res de la sortie si la variable d entr e est vide 41 Modificateurs de variables Example 5 9 D faut lt php Ssmarty gt assign TitreArticle Les portes de la moria restent ferm es Ssmarty gt assign email 2 gt Ot le template est SarticleTitle default Aucun titre SmyTitle default Aucun titre Semail default Aucune adresse email disponible Affichera Les portes de la moria restent ferm es Aucun titre Aucune adresse email disponible Voir aussi la gestion des variables par d faut et la gestion de l effacement des variables escape escape est utilis pour encoder chapper une variable pour quelles soient compatibles avec les url html avec les hexad cimaux avec les entit s hexad cimales avec javascript et avec les e mails Par d faut ce param tre est html Position du Type Requis Valeurs D faut Description param tre possibles 1 cha ne de Non html html Format caract re htmlall d chappement url utiliser urlpathinfo quotes hex hexentity javascript mail 2 chaine de Non ISO
29. array phone gt 555 4444 fax gt 555 3333 cell gt 760 1234 2 gt Le template affiche contact foreach name outer item contact from Scontacts lt hr gt foreach key key item item from Scontact key Sitem lt br gt foreach foreach L exemple ci dessus affichera lt hr gt phone 1 lt br gt fax 2 lt br gt cell 3 lt br gt SAT af gt phone 555 4444 lt br gt fax 555 3333 lt br gt cell 760 1234 lt br gt 67 Fonctions natives Example 7 9 Exemple d une base de donn es avec foreachelse Exemple d un script de recherche dans une base de donn es e g PEAR ou ADODB le r sultat de la requ te est assign a Smarty lt php Ssearch_condition where name like Sfoo Ssql select contact_id name nick from contacts search_condition order by Ssmarty gt assign results db gt getAssoc sql 2 gt Le template qui affiche None found si aucun r sultat avec foreachelse foreach key cid item con from Sresults lt a href contact php contact_id cid gt Scon name con nick lt a gt lt br gt foreachelse Aucun l ment n a t trouv dans la recherche foreach index index contient l index courant du tableau en commangant par z ro Example 7 10 Exemple avec index L en t te du block est affich toutes les 5 lignes lt table gt foreach from Sitems key myId
30. config_booleanize Si cette variable est 4 TRUE les valeurs on true yes et off false no dans les fichiers de configuration sont automitiquement converties en bool en De cette fagon vous pouvez utiliser ces valeurs dans le template de la fa on suivante if foobar if Si foobar est on true ou yes l instruction if sera ex cut e TRUE par d faut config_read_hidden Si cette variable est TRUE les sections cach es dont les noms commencent par un point dans les fichiers de configuration peuvent tre lues depuis les templates On laisse habituellement cela 4 FALSE de cette fagon vous pouvez stocker des donn es sensibles dans les fichiers de configuration par exemple des param tres de base de donn es sans vous soucier de la fa on dont les templates les chargent Mise a FALSE par d faut config_fix_newlines Si cette variable est mise TRUE les caract res de nouvelles lignes mac et dos r et r n sont convertis en n quand ils sont analys s TRUE par d faut 153 Variables default_template_handler_func Cette fonction est appel e quand un template ne peut pas tre obtenu avec sa ressource php_handling Indique 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 cel n affecte PAS le code PHP entour des php dans le template balises php e SMARTY_PH e S
31. count_words lt php Ssmarty gt assign TitreArticle Un anneau pour les gouverner tous 2 gt Ot le template est titreArticle titreArticle count_words Affichera Un anneau pour les gouverner tous 6 Voir aussi count_characters count_paragraphs et count_sentences date format Formate une date heure au format strftime http php net strftime donn Les dates peuvent tre pass es smarty en tant que timestamp http php net function time unix timestamp mysql ou comme cha ne quelconque contenant mois jour ann e interpr table par strtotime http php net strtotime Les concepteurs de templates peuvent utiliser date_ format pour contr ler parfaitement le format de sortie de la date Si la date pass e date_format est vide et qu un second param tre est donn ce dernier sera utilis comme tant la date formater Position du Type Requis D faut Description param tre 1 cha ne de Non b Le TY Format de sortie de caract res la date 2 cha ne de Non n a Date par d faut caract res Si aucune n est sp cifi e en entr e Note Depuis Smarty 2 6 10 les valeurs num riques pass es date_format sont toujours except pour les timestamps mysql voir ci dessous interpr t es comme un timestamp Unix 38 Modificateurs de variables Avant la version 2 6 10 de Smarty les chaines num riques qui taient galement analysables par strto
32. et ici http www smarty net forums viewforum php f 23 247 Chapter 20 BUGS V rifiez le fichier de BUGS fourni avec la derni re version de Smarty ou consultez le site Web 248
33. 179 M thodes Example 13 20 Exemple avec is_cached et plusieurs templates lt php Ssmarty gt caching true if Ssmarty gt is_cached index tpl FrontPage appel de la base de donn es assignation des variables Ssmarty gt display index tpl FrontPage 2 gt Voir aussi clear_cache clear_all_cache et la section sur le cache 180 M thodes Name load_filter Charge un plugin de filtrage Description void load_filter string type string name 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 Example 13 21 Chargement de plugins de filtrage lt php charge un pr filtre nomm trim Ssmarty gt load_filter pre trim charge un autre pr filtre nomm datefooter Ssmarty gt load_filter pre datefooter charge un filtre de sortie nomm compress Ssmarty gt load_filter output compress 2 gt Voir aussi register_prefilter register_postfilter register_outputfilter Sautoload_filters et les fonctionnalit s avanc es 181 M thodes Name register_block D clare dynamiquement des plugins de fonction de blocs Description void register_block string name mixed impl bool cacheable mixed cache_attrs Utilis e pour d clarer dynamiquement des plugins
34. 7 4 fonction config_load avec section config_load file example conf section Customer lt html gt lt title gt pageTitle lt title gt lt body bgcolor bodyBgColor gt lt table border tableBorderSize bgcolor tableBgColor gt lt tr bgcolor rowBgColor gt lt td gt First lt td gt lt td gt Last lt td gt lt td gt Address lt td gt lt tr gt lt table gt lt body gt lt html gt Voir aussi config_overwrite pour les tableaux de variables de configuration Voir aussi les fichiers de configuration les variables de configuration Sconfig_dir get_config_vars et config_load foreach foreachelse foreach est utilis pour parcourir un simple tableau associatif contrairement 4 section qui effectue une boucle sur les tableaux de donn es La synthaxe pour foreach est plus simple que section mais ne peut tre utilis que pour des tableau simple Chaque foreach doit aller de paire avec une balise fermante foreach Nom attribut Type Requis Defaut Description from tableau oul n a Le tableau parcourir item cha ne de caract re Oui n a Le nom de la variable l ment courant key cha ne de caract re Non n a Le nom de la variable repr sentant la clef courante name cha ne de caract re Non n a Le nom de la boucle foreach qui nous permettra d acc der ses propri t s 63 Fonctions natives e Required at
35. Charlie Brown Ssmarty gt assign customer_id 1001 2 gt o index tpl est html_checkboxes name id values Scust_ids output Scust_names selected Scustomer_id separator lt br gt ou bien le code PHP est lt php Ssmarty gt assign cust_checkboxes array 1000 gt Joe Schmoe 1001 gt Jack Smith 1002 gt Jane Johnson 1003 gt Charlie Brown Ssmarty gt assign customer_id 1001 2 gt et index tpl est html_checkboxes name id options cust_checkboxes selected customer_id separator lt br gt Les deux examples donnent l cran lt label gt lt input type checkbox name id value 1000 gt Joe Schmoe lt label gt lt br gt lt label gt lt input type checkbox name id value 1001 checked checked gt Jack Sm lt br gt lt label gt lt input type checkbox name id value 1002 gt Jane Johnson lt label gt lt br lt label gt lt input type checkbox name id value 1003 gt Charlie Brown lt label gt lt br 106 Fonctions utilisateur Example 8 10 Exemple avec une base de donn es eg PEAR ou ADODB lt php Ssql select type_id types from contact_types order by type Ssmarty gt assign contact_types db gt getAssoc sql Ssql select contact_id contact_type contact from contacts where contact_id 12 Ssmarty gt assign contact db gt getRow S sql 2 gt Le r sultat de
36. Fonctions utilisateur Example 8 8 Exempe avec fetch Inclus du javascript dans votre template Nom attribut Type Requis Defaut Description assign chaine de Non n a Le nom de caract res la variable PHP dans laquelle la sortie sera assign e plut t que d tre directement affich e fetch file export httpd www example com docs navbar js r cup re les informations m t o d un autre site sur votre page fetch file http www myweather com 68502 r cup re les titres depuis un fichier ftp fetch file ftp user password ftp example com path to currentheadlines txt comme ci dessus mais avec des variables fetch file ftp Suser Spassword Sserver Spath M assigne le contenu r cup r une variable de templat fetch file http www myweather com 68502 assign weather if Sweather ne lt div id weather gt Sweather lt div gt if Voir aussi capture assign eval et fetch html checkboxes html_checkboxes est une fonction utilisateur qui cr e un groupe de cases cocher avec les donn es fournies Elle prend en compte la liste des l ments s lectionn s par d faut vous n utilisiez l attribut option output array Oui moins que n a vous n utilisiez l attribut option Nom attribut Type Requis Defaut Description name cha ne de Non checkbox Nom de la list
37. Modificateurs de variables Voir aussi nl2bret textformat 58 Chapter 6 Combiner des modificateurs de variable Vous pouvez appliquer un nombre quelquonque de modificateurs a une variable Ils seront invoqu s dans l ordre d apparition de la gauche vers la droite Ils doivent tre s par s par un pipe Example 6 1 Combiner des modificateurs lt php Ssmarty gt assign titreArticle Les fumeurs sont productifs mais la mort tue 1 efficacit e 2 gt Ot le template est StitreArticle StitreArticle upper spacify StitreArticle lower spacify truncate StitreArticle lower truncate 30 spacify StitreArticle lower spacify truncate 30 Cela va afficher Les fumeurs sont productifs mais la mort tue l efficacit e LES FUMEURS Sx ONT PORO DUE Di EBS MAIS LA LES FUMEURS SONT P R O DU CEST TABS S MAIS LA LES FUMEURS SONT P ROO DUE TNT SESS y MAIS LA Les fumeurs S 46 Mit Por 6 EG C TE a Por Les fumeurs S 59 Chapter 7 Fonctions natives Smarty est fourni en standard avec plusieurs fonctions natives Ces fonctions natives sont partie int grante du moteur de Smarty Vous ne pouvez pas cr er de fonctions utilisateurs qui portent le m me nom qu une fonction native et vous ne pouvez pas non plus en modifier le comportement Quelques unes de ces fonctions ont un attribut assign qui r cup re le r sultat de la fonction et la place dans une variab
38. Re STD 79 ite EE PE SP A EEN 80 PAP ss ed mme tenta Ms D TT nn DM os N S 81 section fsectionelse ss street ntnn AS E tent 82 TIDE O Rise 89 MAP E nr ie nes oven 90 INT XENEXT mnt sist Meters ben nn a nt nn 90 MOTO isc ce Siete rios tai 91 ETS RE sce tae Gene howe PRO CURE CR Er CE Memes cranes TE CT TE 93 ER ER TT A 93 TO WU 5 acts sy ons mess ronde ne orne vote se enr ON dunes es en sonia en 93 LOOP at A E net A A A 93 SHOW en de A tie 94 Ota E ects Spon DE Soa gd tg O 95 PSD RE a D RS N Na 95 8 Fonctions Ut Sate ur iii cede pine i ss od oa eee EE E aE A E Sa wees 97 PASSION Rss dete shies seen See nan conte E dee wadent een tad dane saab SN 97 COUNTER A O cine 98 CV CIE clove canals O Suites ue Cen gaw O ee nds Dose 99 debug O NN 101 NO 101 O nn ee a Re ee es 103 html CHECKBOXES inst sante sense sheet E dns 104 html image hist mean nt dee coe OS 107 html options hist tente Rat ss nent Re seins he late 108 fhtml Tradios A a cd 112 Html select data A A pias 115 html select tiMe p nean ia E EE E R ai ee 120 html tablego anr E Wet E ddan RE OE E A A 123 MAO ereer io en are te lune eed eee ee he ede 127 Maths O nn EETA E TERTE O 128 POPUP e week ea E E sates Ue ae Se aot ue we sade E AEE E E 131 A A a e MITA ee ES RME LR aetna deny eee ase yeungaed 135 tEXthOrmat Fini ne ln ed te nn en te ane me nee A 136 RN AAA A naine est 140 107 Console de JEDOLALE 2000 iS ld 142 1v Smarty le
39. Scache_ 1d en deuxi me param tre l appel de fonction Example 14 6 Passage d un cache_id display lt php require Smarty class php Ssmarty new Smarty Ssmarty gt caching true Smy_cache_id _GET article_id Ssmarty gt display index tpl S my_cache_id 2 gt Nous passons ci dessus la variable my_cache_id display comme identifiant de cache Pour chaque valeur distincte de my_cache_ id un fichier de cache distinct va tre cr Dans cet exemple article_ida t pass dans l URL et est utilis en tant qu identifiant de cache Note technique Soyez prudent en passant des valeurs depuis un client navigateur Web vers Smarty ou vers n importe quelle application PHP Bien que l exemple ci dessus consistant utiliser article_id depuis l URL puisse paraetre commode le r sultat peut s av rer mauvais L identifiant de cache est utilis pour cr er un r pertoire sur le syst me de fichiers donc si l utilisateur d cide de donner une tr s grande valeur article_id ou d crire un script qui envoie des article_id de fa on al atoire cel pourra causer des probl mes cot serveur Assurez vous de bien tester toute donn e pass e en param tre avant de l utiliser Dans cet exemple peut tre savez vous que article_id a une longueur de 10 caract res est exclusivement compos de caract res alph num riques et doit avoir une valeur contenue dans la base de donn es V rifiez le bien
40. Smethod o class est le nom de la classe et Smethod est une m thode de la classe Voir aussi unregister_outputfilter load_filter Sautoload_filters et les filtres de sortie de template 188 M thodes Name register_postfilter D clare dynamiquement des filtres de post compilation Description void register_postfilter mixed function Utilis e pour d clarer dynamiquement des filtres de post compilation pour y faire passer des templates une fois qu ils ont t compil s Reportez vous la section filtres de post compilation de templates pour avoir plus de renseignements sur la fa on de param trer les fonctions de post compilation La fonction PHP de callback function peut tre soit Une cha ne de caract res contenant la fonction name e Un tableau sous la forme array amp Sobject Smethod o amp Sobject est une r f rence d objet et Smethod une chaine contenant le nom de la m thode e Un tableau sous la forme array class Smethod o class est le nom de la classe et Smethod est une m thode de la classe Voir aussi unregister_postfilter register_prefilter load_filter Sautoload_filters et les filtres de sortie de template 189 M thodes Name register_prefilter D clare dynamiquement des filtres de pr compilation Description void register_prefilter mixed function Utilis e pour d clarer dynamiquement des filtres de pr compilation pour y fai
41. affiche la valeur retourn e de la m thode bar de l objet foo lt affiche la variable du fichier de configuration foo Ssmarty config foo lt synonyme pour foo foo bar lt synthaxe uniquement valide dans une section de boucle voir sec assign var foo value baa foo lt affiche baa voir assign Plusieurs autres combinaisons sont autoris es Sfoo bar baz Sfoo Sbar Sbaz foo 4 baz Sfoo 4 Sbaz Sfoo bar baz 4 Sfoo gt bar baz 2 bar lt passage de param tres foo lt les valeurs statiques sont autoris es affiche la variable serveur SERVER_NAME _SERVER SERVER_NAME Ssmarty server SERVER_NAME Les variables sp ciales comme _GET _SESSION etc sont galement disponibles lisez le chapitre sur les variables r serv es smart y pour plus de d tails Voir aussi Ssmart y les variables de configuration assign et assign Fonctions Les balises Smarty affichent une variable ou invoquent une fonction Elles sont appel es lorsqu elles sont entour es ainsi que leurs param tres des d limiteurs Smarty Par exemple nomfonction attrl val attr2 val 17 Bases syntaxiques Example 3 3 syntaxe des fonctions config_load file colors conf include file header tpl insert file banner_ads tpl title Smarty est cool if Slogged_in Bonjour lt font color fontC
42. appeler index php et le placer dans un sous r pertoire appel livredor Technical Note Il est pratique de configurer le serveur Web de sorte que index php soit identifi comme fichier par d faut de ce r pertoire Aicnsi si l on tape http www example com livredor le script index php soit ex cut sans que index php ne soit sp cifi dans l URL Avec Apache vous pouvez r gler cela en ajoutant index php la ligne o se trouve DirectoryIndex s parez chaque entr e par un espace dans le httpd conf DirectoryIndex index htm index html index cgi index php Jetons un coup d oeil la structure de fichier obtenue Example 2 6 Structure de fichiers usr local lib php Smarty v usr local lib php Smarty v usr local lib php Smarty v usr local lib php Smarty v usr local lib php Smarty v usr local lib php Smarty v c libs Smarty class php r libs Smarty_Compiler class php r libs Config_File class php r libs debug tpl c libs internals php c libs plugins php 000000 web www example com smarty guestbook templates web www example com smarty guestbook templates_c web www example com smarty guestbook configs web www example com smarty guestbook cache web www example com docs guestbook index php Smarty a besoin d acc der en criture aux r pertoires Scompile_diret Scache_dir assurez vous donc que le serveur Web dispose de ces droits d acc s Il s agit g n ralement de l utilisate
43. application puis le designer de templates ditent les templates et utilisent une combinaison de balises HTML et de balises de templates pour formater la pr sentation de ces l ments tableaux HTML couleurs d arri re plan tailles des polices feuilles de styles etc Un beau jour le programmeur a besoin de changer la fa on dont le contenu de l article est r cup r un changement dans la logique applicative Ce changement n affecte pas le designer de templates le contenu arrivera toujours au template de la m me fa on De m me si le le designer de templates veut changer compl tement l apparence du template aucun changement dans la logique de l application n est n cessaire Ainsi le programmeur peut changer la logique de l application sans restructurer les templates et le designer de templates peut changer les templates sans briser la logique applicative Un des objectifs de Smarty est la s paration de la logique m tier de la logique de pr sentation Cel signifie que les templates peuvent contenir des traitements du moment qu il soit relatif de la pr sentation Inclure d autres templates alterner les couleurs des lignes d un tableau mettre du texte en majuscule parcourir un tableau de donn es pour l afficher etc sont toutes des actions relatives du traitement de pr sentation Cel ne signifie pas que Smarty requiert une telle s paration de votre part Smarty ne sais pas quoi est quoi c est donc vous de placer la l
44. cece E E EEE seca seca sean E ESER 208 14 10 Eviter la mise en cache du r sultat d un plugin oooccoccnnccnnccnnccnnconnconnconnconconacnnccnnnonose 209 14 11 Eviter la mise en cache d une portion du template 2 0 0 0 cece eee ceee ce eece cece een eene eens 210 15 1 Utilisation d un objet allou ou assign cen eeneeeeeeeeeeeeees 212 15 2 Utilisation un filtre de pr compilation de template 2 0 0 0 cece ce ee eens cent ee eeeeeeeaees 213 15 3 Utilisation d un filtre de post compilation de templates 214 15 4 Utilisation d un filtre de Sortie 20 0 iin ieonta a eese E EEEE ESE EEEE I SEEE 215 15 5 Exemple d utilisation de MySQL pour la source du cache oooooccnccnnccnnccnnccnnconaconaconanonons 216 15 6 Utilisation de templates depuis template_dir oooocccnnnoocccnnnnnccnnnnnnconnnnnncnnnnnnnornnnnnninnnns 217 15 7 Utilisation d un template depuis n importe quel r pertoire 217 15 8 Utilisation de templates avec des chemins de fichiers Windows sceeeeeceeeceneeeeee ees 218 15 9 Utilisation de ressources utilisateurs 00 ce cece oieee os nes es spe esau eeea sean esas esas 219 15 10 utilisation de la fonction de gestion de template par d faut 220 16 1 Fonction de plugin AVEC sorte eni sec tdss miettes tester dau
45. charg es depuis le fichier de configuration Si une section est charg e alors toutes les variables de cette section ainsi que les variables globales sont charg es Si une variable existe la fois en tant que globale et la fois en tant que variable de section la variable de section est prioritaire Si vous appelez deux variables dans une m me section de la m me facon la derni re d clar e prime voir config_overwrite Les fichiers de configuration sont charg s dans le template grace aux fonctions config_load voir aussi config_load 140 Fichiers de configuration Vous pouvez masquer des variables ou des sections enti res en pr fixant le nom de la variable ou le nom de la section avec une virgule Ce proc d est utile si votre application r cup re ses donn es depuis plusieurs fichiers de configuration et r cup re des donn es sensibles dont vos templates n ont pas besoin Si des tiers ditent des templates vous tes s r que ces derniers n acc deront pas ces donn es de configuration en les chargeant depuis le template Voir aussi config_load Sconfig_overwrite get_config_vars clear_config et config_load 141 Chapter 10 Console de debogage Il existe une console de d bogage dans Smarty La console vous indique toutes 1 es templates incluses les variables assign es et charg es depuis un fichier de configuration pour le template courant Un template appel debug tp1 est i
46. commenc travailler sur un moteur de template crit en C qui pourrait avec un peu de chance tre inclus PHP Non seulement nous avons rencontr des probl mes techniques complexes mais nous avons particip s de nombreux d bats sur ce que devait et ce que ne devait pas faire un moteur de template De cette exp rience nous avons d cid qu un moteur de template se devait d tre crit sous la forme d une classe PHP afin que quiconque puisse l utiliser sa convenance Nous avons donc r alis un moteur de template qui se contentait de faire cela et SmartTemplate a vu le jour note cette classe n a jamais t soumise au public C tait une classe qui faisait pratiquement tout ce que nous voulions substitution de variables inclusion d autres templates int gration avec des fichiers de configuration int gration de code PHP instruction if basique et une gestion plus robuste des blocks dynamiques imbriqu s Elle faisait tout cel avec des expressions rationnelles et le code se r v la comment dire imp n trable De plus elle tait relativement lente pour les grosses applications cause de l analyse et du travail sur les expressions rationnelles qu elle devait faire chaque ex cution Le plus gros probl me du point de vue du programmeur tait tout le travail n cessaire en amont dans le script PHP pour configurer et ex cuter les templates et les blocs dynamiques Comment rendre tout ceci plus simple Puis
47. customer sont identiques section name customer loop custid Ssmarty section customer index id custid customer lt br gt section L exemple ci dessus affichera O id 1000 lt br gt 1 id 1001 lt br gt 2 id 1002 lt br gt Index_prev index_prev est l index de la boucle pr c dente Lors de la premi re boucle il vaut 1 index_next index_next est l index de la prochaine boucle Lors de la prochaine boucle il vaudra un de moins que l index courant suivant la configuration de l attribut step s il est fourni 90 Fonctions natives Example 7 38 Exemple avec les propri t s index index_next et index_prev lt php Sdata array 1001 1002 1003 1004 1005 Ssmarty gt assign rows data 2 gt Le template pour afficher le tableau ci dessus dans un tableau HTML Srows row index et Srows row sont identiques lt table gt lt tr gt lt th gt index lt th gt lt th gt id lt th gt lt th gt index_prev lt th gt lt th gt prev_id lt th gt lt th gt index_next lt th gt lt th gt next_id lt th gt lt tr gt section name row loop Srows lt tr gt lt td gt S smarty section row index lt td gt lt td gt Srows row lt td gt lt td gt S smarty section row index_prev lt td gt lt td gt Srows row index_prev lt td gt lt td gt smarty section row index_next lt td gt lt td gt Srows row index_next lt td gt lt tr gt section lt table gt
48. 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 La fonction PHP de callback function peut tre soit Une cha ne de caract res contenant la fonction name e Un tableau sous la forme array amp Sobject method o amp object est une r f rence d objet et Smet hod une cha ne contenant le nom de la m thode e Un tableau sous la forme array class Smethod o class est le nom de la classe et Smethod est une m thode de la classe Les param tre cacheable et cache_attrs peuvent tre omis dans la plupart des cas Voir Contr ler la mise en cache des sorties des Plugins pour plus d informations concernant cette utilisation Example 13 22 Exemple avec register_block lt php D claration de la fonction function do_translation Sparams content amp Ssmarty amp Srepeat if Scontent Slang Sparams lang fait de la traduction avec la variable content echo Stranslation Enregistrement avec Smarty Ssmarty gt register_block translate do_translation 2 gt Le template Smarty translate lang br Bonjour le monde translate Voir aussi unregister_block et les plugins de fonction de blocs 182 M thodes Name register_compiler_function D clare dynamiquement un plugin de fonction de compilation Description bool register_compiler_function string name mixed impl bool cache
49. de la librairie sont en place il est temps de d finir les r pertoires de Smarty pour votre application Smarty a besoin de quatre r pertoires qui sont par d faut templates templates_c configs et cache Installation Chacun d entre eux peut tre d fini via les attributs Stemplate_dir Scompile_dir Sconfig_dir et cache dir respectivement Il est vivement conseill que vous r gliez ces r pertoires s par ment pour chaque application qui utilise Smarty Assurez vous de bien conna tre chemin de la racine de votre arborescence Web Dans notre exemple la racine est web www example com docs Seul Smarty acc de aux r pertoires en question et jamais le serveur Web Pour des raisons de s curit il est donc conseill de sortir ces r pertoires dans un r pertoire en dehors de l arborescence Web Dans notre exemple d installation nous allons r gler l environnement de Smarty pour une application de livre d or Nous avons ici choisi une application principalement pour mettre en vidence une convention de nommage des r pertoires Vous pouvez utiliser le m me environnement pour n importe quelle autre application il suffit de remplacer livredor avec le nom de votre application Nous allons mettre nos r pertoires Smarty dans web www example com smarty livredor Vous allez avoir besoin d au moins un fichier la racine de l arborescence Web il s agit du script auquel l internaute a acc s Nous allons l
50. de la variable une fois tronqu e Les caract res de fin sont inclus dans la longueur de la cha ne tronquer Par d faut t runcate tentera de couper la cha ne la fin d un mot Si vous voulez tronquer la cha ne au caract re exact donnez la valeur TRUE au dernier param tre optionnel Position du Type Requis Defaut Description param tre 1 entier Non 80 Le nombre de caract res maximums au del duquel on effectue le troncage 2 cha ne de caract re Non ne Le texte qui remplace le texte tronqu Sa longueur est incluse dans la configuration de 53 Modificateurs de variables Position du Type Requis Defaut Description param tre la longueur tronquer 3 bool en Non FALSE D termine si le troncage est effectu sur le dernier mot FALSE ou au caract re exact TRUE 4 bool en Non FALSE Ceci d termine si le troncage intervient la fin de la cha ne FALSE ou au milieu de la cha ne TRUE Notez que si ceci vaut TRUE alors les limites de mots sont ignor es 54 Modificateurs de variables Example 5 21 truncate lt php Ssmarty gt assign titreArticle Deux soeurs r unies apr s 18 ans de s paration 2 gt O le template est StitreArticle StitreArticle truncate StitreArticle truncate 30 StitreArticle truncate 30 titreArticle truncate 30 StitreArt
51. de mettre ce r pertoire dans l arborescence Web combpile 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 Ce dossier doit tre accessible en criture par le serveur web Voir l installation pour plus d informations 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 Voir aussi Scompile idet Suse sub dirs 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 C est le r pertoire ou les r pertoires dans lequel 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 r pertoire de travail courant puis relativement chaque entr e de votre r pertoire d
52. des valeurs vraiment utiles comme first index etc 29 Variables smarty template Retourne le nom du template courant Cet exemple montre le container tpl ainsi que le banner tpl inclu avec Ssmarty template lt b gt Le conteneur principal est smarty template lt b gt include file banner tpl Affichera lt b gt Le conteneur principal est container tpl lt b gt banner tpl smarty version Retourne la version de Smarty ayant servie compiler le template lt div id footer gt G n r par Smarty smarty version lt div gt smarty Idelim smarty rdelim Ces variables sont utilis es pour afficher le d l miteur gauche et le d limiteur droit Lisez aussi la partie ldelim rdelim Voir aussi les variables et les variables de configuration 30 Chapter 5 Modificateurs de variables Les modificateurs de variables peuvent tre appliqu s aux variables fonctions utilisateurs ou chaines de caract res Pour appliquer un modificateur de variable tappez une valeure suivie de pipe et du nom du modificateur Un modificateur de variable est succeptible d accepter des param tres additionnels qui en affectent le comportement Ces param tres suivent le nom du modificateur et sont s par s par un deux points Toutes les fonctions PHP peuvent tre utilis es en tant que modifieurs implicitement plus d informations ci dessous et les modificateurs peuvent tre combin s
53. du chemin du fichier comme avec smarty gt display c path to index tpl e Le tableau de fonctions PHP resource_funcs doit tre compos de 4 ou 5 l ments e S il est compos de 4 l ments les l ments seront les noms de fonctions pour respectivement source timestamp secure et trusted de la ressource e S il est compos de 5 l ments le premier l ment devra tre une r f rence sur un objet ou le nom d une classe de l objet ou une classe impl mentant la ressource et les 4 l ments suivants doivent tre les noms des m thodes impl mentant source timestamp secure et trusted Example 13 25 Exemple avec register_resource lt php Ssmarty gt register_resource db array db_get_template db_get_timestamp db_get_secure db_get_trusted 2 gt Voir aussi unregister_resource et les ressources de template 191 M thodes Name trigger_error Affiche un message d erreur Description void trigger_error string error_msg int level Cette fonction peut tre 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 http ER_NOTICE E_USER_WARNING etc Par d faut il s agit de gt php net trigger_error i e E_US E_USER_WARNING Voir aussi Serror_reporting le d bogage et Troubleshooting 192 M thodes
54. fonction syntaxe inclu inclu inclu de file header tpl de file header tpl attrib_name attrib value de file SincludeFile inclu de file includeFile title Smarty est cool html_select_date display_days yes mailto address smarty example com lt select name company gt html_options options choices selected selected lt select gt Variables ins r es dans des chaines de caracteres e Smarty est capable d interpr ter les variables assign es l int rieur de cha nes entre guillemets du moment que leur nom est exclusivement compos de chiffres lettres underscores et crochets Voir le nommage http php net language variables pour plus de d tails e Si le nom de la variable contient tout autre caract re point r f rence un objet etc la variable doit tre entour e d apostrophes inverses C e Vous ne pouvez jamais ins rer de modificateurs ils doivent toujours tre appliquer l ext rieur des guillemets Example 3 5 Exemples de synthaxes fu fu fu fu fu fu fu ne ne ne ne ne ne ne var var var var var var var tes tes tes tes tes tes tes Sfoo test lt comprends Sfoo_bar test lt comprends Sfoo 0 test lt comprends Sfoo bar test lt comprends Sfoo bar test lt comprends Sfoo bar test lt comprends Sfoo bar test scape
55. fons a 89 fgg bar 680 bar 1Sb a F88 bar foo toot bar tabs ERs LS Is his is foo his is foo ThisT Tipa foo This is foo is This is foo bar isnag F88 foo bar foo bar foo foo bar FRE SDAP Pas foo supaffichera Foo te Ep ylescengal bar 2 38 pazo rba foo 8o eS as Rar 8 bargo foo zi ES oo AS This is foo ar 989 ee 8 bar 58 foo bar foo bar bar foo foo This is This ogepbrft sst 4 bar foo foo foo foo bar This This is foo foo bar har F98 gQ Rar foo bar foo foo bar bar SESS 22 fgg foo kar foo bar foo 15f868 1B8r foo bar foo foo bar foo TESERO ERIE foo thts is foo This is foo This is foo This ig 92 This is foo This is foo This is foo This is foo This is oo bar foo bar foo foo BRES ri pal tee ee bar foo bar bar foo foo bar foo bar foo foo bar foo pakeniple deis gni na Ber foo Bar fgg fgg Bar foofgggr foo 682 foo bar foo foo bar foo bar foo foo textformat foo bar foo bar foo foo bar foo bar foo 138 Fonctions utilisateur Voir aussi strip et wordwrap 139 Chapter 9 Fichiers de configuration Les fichiers de configuration sont un moyen interressant pour g rer des variables depuis un seul et m me fichier L exemple le plus courant tant le sch ma de couleurs du template Normalement pour changer le sch ma de couleur d une application vous devriez aller dans chaqu
56. foo teste si les valeurs sont paires even ou impaires odd if Svar is even if var is odd if if var is not odd if teste si la variable est divisible par 4 if Svar is div by 4 if teste si la variable est paire par groupe de deux i e O paire l paire 2 impaire 3 impaire 4 paire 5 paire ECA y if Svar is even by 2 if O paire l paire 2 paire 3 impaire 4 impaire 5 impaire etc if Svar is even by 3 if 72 Fonctions natives Example 7 16 Plus d exemples avec if if isset Sname amp amp Sname Blog faire quelque chose elseif Sname Sfoo faire quelque chose if if is_array foo amp amp count foo gt 0 faire une boucle foreach if include Les balises include sont utilis es pour inclure des templates l int rieur d autres templates Toutes les variables disponibles dans le template r alisant l inclusion sont disponibles dans le template inclus e Labalise include doit contenir l attribut fi 1e qui contient le chemin vers la ressource de template e La d finition de l attribut optionnel assign sp cifie la variable de template assign e la sortie de include au lieu d tre affich e Similaire assign e Les variables peuvent tre pass es des templates inclus comme attributs Toutes les variables explicitement pass es un template inclus ne sont
57. foo conf lt html gt lt title gt Ssmarty config pageTitle lt title gt lt body bgcolor smarty config bodyBgColor gt lt table border Ssmarty config tableBorderSize bgcolor S smarty config tableBgC lt tr bgcolor Ssmarty config rowBgColor gt lt td gt First lt td gt lt td gt Last lt td gt lt td gt Address lt td gt lt tr gt lt table gt lt body gt lt html gt Les deux exemples ci dessus afficheront lt html gt lt title gt C est le mien lt title gt lt body bgcolor eeeeee gt lt table border 3 bgcolor bbbbbb gt lt lt lt tr bgcolor cccccc gt td gt First lt td gt td gt Last lt td gt lt td gt Address lt td gt lt tr gt lt table gt lt body gt lt html gt 27 Variables Les variables de fichier de configuration ne peuvent tre utilis s tant qu elles n ont pas t charg es Cette proc dure est expliqu e plus loin dans le document voir config_load Voir aussi les variables et les variables r serv es smarty Variable r serv e smarty La variable PHP r serv e Ssmarty peut tre utilis e pour acc der plusieurs variables d environnements En voici la liste compl te Variables de requ te Les variables de requ te http php net reserved variables comme _GET _POST _COOKIE _SERVER S_ENV et _SESSION voir Srequest_vars_order et request_use_auto_globals peuvent tre utili
58. gt 4 lt td gt lt tr gt lt tr bgcolor dddddd gt lt td gt 5 lt td gt lt td gt 6 lt td gt lt td gt 7 lt td gt lt td gt 8 lt td gt lt tr gt lt tr bgcolor eeeeee gt lt td gt 9 lt td gt lt td gt amp nbsp lt td gt lt td gt nbsp lt td gt lt td gt nbsp lt td gt lt t lt tbody gt lt table gt 126 Fonctions utilisateur mailto mailto cr e un lien mailto automatiquement encod optionnel L encodage rend la t che de r cup ration des e mails sur votre site plus difficiles aux web spiders Note technique Javascript n est certainement pas la forme d encodage la plus robuste Vous pouvez galement utiliser un encodage hexad cimal Nom attribut Type Requis D faut Description address chaine de Oui n a L adresse email caract res text chaine de Non n a Le texte a afficher caract res par d faut l adresse email encode cha ne de Non none Comment encoder caract res l adresse email none hex javascript et javascript _charcode sont des valeurs correctes cc chaine de Non n a Les adresses email caract res en copie Cc S parez les entr es par une virgule bec chaine de Non n a Les adresses email caract res en copie cach es Bcc S parez les entr es par une virgule subject cha ne de Non n a Sujet de l email caract res newsgroups cha ne de Non n a Newsgroup o caract res poster le message S parez les entr es par une vir
59. gt Jane Johnson lt option gt lt option label Charlie Brown value 13 gt Charlie Brown lt option gt lt select gt 110 Fonctions utilisateur Example 8 14 Exemple avec une base de donn es e g ADODB ou PEAR lt php Ssql select type_id types from contact_types order by type Ssmarty gt assign contact_types db gt getAssoc sql Ssql select contact_id name email contact_type_id from contacts where contact_id contact_id Ssmarty gt assign contact db gt getRow S sql 2 gt Ot le template pourrait tre celui ci Notez l utilisation du modificateur truncate lt select name type_id gt lt option value null gt none lt option gt html_options options Scontact_types truncate 20 selected Scontact type_id lt select gt 111 Fonctions utilisateur Example 8 15 Exemple avec lt optgroup gt lt php Sarr Sport Sarr Rest Ssmarty gt assign lookups Ssmarty gt assign fav 2 gt array 6 gt array 3 gt Golf 9 gt Cricket 7 gt Swim Sauna 1 gt Massage Sarr ANG Le script ci dessus et le template suivant html_options name foo options myOptions selected SmySelect value 6 gt Golf lt option gt ket value 9 gt Cricket lt option gt label Swim value 7 selected selected gt Swim lt option gt affichera lt select name breakTime gt lt optgroup label Spor
60. gt get_template_vars gt n lt pre gt return Scompiled Voir aussi register_prefilter unregister_prefilter register_postfilter et unregister_postfilter Filtres de sortie Les plugins de filtres de sortie op rent sur la sortie du template apr s que le template a t charg et ex cut mais avant que la sortie ne soit affich e string smarty_outputfilter_name Stemplate_output amp Ssmarty string Stemplate_output object amp Ssmarty Le premier param tre pass la fonction du filtre de sortie est la sortie du template qui doit tre modifi e et le second param tre est l instance de Smarty appelant le plugin Le plugin est suppos faire un traitement et en retourner le r sultat 231 Etendre Smarty avec des plugins Example 16 9 Plugin de filtre de sortie lt php Smarty plugin Fichier outputfilter protect_email php Type filtre de sortie Nom protect_email R le Convertie les en 40 pour prot ger des X robots spammers function smarty_outputfilter_protect_email Soutput amp Ssmarty return preg_replace St a zA Z0 9 a zA Z 2 3 0 9 1 3 S1 40S2 Soutput Voir aussi register_outputfilter et unregister_outputfilter Ressources Les plugins ressources sont un moyen g n rique de fournir des sources de templates ou des composants de scripts PHP Smarty Quelques exemples de ressources b
61. inclusion PHP Si p1ugins_ di r est un tableau de r pertoires Smarty cherchera les plugins dans chaque r pertoire de plugins dans l ordre donn 148 Variables 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 r pertoire de travail courant Example 12 1 Ajout d un dossier local de plugins lt php Ssmarty gt plugins_dir includes my_smarty_plugins 2 gt Example 12 2 Plusieurs plugins_dir lt php Ssmarty gt plugins_dir array plugins the default under SMARTY_DIR path to shared plugins includes my plugins 2 gt 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 depuis PHP et des variables des fichiers de configuration pour le script courant Il ne montre pas les variables assign es dans un template avec assign Voir aussi debugging_ctrl sur la fa on d activer le d bogage depuis l url Voir aussi debug debug_tpl et Sdebugging_ctrl debug_tpl C est le nom du fichier template utilis pour la console de d bogage Par d faut debug tp1 il se situe dans SMARTY_DIR Voir aussi Sdebugging et la console de d bogage 149 Variables debugging_ctrl Cela permet d avoir diff Orents moyens pour activer le dA
62. is_cached et plusieurs templates oooocncccnncnnncnnccnnconnconnccnnccnnconnconncnnnss 180 13 21 Chargement de plugins de filtrage sicir nena E e E E EEEE 181 13 22 Exemple avec register_block ss 182 13 23 Exemple avec register_function ss 184 13 24 register modifier iii ii acotar ween 186 13 25 Exemple avec register_resource e ea 191 13 26 TEMPLADA iio 193 13 27 Exemple avec unregister_function coooccnccnnncnncnnncnnncnnccnnccnnconnccnncnnnconncnnncnnncnnncnnroniss 196 13 28 Exemple avec unregister_modifier ss 197 Smarty le moteur et compilateur de template PHP 13 29 Exemple avec unregister_resource su 202 14 1 Activation du Cache 55 hs lee Ah GS diia 203 14 2 R glage individuel de cache_lifetime oocconncnccnnnnccccnonnncccnnnnnnccnnnnnnccnnnnanccnnonanccnnnnanos 204 14 3 Activation de compile_check ses 204 14 4 Exemple avet is Cache te espere ete nn ee sienne 205 14 5 Nett yage d cache cies benne one iii 205 14 6 Passage d un cache_id display cccecceseececeeeeceeecaeeceeeaaeeceeeaaeeeceeaueeeeeeaaeeeeeeaaes 206 14 7 Passer un cache_id a is_Cached ooococccccccncncncoconononononononononononononnnnnnnnnnonononononononononos 207 14 8 Effacement de tous les fichiers de cache pour un identifiant de cache particulier 207 14 9 Groupes d identifiants de cache csr oen e ee
63. l int rieur d expressions conditionnelles etc Pour afficher une variable il suffit de l entourer par des d limiteurs de telle sorte qu elle soit la seule chose qu ils contiennent Example 4 1 Exemple de variables Nom Contacts enreg Telephone lt body bgcolor bgcolor gt Astuce La fa on de la simple d analyser les variables Smarty est d utiliser la console de d bogage Variables assignees depuis PHP Pour utiliser une variables assign es depuis PHP il faut la pr fixer par le symbole dollar Les variables asign es depuis un template gr ce la fonction assign sont manipul es de la m me fa on 22 Variables Example 4 2 Variables assign es Script PHP lt php Ssmarty new Smarty Ssmarty gt assign firstname Doug Ssmarty gt assign lastname Evans Ssmarty gt assign meetingPlace New York Ssmarty gt display index tpl1 2 gt O index tpl est Bonjour firstname S lastname heureux de voir que tu es arriv ici lt br gt ceci ne fonctionnera pas car vars est sensible a la casse Cette semaine le meeting est a Smeetingplace ceci fonctionnera Cette semaine le meeting est SmeetingPlace Affichera Bienvenue Doug heureux de voir que tu es arriv ici lt br gt Cette semaine le meeting est a Cette semaine le meeting est a New York Tableaux associatifs Vous pouvez gal
64. le num ro de la ligne et l erreur Apr s cela vous pouvez connaitre le num ro de ligne o il y a eu erreur dans la d finition de la classe Smarty Il y acertaines 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 Example 17 2 Erreur d analyse PHP Parse error parse error in path to smarty templates_c index tpl php on line 75 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 if if ou section section manquantes ou syntaxe logique incorrecte dans une instruction if 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 238 Diagnostic des erreurs Example 17 3 Autres erreurs communes Warning Smarty error unable to read resource index tpl in ou Warning Smarty error unable to read resource site conf in e Le dossier Stemplate_dir est incorrect n existe pas ou le fichier the file index tp1 n est pas dans le dossier templates e Une fonction config_load est dans un template ou config_load a t appel et soit config_dir est incoh rent n existe pas o
65. le tableau sera parcouru en sens inverse max entier Non n a D finit le nombre maximum de fois que le tableau sera parcouru show bool en No TRUE D termine s il est n cessaire d afficher la section ou non Les param tres requis sont name et loop Le name de la section est selon votre choix compos de lettres chiffres et underscores comme pour les variables PHP http php net language variables Les sections peuvent tre imbriqu es mais leurs noms doivent tre uniques L attribut loop habituellement un tableau de valeurs d termine le nombre de fois que section doit boucler Lors de l affichage d une variable dans une section le nom de la section doit tre fournis apr s le nom de la variable entre crochets sectionelse est ex cut lorsqu aucune valeur n est trouv e dans la variable parcourir section a galement ces propres variables qui g rent les propri t s de la section Ces propri t s sont accessibles comme ceci Ssmarty section name property o name est l attribut name 83 Fonctions natives e Les propri t s de section sont index index_prev index_next iteration first last rownum loop show total Example 7 30 Boucler dans un simple tableau avec section assign un tableau Smarty lt php data array 1000 1001 1002 Ssmarty gt assign custid data 2 gt Le template qui affiche le tableau
66. les 5 lignes Utilisez la fonction if avec l op rateur mod lt table gt section name co loop contacts if smarty section co iteration if lt tr gt lt tr gt section lt table gt Js ie lt tr gt lt th gt amp nbsp lt th gt lt th gt Name gt lt th gt lt th gt Home lt th gt lt th gt Cell lt th gt lt th gt lt td gt lt a href view php id contacts co id gt view lt a gt lt td gt lt td gt contacts co lt td gt contacts co lt td gt contacts co lt td gt contacts co name lt td gt home lt td gt cell lt td gt email lt td gt Email lt th gt lt tr gt 92 Fonctions natives first first est d fini TRUE si l it ration courante de section est l initiale last last est d fini 4 TRUE si l it ration courante de la section est la derni re Example 7 40 Exemple avec les propri t s first et last Cet exemple boucle sur le tableau customers affiche un bloc d en t te lors de la premi re it ration et lors de la derni re affiche un bloc de pied de page Utilise aussi la propri t total section name customer loop Scustomers if Ssmarty section customer first lt table gt lt tr gt lt th gt id lt th gt lt th gt customer lt th gt lt tr gt if lt tr gt lt td gt customers customer id lt td gt lt td gt Scustomers customer name lt td gt lt tr gt if Ssmarty section customer l
67. leurs templates etc 212 Fonctionnalit s avanc es Les filtre de pr compilations peuvent tre soit d clar s soit charg s partir des r pertoires de plugins en utilisant la fonction load_filter ou en r glant la variable Sautoload_filters Smarty passera la fonction le code source en tant que premier argument et attendra en retour le code modifi Example 15 2 Utilisation un filtre de pr compilation de template Ceci va effacer tous les commentaires de la source du template lt php mettre ceci dans votre application function remove_dw_comments tpl_source amp Ssmarty return preg_replace lt gt U Stpl_source enregistrer le filtre de pr compilation Ssmarty gt register_prefilter remove_dw_comments Ssmarty gt display index tpl 2 gt Voir aussi register_prefilter les post filtres et load_filter Filtres de post compilation Les filtres de post compilation sont des fonctions PHP que vos templates ex cutent apr s avoir t compil s Les filtres de post compilation peuvent tre soit d clar s soit charg s depuis les r pertoires des plugins en utilisant la fonction load_filter ou en r glant la variable Sautoload_filters Smarty passera le template compil en tant que premier param tre et attendra de la fonction qu elle retourne le r sultat de l ex cution 213 Fonctionnalit s avanc es Example 15 3 Uti
68. lt modifieurs a l ext rieur des guilleme Sfoo Sfoo_bar Sfoo 0 Sfoo bar Sfoo not foo bar Sfoo bar 19 Bases syntaxiques Example 3 6 Exemples pratiques remplacera Stpl_name par la valeur include file subdir Stpl_name tpl ne remplacera pas tpl_name include file subdir Stpl_name tpl lt doit contenir des apostophes inverses car il contient un cycle values one two smarty config myval identique a Smodule contact tpl dans un script PHP include file module contact tpl1 identique a module view tpl dans un script PHP include file Smodule S view tp1 Voir aussi escape Op rations math matiques Les op rations math matiques peuvent tre directement appliqu es aux variables Example 3 7 Exemples d op rations math matiques Sfoo 1 Sfoo Sbar quelques exemples plus compliqu s foo gt bar bar 1 baz gt foo gt bar 3 7 if Sfoo S bar test baz 134232 10 b 10 foo truncate fooTruncCount barTruncFactor 1 assign var foo value S foo bar Voir aussi la fonction math pour les quations complexes et eval D sactiver l analyse de Smarty Il est quelques fois utile voir n cessaire de demander Smarty d ignorer certaines sections que seraient analys es sinon Un exemple classique est l incorporation de code Javascript ou CSS dans les templates 20 Bases syntax
69. ong donne ele t er aol Fonction de gestion du cache sise RESSOURCES 5 dort ut eean a teni towed das linia de ANR Templates depuis template_ir cece ceccceeecece cece ee eeceeeeeceeeeeaeeeeeeeeaeeseeaeees Templates partir de n importe quel r pertoire ocoococcnocccononccononocononocononoconanoconos Templates depuis d autres sources UV Fonction de gestion de template par d faut cece cece eeceee nec eeeeceeeeeeaeeeeaeeneeas 16 Etendre Smarty avec des plugins osese ecne rea EE EE Ee EE EE ii ES Comment fonctionnent les plugins ss Conventions d nomimagse china os eh ee ease Ecrire des Pl IO sieste nine tendant tt rl Les fonctions de templates see Modificateurs esse nude menti en in nn nent tons dote tunes Fonctions d DlOCS ssi A eb as oe eee uae aie ae Fonctions d compilation 533 s2 ccsnenateh a ni H ns eat ete deeds filtres de pr compilation filtres de post compilation ooocooccncccnccnnccnnconnconnccnnconaconaconncos A nn ones mienne nn Se tee nesemesevenntseseys RESSOUECES ae na NE NA ate atte le NRA PR En E A 145 Smarty pour les programmeurs Insertions 146 Chapter 11 Constantes SMARTY_DIR Il doit s agir du chemin complet du r pertoire o se trouvent les fichiers classes de Smarty S il n est pas d fini dans votre script Smarty essaiera alors d en d terminer automatiquement la valeur S il est d fini le chemin doit se terminer par un slash Exam
70. ou non les variables sont disponibles pour les templates 61 Fonctions natives Nom attribut Type Requis D faut Description parents identique a scope parent Note Cet attribut est obsol te depuis l apparition de l attribut scope il est toutefois toujours support Si scope est d fini global est ignor Example 7 3 Fonction config_load Le fichier example conf ceci est un commentaire de fichier de configuration variables globales pageTitle Menu principal bodyBgColor 000000 tableBgColor 000000 rowBgColor 00ff00 section de variables personnalis es Customer pageTitle Info personnalis e et le template config _ load file example conf lt html gt lt title gt pageTitle default No title lt title gt lt body bgcolor bodyBgColor gt lt table border tableBorderSize bgcolor tableBgColor gt lt tr bgcolor rowBgColor gt lt td gt First lt td gt lt td gt Last lt td gt lt td gt Address lt td gt lt tr gt lt table gt lt body gt lt html gt Les fichiers de configuration peuvent contenir des sections Vous pouvez charger des variables d une section donn e avec le nouvel attribut section 62 Fonctions natives Note Les sections des fichiers de configuration et la fonction native section n ont rien en commun il s av re simplement qu elles portent le m me nom Example
71. php Smarty plugin Fichier compiler tplheader php Type compilation Nom tplheader R le Renvoie l en t te contenant le nom du fichier sourc t le temps de compilation function smarty_compiler_tplheader tag_arg amp amp smarty return necho Ssmarty amp gt _current_file compiled at Cette fonction peut tre appel e depuis le template comme suivant cette fonction n est execut e que lors de la compilation tplheader Le code PHP r sultant dans les templates compil s ressemblerait a lt php echo index tpl compiled at 2002 02 20 20 02 2 gt Voir aussi register_compiler_function et unregister_compiler_function filtres de pr compilation filtres de post compilation Les filtres de pr compilation et les filtres de post compilation ont des concepts tr s proches Ils diff rent dans leur ex cution plus pr cis ment dans le moment o ils sont ex cut s string smarty prefilter name source amp Ssmarty string Ssource 229 date Y m d Etendre Smarty avec des plugins object amp Ssmarty Les filtres de pr compilation sont utilis s pour transformer la source d un template juste avant la compilation Le premier param tre pass a la fonction de filtre de pr compilation est la source du template ventuellement modifi e par d autres filtres de pr compilations Le plugin est suppos retourner la source modifi e
72. re n est pas utilis e e Le quatri me param tre est le nom du fichier de template utile pour lire crire e Le cinqui me param tre est l identifiant Scache id e Le sixi me est l identifiant optionnel Scompile_id e Le septi me et dernier param tre Sexp_ time a t ajout dans Smarty 2 6 0 215 case read r cup re le cache dans la base de donn es Sresults mysql_query select CacheContents from CACHE_PAGES where CacheID 1f results Fonctionnalit s avanc es Ssmarty_obj gt trigger_ error _msg cache handler query failed Example 48 5 Exempl d atilisation de MySQIMpour BSs ce du cache if Suse_gzip amp amp function _exists gzuncompress Scache_content gzuncompress row CacheContents else Scache_content Srow CacheContents Sreturn Sresults break case write sauvegarde le cache dans la base de donn es if Suse_gzip amp amp function_exists gzcompress compresse le contenu pour gagner de la place Scontents gzcompress cache_content else Scontents Scache_content Sresults mysql_query replace into CACHE_PAGES values SCacheID addslashes contents tja if results Ssmarty_obj gt _trigger_error_msg cache_handler query failed Sreturn Sresults break case clear efface les donn es du cache if empty cache_id amp amp empty Scompile_id
73. retour de la fonction sera substitu e la balise de fonction du template fonction fetch par exemple Sinon la fonction peut simplement accomplir une autre tache sans sortie la fonction assign par exemple Si la fonction a besoin d assigner des variables aux templates ou d utiliser d autres fonctionnalit s fournies par Smarty elle peut recevoir un objet smart y pour cel Example 16 1 Fonction de plugin avec sortie lt php Smarty plugin Fichier function eightball php Type fonction Nom eightball R le renvoie une phrase magique au hasard function smarty_function_eightball Sparams amp Ssmarty Sanswers array Yes No No way Outlook not so good Ask again soon Maybe in your reality Sresult array_rand Sanswers return Sanswers S result 2 gt peut tre utilis e dans le template de la facon suivante Question Will w ver have time travel Answer eightball 223 Etendre Smarty avec des plugins Example 16 2 Fonction de plugin sans sortie lt php Smarty plugin Fichier Type Nom Purpose function assign php fonction assign assigne une valeur a une variable de templat XA A F F gt function smarty_function_assign S params extrac t Sparams if empty var Ssmarty gt trigger_error assign missing var parameter re if in_array value Le S
74. s passez TRUE au troisi me param tre optionnel Ceci est l quivalent de la fonction PHP wordwrap http php net wordwrap Position du Type Requis Defaut Description param tre 1 entier Non 80 La nombre de colonnes sur lequel ajuster l affichage 2 cha ne de Non n chaine de caract res caract res utilis e pour l ajustement D termine si l ajustement se fait en fin de mot FALSE ou au caract re exact TRUE 3 bool en Non FALS El 56 Modificateurs de variables Example 5 23 wordwrap lt php Ssmarty gt assign articleTitle Blind woman gets new kidney from dad she hasn t seen in years i 2 gt Ot le template est StitreArticle StitreArticle wordwrap 30 StitreArticle wordwrap 20 titreArticle wordwrap 30 lt br gt n StitreArticle wordwrap 30 n true L exemple ci dessus affichera Une femme aveugle obtient un nouveau rein d un p re qu elle n a pas vu depuis des Une femme aveugle obtient un nouveau rein d un p re qu elle n a pas vu depuis des ann es Une femme aveugl obtient un nouveau rein d un p re qu elle n a pas vu depuis des ann es Une femme aveugle obtient un lt br gt nouveau rein d un p re lt br gt qu elle n a pas vu depuis lt br gt des ann es Une femme aveugle obtient un n ouveau rein d un p re qu elle n a pas vu depuis des ann es 57
75. template par exemple pour avoir des templates compil s pour diff rents langages Une autre utilit pour l identifiant de compilation compile_id est lorsque vous utilisez plus d un template dir mais seulement un Scompile dir D finissez un Scompile_id s par pour chaque Stemplate dir sinon les templates du m me nom s effaceront Vous pouvez galement d finir la variable compile_id une seule fois plut t que de la passer chaque appel la fonction Example 13 12 Exemple avec display lt php include SMARTY_DIR Smarty class php Ssmarty new Smarty Ssmarty gt caching true ne fait un appel la base de donn es que si le fichier de cache n existe pas if Ssmarty gt is_cached index tpl quelques donn es Saddress 245 N 50th Sdb_data array ville gt Lincoln Pays gt Nebraska Code postal gt 68502 Ssmarty gt assign Nom Fred Ssmarty gt assign Adresse Saddress Ssmarty gt assign db_data affichage Ssmarty gt display index tpl1 2 gt 171 M thodes Utilisez la syntaxe des ressources templates pour afficher des fichiers en dehors du r pertoire Stemplate dir Example 13 13 Exemples de fonction d affichage de ressources templates lt php chemin absolu Ssmarty gt display usr local include templates header tpl chemin absolu m m chose Ssmarty gt display file usr local include templ
76. vint la vision de ce que devait devenir Smarty Nous savons combien le code PHP peut tre rapide sans le co t d analyse des templates Nous savons aussi combien fastidieux et d courageant peut para tre le langage pour le designer moyen et que cel peut tre remplac par une syntaxe sp cifique beaucoup plus simple Et si nous combinions les deux forces A nsi Smarty tait n xii Part I Pour commencer Table of Contents 1 Qu est ce que Smarty Missatge nh vad eme bin tag sea ease ttes 3 223 INS tall ati On LEE net e a EC A ean 5 C dont Vous avez DESO es cases Seeds x Sess en ann na Ua en nea done oa A dad oan desk SAVES Oa Rea TESS 5 Installation d bases selene elk ed ves 5 Configuration AVANCE sssi sas nier ae te aioe ae tue baa sain ent Saabs Ohh rte bee rta oat 9 Chapter 1 Qu est ce que Smarty Smarty est un moteur de template pour PHP Plus pr cis ment il facilite la s paration entre la logique applicative et la pr sentation Cela s explique plus facilement dans une situation o le programmeur et le designer de templates jouent des r les diff rents ou comme la plupart du temps sont deux personnes distinctes Supposons par exemple que vous concevez une page Web qui affiche un article de newsletter Le titre le sous titre l auteur et le corps sont des l ments de contenu ils ne contiennent aucune information concernant la pr sentation Ils sont transmis Smarty par l
77. 2 8 16 html_radios Premi re exemple ss 113 8 17 html_radios Deuxi me exemple UV 114 8 18 html_ radios Exemple avec une base de donn es e g PEAR ou ADODB 115 8 19 html_ select date Premier exemple e sino eene a e a a 119 8 20 html_select_date Deuxi me exemple c eee ceceeeceeeneceeeeeeeeeeeaeeeeaeeeeaeeeeaeeneeas 120 DL html Select AIM zeke sens A cade ode vee deb aden eke seehemuee 122 8 225 html table se en wont el eased ta aa Mi al eed sant net 126 8 23 Exemple avec Mar lto nnda ein er nee resp eee rot aa tente 128 8 24 math fi betas ele ed dat A A a ea 130 8 29 lt POPUP RN 135 8 26 IDOPUP EMULE wi ede Le eters ea ee te Patel eh ils tos eet a Beate ted Se ee ee i 136 NS NI A drame dorment ete note 138 9 1 Exemple de fichier de configuration cece cece i cee ce EE cena eens a R EES 140 TCT SMAR PY DIR ss ennemis ee MR eet seeks tipicas 147 112 SMARTY CORE DIR rte o anne ni ne Pete ue io 147 12 1 Ajout d un dossier local de plugins 00 0 0 cece cece ce cece ence eeeeeeceeeeeeeeaeeeaeeea essa eean scans 149 12 2 Plusieurs plugins ir ss 149 12 3 debugging ctr sur localhost easair e E R a aa E 150 12 4 Tableau de variables de configuration ocoooccnocnnccnnncnnccnncnnncnnocnnccnnccnnccnnccnncnnnconnconininoss 153 12 5 Exemple avec sec re dit siemens sed media otero dre 155 12 6 compile_id dans un environement d h te virtuel o
78. 223 16 2 Fonction de plugin sans sortie ss 224 16 3 Plugin modificateur Simple siennes eaa e EEEE EAEE ER EE ee ENESE EUERE 225 16 4 Un plugin modificateur un peu plus complexe cece cee cee eeeeeaeecaeeee sean een eees 226 1635 Fonction d Blocs Denain de enr ste tebe ites Meee er eee Maes ie nette 227 16 6 Fonction de compilation simple 2 0 0 0 ccc ece cece cess ce nece scence eeeeeeeeeseeeeaeeeaeeea seas sean eeaes 229 16 7 Plugin de filtre de post compilation ooocccocccnnnccnnnncnnnccnnnnconnnrcnnnccnnnnconnocnnnnccnnnncnonicnns 230 16 8 Plugin de filtre de post compilation oooocccoccccnoccnnnccnnnccnnnnccnnncnnnnconnnnconncrnnnnccnnnncnnninnns 231 16 9 Plugin de tiltre de Sorensen derriba 232 16 10 resource PU E E a 234 16 11 AAA soe dese EE entre tannins ph ber sesh ess dti tees veut 235 17 15 erreurs Smary HE ese ck Pes E Sek as ee nee eee ae eee 238 1722 Erteur d analyse PHP its ae aoa aw eh Ea E sedans ONE ns ent amet te diese is 238 17 3 Autres erreurs COMMUNES eee 239 18 1 Afficher amp nbsp quand une variable est Vide ooooccnoccnnconoconocononnncnnnnonoconccnnccnnconncnnncons 240 18 2 Assigner une valeur par d faut une variable de template 240 18 3 Passer le titre au template d en t te se 241 18 4 Utilisation de date format 2 s02 3c0h cc adds 242 18 5 Conversion des l ments date d
79. 56 COMPILE A Marne arme me nel me ardent ee ees 156 SUSE subdir A var been Unde le A Sc ni 157 Sde fault AMOGi ELS it nine a 157 default resource type einen di areas ere 157 13 M thodes ss nn Ra A lese den en 158 APPendO ES NT NT PR nt ace nent nt NS en ET 159 Append by refO es nissan eine es et Sn fee ane Us et Serie dt s 160 ASSIS rene cee ads La nr tn E nn tn E Na nes 161 ASADA nn von den sn nn rome eat le en 163 clear all assin a Vs nement een 164 cl ar all Cach ina da 165 Clear ASSI SN oiee as recites ENS eden 166 Clear CACHEO semer ps nn de ne E en SE en en de M tone Se ents 167 elearccompiled tpl miersii e mn satin Maio ee aa ee ee pea eee 168 clear COMME Se Mt bans M te iia feta ee inter ee 169 COMME load ir rs nine et E nr tte EE nn 170 SPlAYO ssh ia 171 A EE RP SN 173 Smarty le moteur et compilateur de template PHP Bet COMME yars sine nent tes 176 get registered objecti comisaria oran nes et ete ea cee nes 177 Bet template yars er de rte se RARE El dad Rae 178 AA ele dinars E ete he ER etienne 179 A O 181 register DIOCK inicia A A nn nee tn nent a tuer uen 182 register Compiler AUNCUON rss foret hacgunedteccvous lent Mt den den ates 183 register MUN CHONG a rire en ne retenir ein end 184 EOI EMO aia rapidas 186 register A ON 187 register Outputllter cios sde e te one Moen rental teste tee tasa 188 r pister postfilt r caca does peck po een ee made eine ii 189 register preliminar
80. 5th 417 Mulberry In 5605 apple st Ssmarty gt assign address Saddr Stypes array array home phone cell phone e mail array home phone web array cell phone Ssmarty gt assign contact_type Stypes Sinfo array array 555 555 5555 666 555 5555 john myexample com array 123 456 4 www example com array 0457878 Ssmarty gt assign contact_info Sinfo Pans cetemplaie Scented quel cu ug ped estantableau de types de contacts lt hr gt id Scustid customer lt br gt name Sname customer lt br gt address Saddress customer lt br gt section name contact loop Scontact_type customer Scontact_type customer contact contact_info customer contact lt br gt section Leggnipie Pdessus affichera id 1000 lt br gt name John Smith lt br gt address 253 N 45th lt br gt home phone 555 555 5555 lt br gt cell phone 666 555 5555 lt br gt e mail john myexample com lt br gt lt hr gt id 1001 lt br gt name Jack Jones lt br gt address 417 Mulberry ln lt br gt home phone 123 456 4 lt br gt web www example com lt br gt lt hr gt id 1002 lt br gt name Jane Munson lt br gt address 5605 apple st lt br gt cell phone 0457878 lt br gt 88 Fonctions natives Example 7 36 Exemple avec une base de donn es et sectionelse Les r sultats
81. 8859 1 ISO 8859 1 Le jeu de caract re UTF 8 caract res pass n importe htmlentities 42 Modificateurs de variables Position du Type Requis Valeurs D faut Description param tre possibles quel jeu de caract res support par htmlentities http php net htmlentities Example 5 10 escape lt php Ssmarty gt assign articleTitle Stiff Opposition Expected to Casketless Funeral Plan Ssmarty gt assign EmailAddress smartylexample com 2 gt Voici des exemples de template avec escape suivis par l affichage produit SarticleTitle Stiff Opposition Expected to Casketless Funeral Plan SarticleTitl scape amp 039 Stiff Opposition Expected to Casketless Funeral Plan amp 039 SarticleTitl scape html chappe les caract res amp lt gt amp 039 Stiff Opposition Expected to Casketless Funeral Plan amp 039 SarticleTitl scap htmlall chappe toutes les entit s html amp 039 Stiff Opposition Expected to Casketless Funeral Plan amp 039 lt a href title SarticleTitle escape url gt cliquez ici lt a gt lt a href title 527Stiff 0ppositiont Expected to Casketless Funeral Plan 27 gt clique SarticleTitle escape quotes Stiff Opposition Expected to Casketless Funeral Plan GI lt a href mailto
82. Article TitreArticle lower Affichera Deux Suspects Se Sont Sauv s deux suspects se sont sauv s Voir aussi upper et capitalize nl2br Transforme toutes les fins de lignes en balises lt br gt Equivalent la fonction PHP n12br http php net nl2br 46 Modificateurs de variables Example 5 14 nl2br lt php Ssmarty gt assign articleTitle Sun or rain expected ntoday dark tonight gt O le template est TitreArticle nl2br Affichera Pluie ou soleil attendu lt br gt aujourd hui nuit noire Voir aussi word_wrap count_paragraphs et count_sentences regex_replace Un rechercher remplacer avec une expression r guli re Utilise la m me syntaxe que la fonction PHP preg_replace http php net preg_ replace Position du Type Requis Defaut Description param tre 1 cha ne de caract re Oui n a Expression r guli re remplacer 2 cha ne de caract re Oui n a La cha ne de remplacement 47 Modificateurs de variables Example 5 15 regex_replace lt php smarty gt assign TitreArticle L infertilit est un maux grandissant n disent 1 2 gt O le template est Remplace tous les retours chariot et les tabulation par une nouvelle ligne avec STitreArticle TitreArticle regex_replace r t n Affichera L infertilit est un maux grandissant disent les experts L infertili
83. HP ne sont inclus qu une seule fois m me si la demande d inclusion survient plusieurs fois dans le template Vous pouvez demander ce que ce fichier soit inclus chaque demande grace l attribut once Mettre l attribut once FALS fois que demand dans le template E aura pour effet d inclure le script PHP chaque Vous pouvez donner une valeur l attribut optionnel assign pour demander la fonction include_php d assigner la sortie du script PHP la variable sp cifi e plut t que d en afficher directement le r sultat L objet Smarty est disponible en tant que this dans le script PHP inclus 76 Fonctions natives Example 7 21 Fonction include_php Le fichier load_nav php lt php charge des variables depuis une base de donn es mysql et les assigne au templat require_once MySQL class php sql new MySQL Ssql gt query select from site_nav_sections order by name SQL_ALL Sthis gt assign sections sql gt record 2 gt Ot le template est chemin absolu ou relatif a Strusted_dir include_php file chemin vers load_nav php foreach item nav from Snavigation lt a href Snav url gt Snav name lt a gt lt br gt foreach Voir aussi include Ssecurity trusted dir php capture les ressources de template et les composants de templates insert Les balises insert fonctionnent peu pr s comme les balises include
84. ISE NE PE EE TS A ET NO 97 E A NA 98 NON 99 CT A NN 101 teval O NANO 101 feth A NN se EE AAE 103 Html CheckboxeSs tico ire 104 hti mape A de buen oes eee E en eur 107 html options at tia 108 html radios A rss rende Seven EEEE E EE EAE ER tenace a eeo EENS E 112 htmls lect dat hs arts eee is 115 html select timep usuel a a etes 120 html table rnane a a EEE e 64 val deat enh deen tet a aa 123 mailto ei ne ee A ee Pee ee ee 127 MACH NN 128 POPUps o Pel esate ates Ma edad vee ok et nr veces heu Dao 131 O shoes ent Mes ent dues nn Men AN ee SI ME Ent nes eeu sect areal dee di 135 textformat RE A D PE LE ON 136 9 Fichi rs d configurationrs rss tiennent tiara tes 140 10 Console sd d bo Sage i 5 22 entendue DR E ai 142 14 Chapter 3 Bases syntaxiques Toutes les balises Smarty sont entour es de d limiteurs Par d faut ils sont et mais ils peuvent tre modifi s Pour les exemples de ce manuel nous supposons que vous utiliserez leur valeur par d faut Dans Smarty le contenu qui est situ en dehors des d limiteurs est affich comme contenu statique inchang Lorsque Smarty rencontre des balises de template il tente de les comprendre et en affiche la sortie appropri e en lieu et place Commentaires Les commentaires dans Smarty sont entour s d asterisques et entour s par le d limiteurs de cette fa on ceci est un comentaire Les commentaires Smarty ne sont PAS affich s dans la s
85. MARITI e SMARITI e SMARITI TY_PH TY_PH TY_PH Note P_PASSTHRU Smarty crit les balises telles quelles P P P O _R _A UOTE Smarty transforme les balises en entit s HTML EMOVE Smarty supprime les balises des templates LLOW Smarty ex cute les balises comme du code PHP 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 vaut FALSE par d faut La s curit est de rigueur quand vous n tes pas compl tement s r 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 langage de template Activer cette option de s curit applique les r gles suivantes au langage de template moins que security_settings ne sp cifie le contrai re e Si Sphp_handling est r gl e SMARTY_PHP_ALLOW cela est implicitement chang SMARTY_PHP_PASSTHRU e Les fonctions PHP ne sont pas autoris es dans les instructions if part celles d clar es dans Ssecurity_settings e Les templates ne peuvent tre inclus que depuis des r pertoires list s dans le tableau secure dir e Les fichiers locaux ne peuvent tre r cup r s que depuis les r pertoires list s dans le tableau Ssecure_diren utilisant fetch e Les balises php php ne sont pas autori
86. Obogage NONE signifie qu aucune mA thode alternative n est autorisAOe URL signifie que si SMARTY_DEBUG se trouve dans QUERY_STRING le dAObogage est activA A l invocation du script Si debugging est TRUE cette valeur est sans effet Example 12 3 debugging_ctrl sur localhost lt php affiche la console de dA bogage uniquement sur localhost ie http localhost script php foo bar amp SMARTY_DEBUG Ssmarty gt debugging false the default Ssmarty gt debugging_ctrl S_SERVER SERVER_NAME localhost URL NONE 2 gt Voir aussi la console de dA bogage et Sdebugging 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 Ssmarty gt autoload_filters array pre gt array trim stamp output gt array convert Voir aussi register_outputfilter register_prefilter register_postfilter et load_filter 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 quelque soit la valeur de ce r glage Par d faut cette valeur est TRUE
87. R RE A A A A AA 34 SA COUNL ChATACIEES 5 52 en ne mn a TRE aE 35 9 92 COUDL paragraphs oii restent Mesa nds ies pde 36 9 0 COUNLASENICNCES NA nr a ta de Man A Tech Vece 37 COUN Words AAA nn A te te Ge ne oo a Ro ac FATS Sess ie ois loa ea De O 38 A TOLMAL sd sacs ASE Re Are Re PE eae ed Soc 39 NT 42 2 10 escape astral ictericia rolas entente 43 SL A tr s exemplis sise en eme tie tonne nm Reb yee cuban Use ave ont fat gate 44 9 12 INdENE 6 65 sites nt tried nneet eda eSsange esdeaa ET 45 9 13 LOWER Le em ea 46 DAA MIDE a E E wa asedelad Montedaadscaessabeeea sia meade an eeos aadeeess 47 DIS TEBEX TOP ACO sfr ant desis e E nn en RS Se cae dan EEEE Sates clans eee ts 48 9 16 Replace jes cscs sims nest seen rent cusea cd nette n dr Een ee d ni e rie en sera 49 DoT SPACILY coo seeks id een tea ia 50 XLS SNS TOMATE ntm rte yo cation nse ee pateed ea latte antag met he oder ns etes A ana 51 NN 52 IS ER EE E ness bovts ois ds aaah A EE E E 53 2A A AR 55 2 29 Upper ester him ten rte alain nats ses pat A E ata E 56 9 23 OT WI ci AA AA i 57 6 1 Combiner des modificateurs 5 sosc sssosacessevocevigeetasess sects sdieettendsseeeeessaedensessosvesssvessgasean PESE 59 Vili Smarty le moteur et compilateur de template PHP TT Capture avecile nom de attr Dut sitas ae ovens OE EE R EN 60 7 2 capture dans une variable de template oooooccocccnccnnccnnccnncnnnconeconoconnconononrcnnrnnccnncinnicnns 61 7 3 Fonction CONTE lo
88. SERVER_NAME Ssmarty gt compile_dir chemin vers shared_compile_dir 2 gt use_sub dirs Smarty va cr er des sous dossiers dans les dossiers templates_c et cache si la variable Suse_sub_dirs est d fini TRUE Par d faut vaut FALSE Dans un environnement o il peut y avoir potentiellement des centaines de milliers de fichiers de cr s ceci peut rendre le syst me de fichiers plus rapide D un autre c t quelques environnements n acceptent pas que les processus PHP cr ent des dossiers donc cette variable doit tre d sactiv e par d faut Les sous dossiers sont plus efficaces utilisez les donc si vous le pouvez Th oriquement vous obtiendrez plus de performance sur un syst me de fichier contenant 10 dossiers contenant chaque 100 fichiers plut t qu un dossier contenant 1000 fichiers C est par exemple le cas avec Solaris 7 UFS avec les syst mes de fichiers r cents comme ext3 ou reiserfs la diff rence est proche de z ro Note technique e Suse_sub_dirs true ne fonctionne pas avec safe mode On http php net features safe mode raison pour laquelle c est param trable et que c est d sactiv par d faut e Suse_sub_dirs true sous Windows peut causer des probl mes e Safe_mode est obsol te depuis PHP6 Voir aussi Scompile_ id Scache_diret Scompile dir default modifiers Il s agit d un tableau de modificateurs utilis pour assigner une valeur par d faut a chaque
89. SUING SOTMAL ii 0 50 STEP 252726 odor ek Set ede cask PO RE D Pa PE pe ete re et ake 51 TN 52 UOC nee 53 UPPER 250688 ceapptesss basa aameaua ch bie seater Neb babes mn AE abasses NT Ne 55 O dats der nat rete dd nant nn ana dels es 56 6 Combiner des modificateurs de variable oooooccoonoccnonccononocononoconococononocononoconnoconroronanonos 59 1 FONCHONSMAUVE S dia 60 Cdpllte RS OI asa ba dea A oia POE 60 contie Joad ii A AA is 61 foreach foreachelse rd aa me EME DRE 63 13 Smarty pour les graphistes INGER Seine arme ce cosy tee retards are te lost nr ne dav one eames 68 LUS EU TO 0 AEEA E dye eada tes N 68 TEST RE RE POSER CRE EE a PRE PIE PER PONS NE LEE 69 E A NN 69 MO as 69 Li A Ai E A E wees 70 RA A O A O O 70 in lude here re a E E A 73 include php ss dowdaedewecenssieen tesdhesdovsh E sen des a e E eden REEE n 75 insert sce Les none indienne oe tee eco enter Waa Se cab celeron een den eee behest 77 A A sn es tre ee PES ete AAEE 79 A paces lawheveaeasyeedi ee pecedes eps ee seasbouedo ves 80 Php O 81 section SECOS iii ii a 82 O NN 89 HndeX Prev A A oleae BRA A oo a e 90 Index MEA En 90 MOTO dio aed pS si ida caia 91 FES RE PR RE POS EE EIRE a PRE LIEN PER PSE IDE ONE 93 E ON 93 O 93 A E Ride Mind cadens oe Wane at die edd ae Musee 93 SHOW we cisco bnew ng Rs MS caves Hew Aer di 94 total ct Tr O ASE 95 ESS ES SR DE IT 95 8 Fonctions UUISateUr tii NT eee en nee ee nee 97 E PR
90. Smarty l utilisation du modificateur de variable default Note Les erreurs de variable ind finie seront affich s si la fonction PHP error_reporting http php net error_reporting vaut E_ ALL et qu une variable n a pas t assign e Smarty Example 18 1 Afficher amp nbsp quand une variable est vide la m thode pas adapt e if Stitle eq amp nbsp else Stitle if la bonne m thode Stitle default amp nbsp Voir aussi default et la gestion des variables par d faut Gestion des variables par defaut Si une variable est utilis e fr quemment dans vos templates lui appliquer le modificateur default peut tre un peu fastidieux Vous pouvez rem dier cel en lui assignant une valeur par d faut avec la fonction assign Example 18 2 Assigner une valeur par d faut une variable de template faites cela quelque part en haut de votre template assign var title value Stitle default no title si Stitle est vide il contiendra alors la valeur no title Stitle Voir aussi default et la gestion des variables non assign es 240 Trucs et astuces Passage du titre a un template d en t te Quand la majorit de vos templates utilisent les m mes en t te et pied de page il est d usage de les mettre dans leurs propres templates et de les inclure include Mais comment faire si l en t te doit avoir un titre diff rent selon la pa
91. Smarty le moteur et compilateur de template PHP Monte Ohrt lt monte at ohrt dot com gt Andrei Zmievski lt andrei php net gt Arnaud Cogolu gnes lt arnaud cogoluegnes free fr gt G rald Cro s lt gcroes aston fr gt Mehdi Achour lt didou php net gt Yannick Yannick lt yannick php net gt Smarty le moteur et compilateur de templates PHP by Monte Ohrt lt monte at ohrt dot com gt and Andrei Zmievski lt andrei php net gt by Arnaud Cogolu gnes lt arnaud cogoluegnes free fr gt G rald Cro s lt gcroes aston fr gt Mehdi Achour lt didou php net gt and Yannick Yannick lt yannick php net gt Publication date 2010 09 20 Copyright 2001 2005 New Digital Group Inc Table of Contents Pr face ices tenido data ria lira ar tn ne neba nn tes riot xii TE POUE commencer sise e Ve EE A A CO 1 1 QUleSt Ce que Smarty Pise reines difiere cod 3 MO a Se 3 Ce dont Vous avez besoins a lia matin ran at iran etes 5 Installationvde DIS A die 9 Configuration avanc e 55 80 ee or Eep shoves sua RESE enter aies eee et EEO KENESE EEP 9 I Smarty pour les graphistes iii tt a leds ee es 12 3 Bases syntaxique Skise set msn tes se bat etre etre nee date ve pai dah ns ooo Sa atts 15 Commentaires A dos rte 15 ETEO CR dr rias 17 PONCHONS EEEE an Sole exe cheesy one ad tee he Re ns nee Men En Er seeds 17 Param tres ans istta stants om ane a a nt natale re as tn notant 18 Variables ins r es dans des cha nes de caract re
92. Ssmarty gt display file admin menu tp1 le m me que ci dessus 2 gt le template Smarty include file index tpl include file file index tpl le m me que ci dessus Templates partir de n importe quel r pertoire Les templates en dehors du r pertoire Stemplate_ dir n cessitent le type de ressource template suivi du chemin absolu et du nom du template Example 15 7 Utilisation d un template depuis n importe quel r pertoire lt php Ssmarty gt display file export templates index tpl Ssmarty gt display file path to my templates menu tpl1 2 gt Le template Smarty include file file usr local share templates navigation tpl 217 Fonctionnalit s avanc es Chemin de fichiers Windows Si vous utilisez Windows les chemins de fichiers sont la plupart du temps sur un disque identifi par une lettre c au d but du chemin Assurez vous de bien mettre file dans le chemin pour viter des conflits d espace de noms et obtenir les r sultats escompt s Example 15 8 Utilisation de templates avec des chemins de fichiers Windows lt php Ssmarty gt display file C export templates index tpl1 smarty gt display file F path to my templates menu tpl 2 gt Le template Smarty linclude file file D usr local share templates navigation tpl Templates depuis d autres sources Vous pouvez r cup rer les templates partir de n impor
93. _init doit tre appel en haut de votre page popup_init src javascripts overlib js cr ation d un lien avec une popup qui apparait sur l v nement onMouseOver lt A href mypage html popup text Ce lien vous am ne sur ma page gt mypage lt A gt vous pouvez utiliser du html des liens etc dans vos popup lt a href mypage html popup sticky true caption Contenu de la page text lt ul gt lt li gt links lt 1li gt lt li gt pages lt 1li gt lt li gt images lt li gt lt ul gt snapx 10 snapy 10 trigger onClick gt ma page lt a gt un popup via une cellule du tableau lt tr gt lt td popup caption D tails de cette partie text Spart_long_description gt Spa Il y a galement un autre bon exemple sur la page de la documentation de capture Voir aussi popup_init et overLib http www bosrup com web overlib popup_init popup est une int gration de overLib http www bosrup com web overlib une librairie capable de r aliser des fen tres surgissantes nous parlerons de popup Ce type de fen tre est utilis pour apporter des informations contextuelles comme des infobulles d aides ou astuces e popup_init doit tre appel une seule fois de pr f rence dans la balise lt head gt dans toutes les pages si vous comptez utiliser la fonction popup e Le chemin est relatif au script ex cut ou un chemin complet i e non relatif au template 135
94. a pr f r la r utilisation du template Note technique Les fichiers situ s dans cache_ dir sont nomm s de la m me fa on que les templates Bien qu ils aient une extension php ils ne sont pas vraiment directement ex cutable N ditez surtout pas ces fichiers Tout fichier de cache a une dur e de vie limit e d termin e par cache_1ifet ime La valeur par d faut est 3600 secondes i e 1 heure Une fois que cette dur e est d pass e le cache est reg n r Il est possible de donner une dur e d expiration propre 4 chaque fichier de cache en r glant Scaching 2 Se reporter la documentation de cache_lifetime pour plus de d tails 203 Cache Example 14 2 R glage individuel de cache_lifetime lt php require Smarty class php Ssmarty new Smarty Ssmarty gt caching 2 r gler la dur e de vie individuellement r gle la dur e de vie du cache a 15 minutes pour index tpl Ssmarty gt cache_lifetime 300 Ssmarty gt display index tpl r gle la dur e de vie du cache 1 heure pour home tpl Ssmarty gt cache_lifetime 3600 Ssmarty gt display home tpl NOTE le r glage suivant ne fonctionne pas quand Scaching 2 La dur e de vie du fichier de cache de home tpl a d ja t r gl e a 1 heur t ne respectera plus la valeur de cache lifetime Le cache de home tpl expirera toujours dans 1 heure Ssmarty gt cac
95. able Il faut passer en param tres le nom de la fonction de compilation suivi par la fonction PHP qui l impl mente La fonction PHP de callback function peut tre soit Une cha ne de caract res contenant la fonction name e Un tableau sous la forme array amp Sobject Smethod o amp Sobject est une r f rence d objet et Smethod une chaine contenant le nom de la m thode e Un tableau sous la forme array class Smethod o class est le nom de la classe et Smethod est une m thode de la classe Le param tre cacheable peut tre omis dans la plupart des cas Voir Contr ler la mise en cache des sorties des Plugins pour plus d informations concernant cette utilisation Voir aussi unregister_compiler_function et les plugins de fonction de compilation 183 M thodes Name register_function D clare dynamiquement des plugins de fonction de templates Description void register_function string name mixed impl bool cacheable mixed cache attrs 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 La fonction PHP de callback function peut tre soit Une cha ne de caract res contenant la fonction name e Un tableau sous la forme array amp Sobject Smethod o amp Sobject est une r f rence d objet et Smethod une chaine contenant le nom de la m thode e Un tableau sous la forme array class Smethod o class est le n
96. ack Smith 2003 gt Charlie Brown Ssmarty gt assign mySelect 9904 2 gt Le template suivant g n rera une liste Notez la pr sence de l attribut name qui cr e les balises lt select gt html_options name foo options SmyOptions selected mySelect L affichage de l exemple ci dessus sera lt select name foo gt lt option label Joe Schmoe value 1800 gt Joe Schmoe lt option gt lt option label Jack Smith value 9904 selected selected gt Jack Smith lt option gt lt option label Charlie Brown value 2003 gt Charlie Brown lt option gt lt select gt 109 Fonctions utilisateur Example 8 13 Tableaux s par s pour values et ouptut lt php Ssmarty gt assign cust_ids array 56 92 13 Ssmarty gt assign cust_names array Joe Schmoe Jane Johnson Charlie Brown Ssmarty gt assign customer_id 92 2 gt Les tableaux ci dessus seront affich s avec le template suivant notez l utilisation de la fonction PHP count http php net function count en tant que modificateur pour d finir la taille du select lt select name customer_id size cust_names count gt html_options values cust_ids output Scust_names selected S customer_id lt select gt L exemple ci dessous affichera lt select name customer_id gt lt option label Joe Schmoe value 56 gt Joe Schmoe lt option gt lt option label Jack Smith value 92 selected selected
97. ad edit i tiernos 62 7 4 fonction config_load avec section ss 63 79 Lattrib t Cems y eao soon Tete mdse de Sea peony sass ey var Mn ant te art 64 7 6 Utilisation des attributs item et key sise 65 7 7 foreach avec un attribut associatif item 66 7 8 foreach avec 1temet Key iris nee A es 67 7 9 Exemple d une base de donn es avec foreachelse coocooccoccocnoconcnoconcnoroncnnroncnoroncnarononns 68 TAO Exemple avec TRAE ir adie weed fab ELO no de gel iia 68 1 11 Ex mple avec Tte rat ion et Index aise often pais Mea Nues ss 69 1 12 Exemple avec fIr rot nera a nn obs exc ne en I ea nd ta 69 TAS Exemple avec LasE rss tnt tatoo on at in ot Monts 69 TAd Exe mple avec Coralie dinde chu idee dees chives asst aed an dt di du 70 LAD Instruction Css nt va frise 72 7 16 Plus d exemples avec Miri en as Second eens tonne mit tee der 73 EAT Exemple ayec Amelde esse E S teste ne sns dr osent ent ee 74 7 18 Fonction include passage de variables cece cece cece cece cn eeea cece cece cena cen eeneeeneeeeeeenes 74 7 19 include et assignement une variable oooocoocnocnocnncnoconcnononcnoroncnoroncnoroncnoroncnnroncnnrones 75 7 20 Divers include exemple de ressource template cece cece cece eee ceeeceeece teen eeeu sean eenes 75 1 21 Fonction include php st dns evens verdes in ste lens es cee 77 7 22 Fonction ihs rt siemens ennemie E vet beets Me aa ee ee eee wade enr eves 78 1 23 de
98. ajuscule 32 Modificateurs de variables cat Example 5 2 Mise en majuscule lt php Ssmarty gt assign titreArticle L 2 gt Ot le template est StitreArticle StitreArticle capitalize StitreArticle capitalize true Affichera nouveau php5 est vraiment performant Le nouveau php5 est vraiment performant Le Nouveau php5 Est Vraiment Performant Le Nouveau Php5 Est Vraiment Performant Voir aussi lower et upper Cette valeur est concat n e a la variable donn e Position du Type Requis cat Description param tre 1 chaine de Non empty Valeur concat ner caract res la variable donn e 33 re Modificateurs de variables Example 5 3 cat lt php Ssmarty gt assign articleTitle 2 gt Ot le template est SarticleTitle cat Affichera Les devins ont pr vus qu count_characters demain Les devins ont pr vus que le mond mond Compte le nombre de caract res dans une variable xistera toujours demain xistera touj Position du Type Requis Defaut Description param tre 1 boolean Non FALSE Si l on doit inclure les espaces dans le compte 34 Modificateurs de variables Example 5 4 count_characters lt php Ssmarty gt assign titreArticle Vagues de froid li es la temp rature 2 gt Ot le template est titreArt
99. aleur de l attribut href de l image Si le lien est fourni une balise lt a href LINKVALUE gt lt a gt sera plac e autour de la balise de l image e path_prefix est un pr fixe optionnel que vous pouvez fournir Il est utile si vous voulez fournir un nom de serveur diff rent pour l image e Tous les param tres qui ne sont pas dans la liste ci dessus sont affich s sous la forme d une paire nom valeur dans la balise lt img gt cr e Note technique html_image requiert un acc s au disque dur pour lire l image et calculer ses dimensions Si vous n utilisez pas un cache il est g n ralement pr f rable d viter d utiliser html_image et de laisser les balises images statiques pour de meilleures performances Example 8 11 Exemple avec html_image html_image file pumpkin Jpg html_image file path from docroot pumpkin jpg html_image file path relative to currdir pumpkin jpg L affichage possible du template ci dessus pourrait tre lt img src pumpkin jpg alt width 44 height 68 gt lt img src path from docroot pumpkin jpg alt width 44 height 68 gt lt img src path relative to currdir pumpkin jpg alt width 44 height 68 html_options html_options est une fonction personnalis e qui cr e un groupe d options avec les donn es fournies Elle prend en charge les l ments s lectionn s par d faut Nom attribut Type Requis Defaut Description values arr
100. alise ouvrante d une fonction de bloc peut avoir des attributs Tous les attributs pass s par le template aux fonctions de templates sont contenus dans le tableau associatif Sparams Votre fonction a aussi acc s aux attributs de la balise ouvrante quand c est la balise fermante qui est ex cut e La valeur de la variable Scontent est diff rente selon si votre fonction est appel e pour la balise ouvrante ou la balise fermante Si c est pour la balise ouvrante elle sera NULL et si c est la balise fermante elle sera gale au contenu du bloc de template Notez que le bloc de template aura d j t ex cut par Smarty vous recevrez donc la sortie du template et non sa source Le param tre repeat est pass par r f rence la fonction d impl mentation et fournit la possibilit de contr ler le nombre d affichage du bloc Par d faut repeat vaut TRUE lors du premier appel la fonction de bloc le bloc d ouverture du tag et FALSE lors de tous les autres appels la fonction de bloc le bloc de fermeture du tag Chaque fois que la fonction d impl mentation retourne avec le param tre Srepeat vallant TRUE le contenu situ func func est valu et la fonction d impl mentation est appel une nouvelle fois avec le nouveau bloc de contenu en tant que param tre Scontent Si vous imbriqu des fonctions de bloc il est possible de connaitre la fonction de bloc parente grace a la variable Ssmarty gt _tag_stack Fa tes un
101. amp amp empty Stpl_file les efface toutes Sresults mysql_query delete from CACHE_PAGES else Sresults mysql_query delete from CACH if results A PAGES where CacheID SCacheID Ssmarty_obj gt _trigger_error_msg cache_handler query failed Sreturn Sresults break default erreur action inconnue Ssmarty_obj gt _trigger_error_msg cache_handler unknown action Saction Sreturn false break mysql_close link return Sreturn 2 gt 216 Fonctionnalit s avanc es Ressources Les templates peuvent provenir d une grande vari t de ressources Quand vous affichez display ou r cup rez fetch un template ou quand vous incluez un template dans un autre template vous fournissez un type de ressource suivi par le chemin appropri et le nom du template Si une ressource n est pas explicitement donn e la valeur de la variable Sdefault_resource_type sera utilis e Templates depuis template_dir Les templates du r pertoire t emplate_dir n ont pas besoin d une ressource template bien que vous puissiez utiliser la ressource file pour tre coh rent Vous n avez qu fournir le chemin vers le template que vous voulez utiliser relatif au r pertoire racine Stemplate dir Example 15 6 Utilisation de templates depuis template dir lt php Ssmarty gt display index tpl Ssmarty gt display admin menu tpl1
102. amp Ssmarty_obj on suppose que tous les templates sont svrs return true function db_get_trusted Stpl_name amp Ssmarty_obj pas utilis e pour les templates dans notre cas enregistre le nom de ressource db Ssmarty gt register_resource db array db_get_template db_get_timestamp db_get_secure db_get_trusted utilise la ressource depuis le script PHP LED saih PERE RRS Am bE ITA ion tpl 219 Fonctionnalit s avanc es Fonction de gestion de template par d faut Vous pouvez sp cifier une fonction qui sera utilis e pour r cup rer le contenu d un template dans le cas ou le template ne peut pas tre r cup r depuis sa ressource Une utilisation possible est la cr ation de templates la vol e Example 15 10 utilisation de la fonction de gestion de template par d faut lt php mettez cette fonction quelque part dans votre application function make_template Sresource_type resource_name amp Stemplate_source amp Stempl amp Ssmarty_obj if Sresource_type file if is_readable resource_name cr e le fichier de templat t renvoie le contenu Stemplate_source Ceci est un nouveau template Stemplate_timestamp time Ssmarty_obj gt _write_file resource_name Stemplate_source return true else pas un fichier return false r gle la fonction par d faut Ssmarty gt default_template_han
103. amp Ssql gt record tpl_times return true else retur n false function smarty_resource_db_secure tpl_name suppose que tous les templates sont svrs return true function smarty_resource_db_trusted tpl_name inutilis e pour les templates e template LA amp Stpl_timestamp amp Ssmarty imestamp tamp amp smarty amp smarty 234 Etendre Smarty avec des plugins Voir aussi register_resource et unregister_resource Insertions Les plugins d insertion sont utilis s pour impl menter les fonctions qui sont appel es par les balises insert dans les templates string smarty_insert_name Sparams amp smarty array Sparams object amp Ssmarty Le premier param tre pass la fonction est une tableau associatif d attributs La fonction d insertion est suppos e retourner le r sultat qui sera substitu a la balise insert dans le template Example 16 11 Plugin d insertion lt php Smarty plugin Fichier insert time php Type temps Nom time R le Insert la date heure courante conform ment au format XA AA A F KF gt function smarty_insert_time Sparams amp Ssmarty if empty Sparams format Ssmarty gt trigger_error insert time missing format parameter return return strftime Sparams format 235 Part IV Appendices Table of Contents 17 Diagnostic d
104. an lt label for id_1003 gt lt input type radio name id value 1003 id id_1003 gt Cha 114 Fonctions utilisateur Example 8 18 html_radios Exemple avec une base de donn es e g PEAR ou ADODB lt php Ssql select type_id types from contact_types order by type Ssmarty gt assign types db gt getAssoc sql Ssql select contact_id name email contact_type_id from contacts where contact_id contact_id Ssmarty gt assign contact db gt getRow sql 2 gt La variable assign e depuis la base de donn es ci dessus sera affich e avec le template html_radios name contact_type_id options Scontact_types selected contact contact_type_id separator lt br gt Voir aussi html_checkboxes et html_options html select_date html_select_date est une fonction personnalis e qui cr e des listes d roulantes pour saisir la date Elle peut afficher n importe quel jour mois et ann e Tous les param tres qui ne sont pas dans la liste ci dessous sont affich s sous la forme pair nom valeur dans les balises lt select gt des jours mois et ann es Nom attribut Type Requis D faut Description prefix cha ne de Non Date_ Avec quoi pr fixer caract res le nom de variable time timestamp Non la date courante La date heure YYYY MM DD au format unix utiliser YYYY MM DD format start_year cha ne de Non current year La premi re ann e caract res dans la list
105. aram content amp Ssmarty return Scontent Ssmarty gt register_block dynamic smarty_block_dynamic false Ssmarty gt display index tpl1 2 gt O index tpl contient Cr ation de la page 0 date_format SD H M S dynamic Heure actuelle 0 date_format SD H 3M S faites quelque chose ici dynamic Lors du rechargement de la page vous remarquerez que les deux dates sont diff rentes L une est dynamic et l autre est static Vous pouvez faire ce que vous voulez entre dynamic dynamic et tre stirs que cela ne sera pas mis en cache comme le reste de la page 210 Chapter 15 Fonctionnalites avancees Objets Smarty donne l acc s aux objets http php net object PHP travers les templates Il y a 2 moyens d y avoir acc s e Le premier consiste allouer les objets au template puis de les utiliser avec une syntaxe similaire a celles des fonctions personnalis es e Le deuxi me moyen consiste assigner des objets aux templates et de les utiliser comme n importe quelle variable La premi re m thode a une syntaxe beaucoup plus sympathique Elle est aussi plus s curis e puisqu un objet allou ne peut avoir acc s qu a certaines m thodes et propri t s N anmoins un objet allou ne peut pas avoir de lien sur lui m me ou tre mis dans un tableau d objet etc Vous devez choisir la m thode qui correspond a vos besoins mais tGchez d u
106. ariable st r galement venir d une requ te de base de donn es lt php Sstr Le nom du serveur est S Ssmarty server SERVER NAME upper at Ssmarty server SERVER_ADDR Ssmarty gt assign foo str 2 gt Ot le template est eval var Sfoo fetch fetch est utilis pour r cup rer des fichiers depuis le syst me de fichier local depuis un serveur http ou ftp et en afficher le contenu Si le nom du fichier commence par ht tp la page internet sera r cup r e puis affich e Note Ceci ne supporte pas les redirections http Assurez vous d inclure les slash de fin sur votre page web si n cessaire e Si le nom du fichier commence par ftp le fichier sera r cup r depuis le serveur ftp et affich e Pour les fichiers du syst me local le chemin doit tre absolu ou relatif au chemin d ex cution du script PHP Note Si la variable de template security est activ e et que vous r cup rez un fichier depuis le syst me de fichiers local fetch ne permettra que les fichiers se trouvant dans un des dossiers d finis dans les dossiers s curis s e Si l attribut assign est d fini l affichage de la fonction fetch sera assign e cette variable de template au lieu d tre affich e dans le template Nom attribut Type Requis Defaut Description file chaine de Oui n a Le fichier site http caract res ou ftp r cup rer 103
107. ases de donn es LDAP m moire partag e sockets etc Il y au total quatre fonctions qui ont besoin d tre enregistr es pour chaque type de ressource Chaque fonction re oit le nom de la ressource demand e comme premier param tre et l objet Smarty comme dernier param tre Les autres param tres d pendent de la fonction bool smarty resource name source rsrc name amp source amp smarty string rsrc_ name string amp Ssource object amp Ssmarty bool smarty resource name timestamp rsrc name timestamp amp smarty string rsrc_ name int amp Stimestamp object amp Ssmarty bool smarty resource name secure rsrc name amp smarty string rsrc_ name object amp Ssmarty bool smarty resource name trusted Srsrc name amp smarty 232 Etendre Smarty avec des plugins string rsrc_ name object amp Ssmarty e La premi re fonction est suppos e r cup rer la ressource Son second param tre est une variable pass e par r f rence o le r sultat doit tre stock La fonction est suppos e retourner TRUE si elle r ussit r cup rer la ressource et FALSE sinon e La seconde fonction est suppos e r cup rer la date de derni re modification de la ressource demand e comme un timestamp UNIX Le second param tre est une variable pass e par r f rence dans laquelle la date doit tre stock e La fonction est suppos e renvoyer TRUE si elle r ussit r cup rer la date e
108. ast lt tr gt lt td gt lt td gt lt td gt Ssmarty section customer total customers lt td gt lt tr gt lt table gt Cifti section rownum rownum contient l it ration courante de la boucle commen ant un C est un alias de iteration ils fonctionnent exactement de la m me fa on loop loop contient le dernier index de la boucle de la section Il peut tre utilis dans ou apr s la section 93 Fonctions natives Example 7 41 Exemple avec la propri t loop section name customer loop Scustid Ssmarty section customer index id Scustid customer lt br gt section There are smarty section customer loop customers shown above L exemple ci dessus affichera O id 1000 lt br gt 1 id 1001 lt br gt 2 id 1002 lt br gt There are 3 customers shown above Show show est utilis en tant que param tre la section et est une valeur bool enne S il vaut FALSE la section ne sera pas affich e S il y a un sectionelse il sera affich de fa on alternative 94 Fonctions natives Example 7 42 Exemple avec la propri t show Une valeur bool enne show_customer_info est pass e depuis l application PHP pour r guler l affichage ou non de cette section section name customer loop Scustomers show Sshow_customer_info Ssmarty section customer rownum id Scustomers customer lt br gt section if Ssmarty section customer show the section was sh
109. ates header tpl chemin absolu Windows on DOIT utiliser le pr fixe file Ssmarty gt display file C www pub templates header tpl1 inclue partir de la ressource template nomm e db Ssmarty gt display db header tpl1 2 gt Voir aussi fet ch et template_exists 172 M thodes Name fetch Retourne le r sultat du template Description string fetch string template string cache_id string Scompile_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 cache iden deuxi me param tre Reportez vous la section cache pour plus de renseignements En tant que troisi me param tre optionnel vous pouvez passer un identifiant de compilation Scompile id C est au cas o vous voudriez compiler plusieurs versions du m me template par exemple pour avoir des templates compil s pour diff rents langages Une autre utilit pour l identifiant de compilation compile_id est lorsque vous utilisez plus d un template dir mais seulement un Scompile dir D finissez un Scompile_id s par pour chaque template dir sinon les templates du m me nom s effaceront Vous pouvez galement d finir la variable compile_id une seule fois plut t que de la passer chaque appel la fonction 173 M thodes Example 13 14 E
110. ay 9 gt Tennis 3 gt Natation 8 gt Programmation Ssmarty gt assign myArray Sarr 2 gt Le template affiche le tableau myArray comme paire cl valeur comme la fonction PHP foreach http php net foreach lt ul gt foreach from myArray key k item v lt li gt Sk Sv lt li gt foreach lt ul gt L exemple ci dessus affichera lt ul gt lt 1i gt 9 Tennis lt li gt lt 1i gt 3 Natation lt li gt lt 1i gt 8 Programmation lt 1li gt lt ul gt 65 Fonctions natives Example 7 7 foreach avec un attribut associatif item lt php Sitems_list array 23 gt array no gt 2456 label gt Salad 96 gt array no gt 4889 label gt Cream Ssmarty gt assign items Sitems_list 2 gt Le template affiche items avec myId dans l URL lt ul gt foreach from Sitems key myId item i lt li gt lt a href item php id SmyId gt Si no i label lt 1i gt foreach lt ul gt L exemple ci dessus affichera lt ul gt lt li gt lt a href item php id 23 gt 2456 Salad lt 1i gt lt li gt lt a href item php id 96 gt 4889 Cream lt 1i gt lt ul gt 66 Fonctions natives Example 7 8 foreach avec item et key Assigne un tableau Smarty la cl contient la cl pour chaque valeur de la boucle lt php Ssmarty gt assign contacts array array phone gt l fax gt 2 cell gt 3
111. ay Oui moins que n a Un tableau de vous n utilisiez valeurs pour les l attribut options listes d roulantes output array Oui 4 moins que n a Un tableau de vous n utilisiez libell s pour la liste l attribut options d roulante selected cha ne de Non empty Les l ments caract res tableau s lectionn s 108 Fonctions utilisateur Nom attribut Type Requis Defaut Description options Tableau associatif Oui moins que n a Un tableau vous n utilisiez associatif valeur option et values libell name chaine de Non empty Nom du goupe caract res d options e Les attributs requis sont values et output moins que vous n utilisiez options la place e Si l attribut optionnel name est fourni les balises lt select gt lt select gt seront cr es sinon UNIQUEMENT la liste lt option gt sera g n r e e Si la valeur fournie est un tableau il sera trait comme un lt optgroup gt HTML et affichera les groupes La r cursivit est support e avec lt opt group gt e Tous les param tres qui ne sont pas dans la liste ci dessus sont affich s sous la forme de paire nom valeur dans la balise lt select gt Ils seront ignor s si le param tre optionnel name n est pas fourni e Tous les affichages sont conformes XHTML Example 8 12 Un tableau associatif avec l attribut options lt php Ssmarty gt assign myOptions array 1800 gt Joe Schmoe 9904 gt J
112. bgcolor dddddd Ssmarty gt display index tpl 2 gt Les variables assign es depuis PHP peuvent tre affich es comme le d montre cet exemple Premier exemple html_table loop Sdata lt table border 1 gt lt tbody gt lt tr gt lt td gt 1 lt td gt lt td gt 2 lt td gt lt td gt 3 lt td gt lt tr gt lt tr gt lt td gt 4 lt td gt lt td gt 5 lt td gt lt td gt 6 lt td gt lt tr gt lt tr gt lt td gt 7 lt td gt lt td gt 8 lt td gt lt td gt 9 lt td gt lt tr gt lt tbody gt lt table gt Deuxiem xemple html_table loop data cols 4 table_attr border 0 lt table border 0 gt lt tbody gt lt tr gt lt td gt 1 lt td gt lt td gt 2 lt td gt lt td gt 3 lt td gt lt td gt 4 lt td gt lt tr gt lt tr gt lt td gt 5 lt td gt lt td gt 6 lt td gt lt td gt 7 lt td gt lt td gt 8 lt td gt lt tr gt lt tr gt lt td gt 9 lt td gt lt td gt nbsp lt td gt lt td gt nbsp lt td gt lt td gt nbsp lt td gt lt tr gt lt tbody gt lt table gt Troisi me exemple html_table loop data cols first second third fourth tr_attr Str lt table border 1 gt lt thead gt lt br gt lt th gt first lt th gt lt th gt second lt th gt lt th gt third lt th gt lt th gt fourth lt th gt lt tr gt lt thead gt lt tbody gt lt tr bgcolor eeeeee gt lt td gt 1 lt td gt lt td gt 2 lt td gt lt td gt 3 lt td gt lt td
113. ble on assigne Scontents get_database_contents Ssmarty gt assign contents Ssmarty gt display index tpl1 2 gt Vous pouvez rendre dynamiques seulement certaines parties d une page avec la fonction de template insert Imaginons que toute une page doit tre mise en cache part une banni re en bas droite En utilisant une fonction insert pour la banni re vous pouvez garder cet l ment dynamique dans le contenu qui est en cache Reportez vous a la documentation insert pour plus de d tails ainsi que des exemples Vous pouvez effacer tous les fichiers du cache avec la fonction clear_a11_cache ou de fa on individuelle ou par groupe avec la fonction clear_cache Example 14 5 Nettoyage du cache lt php require Smarty class php Ssmarty new Smarty Ssmarty gt caching 1 efface le fichier de cache du template index tpl Ssmarty gt clear_cache index tpl1 efface tous les fichiers du cache smarty gt clear_all_cache Ssmarty gt display index tpl 2 gt 205 Cache Caches multiples pour une seule page Vous pouvez avoir plusieurs fichiers de caches pour un m me appel aux fonctions display ou fetch Imaginons qu un appel a display index tpl puisse avoir plusieurs r sultats en fonction de certaines conditions et que vous vouliez des fichiers de cache s par s pour chacun d eux Vous pouvez faire cel en passant un identifiant de cache
114. bligatoire ni conseill v que le moteur est extensible Qu est ce que Smarty Support de cache int gr Sources de templates arbitraires Fonctions de gestion de cache personnalisables Architecture de plugins Chapter 2 Installation Ce dont vous avez besoin Smarty n cessite un serveur Web utilisant PHP 4 0 6 ou sup rieur Installation de base Copiez les fichiers biblioth ques de Smarty du sous dossier 1ibs de la distribution un emplacement accessible 4 PHP Ce sont des fichiers PHP que vous NE DEVEZ PAS modifier Ils sont partag s par toutes les applications et ne seront mis jour que lorsque vous installerez une nouvelle version de Smarty Example 2 1 fichiers n cessaires de la biblioth que SMARTY Smarty class php Smarty_Compiler class php Config_File class php debug tpl internals php tous plugins php tous doivent tre s r peut tre votre site n a besoin seulement q Smarty utilise une constante http php net define PHP appel e SMARTY_DIR qui repr sente le chemin complet de la biblioth que Smarty En fait si votre application trouve le fichier Smarty class php vous n aurez pas besoin de d finir la variable SMART Y_DIR Smarty s en chargera pour vous En revanche si Smarty class php n est pas dans votre r pertoire d inclusion ou que vous ne donnez pas un chemin absolu votre application vous devez d finir SMARTY_DIR explicitement SMARTY_DIR doit avoir tre
115. cache_lifetime pour d terminer si le fichier de cache a expir e Une valeur de 2 indique Smarty d utiliser la valeur Scache_lifetime sp cifi e 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 e Si Scompile_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 e Si force_compi le est actif le contenu du cache est toujours reg n r Voir aussi Scache_dir Scache_lifetime Scache_handler_func Scache_modified_check is_cached et la section sur le cache 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 Ce dossier doit tre accessible en criture par le serveur web Voir l installation pour plus d informations Vous pouvez aussi utiliser votre propre fonction de gestion de cache personnalis pour contr ler les fichiers de cache qui ignorera cette configuration Voir aussi Suse_sub_dirs 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 techniqu
116. ceeeee teen seen eeea een eeaeeegs 93 1 41 Exemple avec la propri t POO sites nan insu nent tennis tete se 94 7 42 Exemple avec la propri t Show ses 95 T43 Exempleavec la propri t total eiser errn it sonate sonner tentes dette 95 TAA Balises MP a rd E E E E E S 96 E O O des de E E anes 97 8 2 assign avec quelques fonctions math matiques oocooocnnccnnccnncnnncnnccnnccnnccnnccnnccnnconaconncnnnss 97 8 3 Acc s aux variables assign depuis un script PHP 98 8 4 Counter A anni en M nn yy haley Ro einer 99 SED LA CO LES PR RE NN 101 8 62 Val A st Me pub ase UD ele thea NE None M an nomads 102 8 unautre exemple avec teval kanian tante liinda date dignos 103 8 8 Exempe avec fetch j eironi o cealaetvedons pevediasveteacweys codecs ein one dade seveders eve 104 9 9 html CHECKBOXES ln rene iia vey 106 8 10 Exemple avec une base de donn es eg PEAR ou ADODB 1 0 cece ee eeceeeee ener eens 107 1X Smarty le moteur et compilateur de template PHP 8 11 Ex mpl avec html Image ss tasses sign ends indiennes ENSERES ERPIN 108 8 12 Un tableau associatif avec l attribut options ss 109 8 13 Tableaux s par s pour values et ouptut ss 110 8 14 Exemple avec une base de donn es e g ADODB ou PEAR 111 8 15 Exemple avec lt OpterOup gt A ne dns cower dosh sume season tess seb ese sewetences tence st 11
117. ci dessus affichera lt tr bgcolor eeeeee gt lt td gt 1 lt td gt lt tr gt lt tr bgcolor d0d0d0 gt lt td gt 2 lt td gt lt tr gt lt tr bgcolor eeeeee gt lt td gt 3 lt td gt lt tr gt debug debug am ne la console de d bogage sur la page Fonctionne quelle que soit la valeur du param tre debug de Smarty Comme ce dernier est appel lors de l ex cution il n est capable d afficher que les variables assign es au template et non les templates en cours d utilisation Toutefois vous voyez toutes les variables disponibles pour le template courant Nom attribut Type Requis Defaut Description output cha ne de Non javascript Type de sortie html caract res ou javascript Voir aussi la console de d bogage eval eval value une variable comme si cette derni re tait un template Peut tre utile pour embarquer des balises de templates ou des variables de template dans des variables ou des balises variables dans des variables de fichiers de configuration Si vous d finissez l attribut assign la sortie sera assign e la variable de template d sign e plut t que d tre affich e dans le template Nom attribut Type Requis Defaut Description var mixed Oui n a Variable ou cha ne de caract res valuer 101 Fonctions utilisateur Nom attribut Type Requis Defaut Description assign chaine de Non n a L
118. ct res balise lt table gt th_attr cha ne de No empty Attributs pour caract res les balises lt th gt les tableaux sont parcourus tr_attr chaine de Non empty Attributs pour caract res les balises lt tr gt les tableaux sont parcourus td_attr cha ne de Non empty Attributs pour caract res les balises lt td gt les tableaux sont parcourus trailpad cha ne de Non amp nbsp Valeur avec caract res laquelle remplir les cellules restantes de la derni re ligne si il y ena hdir cha ne de Non right Direction du rendu caract res Les valeurs possibles sont right left to right left right to left 124 Fonctions utilisateur Nom de l attribut Type Requis D faut Description vdir chaine de Non down Direction des caract res colonnes lors du rendu Les valeurs possibles sont down top to bottom up bottom to top L attribut cols d termine le nombre de colonnes dans le tableau Les valeurs table_attr tr_attret td_attr d terminent les attributs fournis dans les balises lt table gt lt tr gt et lt td gt Si tr_attrou td_attrest un tableau il sera parcourru trailpad est la valeur utilis e pour compl ter les cellules vides de la derni re ligne s il y en a 125 Fonctions utilisateur Example 8 22 html_table lt php Ssmarty gt assign data array 1 2 3 4 5 6 7 8 9 Ssmarty gt assign tr array bgcolor eeeeee
119. culs directement dans PHP et assignez le r sultat au template Evitez co t que co t les appels r p titifs la fonction math comme on pourait le faire une une boucle section Nom attribut Type Requis D faut Description equation cha ne de Oui n a L op ration caract res x cuter format cha ne de Non n a Le format du caract res r sultat sprintf var numeric Oui n a Les variables de l op ration assign cha ne de Non n a Variable de caract res template dans laquelle la sortie sera assign e var numeric Oui n a Valeurs des variables de l op ration 129 Fonctions utilisateur Example 8 24 math a Exemple Sheight 4 width 5 math equation x y x Sheight y Swidth L exemple ci dessus affichera Exemple b Srow_height 10 row_ width 20 col_div 2 assigned in template math equation height width division height row_ height width Srow_width division col_div L exemple ci dessus affichera 100 Exemple c vous pouvez utiliser des parenth ses math equation x y z x 2 y 10 z 2 L exemple ci dessus affichera Exemple d vous pouvez d finir un format sprintf pour l affichage math equation x y x 4 4444 y 5 0000 format 2f L exemple ci dessus affichera 9 44 130 Fonctions utilisateur popup popup est utilis pour cr er une
120. d une recherche dans une base de donn es e g ADODB ou PEAR sont assign s Smarty lt php Ssql select id name home cell email from contacts where name like foo Ssmarty gt assign contacts S db gt getAll sql 2 gt Le template pour afficher le r sultat de la base de donn es dans un tableau HTML lt table gt lt tr gt lt th gt amp nbsp lt th gt lt th gt Name gt lt th gt lt th gt Home lt th gt lt th gt Cell lt th gt lt th gt Email lt th gt lt tr gt section name co loop contacts lt tr gt lt td gt lt a href view php id contacts co id gt view lt a gt lt td gt lt td gt contacts co name lt td gt lt td gt contacts co home lt td gt lt td gt contacts co cell lt td gt lt td gt S contacts co email lt td gt lt tr gt sectionelse lt tr gt lt td colspan 5 gt Aucun l ment n a t trouv lt td gt lt tr gt section lt table gt index index contient l index courant du tableau en commen ant par z ro ou par start s il est fourni Il s incr mente d un en un ou de step s il est fourni Note technique Si les propri t s step et start ne sont pas modifi s alors le fonctionnement est le m me que celui de la propri t iteration mise part qu il commence z ro au lieu de un 89 Fonctions natives Example 7 37 Exemple avec la propri t index FYI Scustid customer index et custid
121. danse A EEA EER 190 r pist r TESOUCE nnn aeien era hv cunts nn ner tirent 191 wisser CON Lido Sasi cos eee den A RE set nn Era Le se Nr Re 192 template EXI O Se A den eI ee i nn Tee 193 UNE Sister Block screens ein send ant REEE 194 unregister_compiler_function see 195 unregister TOCINA aldeas 196 unregister Modified ad 197 nregister obje ostia 198 unregister Outputtlllr ridad A eestor tone 199 UNLESIStEL POStELELO suitte rien seen ALAN lets st 200 unregister prefilterO ii A esate Race Met En fn By ee ses 201 UNTE Sister TES OULCE verenna inn cotorra ARO E entente nent eee tennis enr 202 14 Cache ss nn en cer NE ce pine EEE LE Antenne 203 Param ti r l cach s dela A eme DR AE ane 203 Caches multiples pour une seule page cece cece cece ence ce eece cece eeae eens eeneeeneeennees 206 Groupes de fichiers de Cache sponte deep a E E RS Monet tete 207 Contr ler la mise en cache des sorties des Plugins 208 15 FONCHONNAIILES aAV ANCES 02s cadeeetavces weed mentales T EE T tentes 211 OD ets io es nn ne a EP ed TN CRT ee ee dns 211 Filtres d pr CompilAtion rss mesrine eaes E bees 212 Filires d post compilation sus sente Mises e edad 213 Piltres d SOPUEC ns A ste RE Ar AE nn AT dent das 214 Fonction de gestion du cache se 215 RESSQUICES o 217 Templates depuis template_ir oooocccoooccnocinnnoconnnncnnnconnnncnnnnnnnnnccnnoncnnninnns 217 Templates par
122. de Signification Equivalent PHP alternative syntaxe eq a eq b galit l ne neq a neq b diff rence l gt gt a gt b sup rieur gt lt It a It b inf rieur a lt gt gte ge a ge b sup rieur ou gal gt lt Ite le a le b inf rieur ou gal lt a galit type et valeur not not a n gation mod a mod b modulo is not div by a is not div by 4 divisible par a b is not even a is not even est ou non un a 2 nombre pair 70 Fonctions natives Op rateur Syntaxe alternative Exemple de syntaxe Signification Equivalent PHP is not even by a is not even by b parit e de groupe a b 2 is not odd a is not odd est ou non un a 2 0 nombre impair is not odd by a is not odd by b Jest ou non un a b 2 0 groupe impair 71 Un exemple avec l op rateur or if name eq Fred or name eq Wilma Fonctions natives 7if Example 71kS dnsteuctionf s if name Fred name Wilma if les parenth ses sont autoris es if Samount lt 0 or Samount gt 1000 and Svolume gt minVolAmt if vous pouvez galement faire appel aux fonctions PHP if count Svar gt 0 if V rifie si c est un tableau if is_array foo V rifie si la variable est nulle if isset
123. de fond padx entier entier Non n a carte l image de fond du reste des l ments avec un espace horizontal pour le positionnement du texte Note c est un attribut deux param tres pady entier entier Non n a carte l image de fond du reste des l ments avec un espace vertical pour le positionnement du texte Note c est un attribut deux param tres fullhtml frame bool en chaine de caract res Non Non n a n a Vous autorise placer du code html en tant que contenu de la popup Le code html est attendu dans l attribut text Contr le la popup dans un cadre diff rent Voir la documentation d overlib pour plus de d tails sur cette fonction function cha ne de caract res Non n a Appelle la fonction javascript sp cifi e et prends sa valeur de retour comme texte devant tre affich dans la popup 134 Fonctions utilisateur Nom attribut Type Requis Defaut Description delay entier Non n a La popup se comporte comme une infobulle Elle disparaitra au bout d un certain d lai en millisecondes hauto bool en Non n a D termine automatiquement si la popup doit tre gauche ou droite de la souris vauto bool en Non n a D termine automatiquement si la popup doit tre au dessus ou au dessous de la souris Example 8 25 popup popup
124. disponibles que dans le contexte du fichier inclus Les attributs de variables crasent les variables courantes de template dans le cas o les noms sont les m mes e Toutes les valeurs de variables assign es sont restaur es une fois le contexte du template inclus referm s Ceci signifie que vous pouvez utiliser toutes les variables depuis un template inclus dans le template inclus Mais les modifications faites aux variables dans le template inclus ne sont pas visibles dans le template incluant par s l instruction include statement e Utilisez la synthaxe pour les ressources de template aux fichiers include en dehors du dossier Stemplate dir Nom attribut Type Requis Defaut Description file cha ne de Oui n a Le nom du template caract res inclure assign cha ne de Non n a Le nom de caract res la variable dans laquelle sera assign e la sortie de include var type de variable Non n a Variables passer au template 73 Fonctions natives Example 7 17 Exemple avec include lt html gt lt head gt lt title gt Stitle lt title gt lt head gt lt body gt include file page_header tpl Le corps du template va ici la variable tpl_nam st remplac par une valeur e g contact pl include file Stpl_name tpl include file page_footer tpl lt body gt lt html gt Example 7 18 Fonction include passage de variables includ
125. dler_func make template 2 gt 220 Chapter 16 Etendre Smarty avec des plugins La version 2 0 a introduit l architecture de plugin qui est utilis e pour pratiquement toutes les fonctionnalit s personnalisables de Smarty Ceci comprend e les fonctions e les modificateurs e les fonctions de blocs e les fonctions de compilation e les filtres de pr compilation e les filtres de post compilation e les filtres de sorties e les ressources e les insertions A part pour les ressources la compatibilit avec les anciennes fa ons d enregistrer les fonctions de gestion avec l API register_ est conserv e Si vous n avez pas utilis cette API et que vous avez la place directement modifi les variables de classes Scustom_funcs custom_mods et d autres vous devez alors modifier vos scripts pour utiliser l APT ou convertir vos fonctionnalit s personnalis es en plugins Comment fonctionnent les plugins Les plugins sont toujours charg s la demande Seuls les modificateurs de variables les ressources etc invoqu s dans les scripts de templates seront charg s De plus chaque plugin n est charg qu une fois et ce m me si vous avez plusieurs instances de Smarty qui tournent dans la m me requ te Les filtres de post pr compilation et les filtres de sortie sont des cas un peu sp ciaux Comme ils ne sont pas mentionn s dans les templates ils doivent tre d clar s ou charg s explicitement via les fonctions d
126. e Il n est pas conseill de mettre ce r pertoire dans l arborescence Web Voir aussi Scaching Suse_sub_dirs Scache_lifetime Scache_handler_func Scache_modified_check et la section sur le cache 151 Variables 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 e Scaching doit tre activ soit 1 ou 2 pour que cache lifetime ait une quelconque utilit e Avec une valeur de 1 le cache n expire jamais e Avec une valeur de 0 le cache est toujours reg n r utile a des fins de tests seulement Une meilleure fa on de d sactiver le cache est de mettre caching 0 e Si vous souhaitez donner a certains templates leur propre dur e de vie en cache vous pouvez le faire en r glant cachinga 2 puis cache_lifetime une unique valeur juste avant d appeler display oufetch 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 fa on individuelle ou group e avec la fonction clear_cache cache_handler_func Vous pouvez utiliser votre propre fonction de gestion du cache plut t que d utiliser celle livr e avec Smarty Scache_dir R f rez vous la section sur la fonction de gestion de cache personnalis e pour plus de d tails cache_modi
127. e d roulante soit le num ro de l ann e soit un nombre relatif l ann e courante N end_year cha ne de Non m me chose La derni re ann e caract res que start _ year dans la liste d roulante soit le num ro de l ann e 115 Fonctions utilisateur Nom attribut Type Requis D faut Description soit un nombre relatif l ann e courante N display_days boolean Non true Si l on souhaite afficher les jours ou pas display_months boolean Non true Si l on souhaite afficher les mois ou pas display_years boolean Non true Si l on souhaite afficher les ann es ou pas month_ format cha ne de Non B le format du mois caract res strftime day_format chaine de Non O2d Le format du jour caract res sprintf day_value_format chaine de Non Jod Le format de la caract res valeur du jour sprintf year_as_text boolean Non false S il faut afficher l ann e au format texte reverse_years boolean Non false Affiche les ann es dans l ordre inverse field_array chaine de Non null Si un nom caract res est donn la liste d roulante sera affich e de telle fa on que les r sultats seront retourn s PHP sous la forme nom Day jour nom Year ann e nom Month Mois day_size cha ne de Non null Ajoute un attribut caract res size la liste d roulante des jours month_size chaine de Non null Ajoute un attribut caract res si
128. e l API avant que le template ne soit ex cut L ordre dans lequel les filtres multiples d un m me type sont ex cut s d pend de l ordre dans lequel ils sont enregistr s ou charg s Le r pertoire de plugin peut tre une chaine de caract res contenant un chemin ou un tableau contenant de multiples chemins Pour installer un plugin placez le simplement dans un de ces dossiers et Smarty l utilisera automatiquement Conventions de nommage Les fichiers et les fonctions de plugins doivent suivre une convention de nommage tr s sp cifique pour tre localis s par Smarty Les fichiers de plugins doivent tre nomm s de la fa on suivante type nom php e O type est l une des valeurs suivantes e function e modifier e block e compiler 221 Etendre Smarty avec des plugins e prefilter e postfilter e outputfilter e resource e insert e Et nom doit tre un identifiant valide lettres nombres et underscore seulement voir les variables php http php net language variables e Quelques exemples function html_select_date php resource db php modifier spacify php Les fonctions de plugins dans les fichiers de plugins doivent tre nomm es de la fa on suivante smarty_type _nom e Les significations de type et de nom sont les m mes que pr c demment e Un exemple de nom de modificateur foo serait function smarty_modifier_foo Smarty donnera des messages d erreurs appropri s si le fichier de plugin
129. e de caract res cases cocher values array Oui moins que n a Un tableau de valeurs pour les cases cocher Un tableau de sortie pour les cases a cocher selected chaine de Non empty caract res tableau Les l ments coch s de la liste 104 Fonctions utilisateur Nom attribut Type Requis Defaut Description options Tableau associatif Oui moins que n a Un tableau vous n utilisiez associatif de valeurs values et output et sorties separator chaine de Non empty cha ne de caract re caract res pour s parer chaque case cocher assign cha ne de Non empty Assigne les balises caract res d un checkbox un tableau plut t que de les afficher labels bool en Non true Ajoute la balise lt label gt la sortie assign chaine de Non empty Assigne la sortie caract res un tableau dont chaque checkbox est un l ment e Les attributs requis sont values et output moins que vous utilisez options la place e Tous les affichages sont conformes XHTML e Tous les param tres qui ne sont pas dans la liste ci dessus sont affich s sous la forme de paires nom valeur dans chaque balise lt input gt cr es 105 Fonctions utilisateur Example 8 9 html_checkboxes lt php Ssmarty gt assign cust_ids array 1000 1001 1002 1003 Ssmarty gt assign cust_names array Joe Schmoe Jack Smith Jane Johnson
130. e file links tpl title Newest links links Slink_array body of template goes here include file footer tpl foo bar Le template ci dessus inclut l exemple links tpl lt div id box gt lt h3 gt title h3 gt lt ul gt foreach from links item 1 faites quelques choses ici lt foreach lt ul gt lt div gt 74 Fonctions natives Example 7 19 include et assignement une variable Cet exemple assigne le contenu de nav tpl la variable navbar qui est alors affich e en haut et en bas de la page lt body gt include file nav tpl assign navbar include file header tpl title Smarty is cool Snavbar le corps du template va ici Snavbar include file footer tpl lt body gt Example 7 20 Divers include exemple de ressource template chemin absolu include file usr local include templates header tpl chemin absolu m me chose include file file usr local include templates header tpl chemin absolu windows DOIT utiliser le pr fixe file include file file C www pub templates header tpl inclusion d une ressource template db include file db header tpl inclusion d un template Svariable eg Smodule contacts include file module tpl1 ne fonctionne pas avec des simples guillemets ie aucun substitution de variable include file Smodule tpl
131. e nom de la caract res variable PHP dans laquelle la sortie sera assign e Note technique e Les variables valu es sont trait es de la m me fa on que les templates Elles suivent les m mes r gles de traitement et de s curit comme si elles taient r ellement des templates e Les variables valu es sont compil es chaque invocation et la version compil e n est pas sauvegard e Toutefois si le cache est activ la sortie sera plac e en cache avec le reste du template Example 8 6 eval Le contenu du fichier de configuration setup conf setup conf emphstart lt strong gt emphend lt strong gt titre Bienvenue sur la homepage de Scompany ErrorVille Vous devez sp cifier un nom de emphstart ville emphend ErrorDept Vous devez sp cifier un emphstart d partement emphend Ot le template est config_load file setup conf eval var Sfoo eval var titre eval var ErrorVille eval var ErrorDept assign state_error state_error L exemple ci dessus affichera Ceci est le contenu de foo Bienvenue sur la homepage de FictifLand Vous devez sp cifier un nom de lt strong gt ville lt strong gt Vous devez sp cifier un lt strong gt d partement lt strong gt 102 Fonctions utilisateur Example 8 7 un autre exemple avec eval Ceci va afficher le nom du serveur en majuscule et son IP La v
132. e template et changer la couleur des l ments ou les classes css Avec un fichier de configuration il vous est possible de conserver la couleur dans un seul endroit puis de la mettre a jour une seule fois Example 9 1 Exemple de fichier de configuration variables globales titrePage Menu principal bodyBgColor 000000 tableBgColor 000000 rowBgColor 00ff00 client titrePage Infos client Login titrePage Login focus utilisateur Intro Une valeur qui tient sur plusieur lignes Vous devez la placer entre trois guillemets hidden section Database host mon example com db ADDRESSBOOK user php user pass foobar Les valeurs des variables de fichiers de configuration peuvent tre entre guillemets sans que cela soit n cessaire Si vous vouler utiliser des valeurs sur plusieurs lignes vous devrez les entourer de triples guillemets Vous pouvez ins rer des commentaires dans les fichiers de configuration en utilisant une syntaxe quelquonque non valide Nous recommandons l utilisation de di se en d but de ligne Cet exemple de fichier de configuration contient deux sections Les noms des sections sont entour s de crochets Les noms de section peuvent tre des chaines ne contenant aucun des symboles et Dans notre exemple les 4 variables du d but sont des variables dites globales qui ne sont pas contenue dans une section Ces variables sont toujours
133. each even numbered word you have read textformat et le script PHP utilisant la fonction PHP mail http php net function mail lt php R cup ration du contact depuis une base de donn es eg utilisation de pear ou ad query select name email login_id from contacts where contact_id contact_ Scontact db gt getRow sql Ssmarty gt assign contact Scontact mail Scontact email Subject Ssmarty gt fetch email_body tpl 2 gt Voir aussi fetch display eval et template_exists 175 M thodes Name get_config_vars Retourne la valeur de la variable de configuration pass e en param tre Description array get_config_vars string varname Si aucun param tre n est donn un tableau de toutes les variables de configuration charg es est retourn Example 13 16 Exemple avec get_config_vars lt php r cup re la variable de configuration charg e foo Sfoo smarty gt get_config_vars foo r cup re toutes les variables de configuration charg es Sall_config_vars smarty gt get_config_vars les affiche a l cran print _r all config _ vars 2 gt Voir aussi clear_config config_load config_load etget_template_vars 176 M thodes Name get_registered_object Retourne la r f rence d un objet enregistr Description array get_registered_object string object_name Utile quand
134. eceeeeeeeeaeeea seca esau sean eeans 240 Passage du titre un template d en t te oocooccoccnoccccnonncononocononoconococonorocononoronanonos 241 NS 242 WAP WME ic ON dis 243 F mplat s COMPOSANTS 55e saine o wen des tente sponsors tondeuses 245 Dissimuler les adresses email sirier sns rea eo E S ARS OE ES 246 TOs A A ON 247 20 BUGS at asco r dcan 248 vii List of Examples 2 1 fichiers n cessaires de la biblioth que SMARTY 5 2 2 Cr er une instance de Smarty issues 5 2 3 D finition manuelle de la constante SMARTY _DIR 0 0 cece cece cece ceseeeeeeeesceeeeeeeaeneeeeees 6 2 4 D finir le chemin absolu au fichier de la biblioth que ooooccoccnnccnnccnnconoconncnnncnnnonoronicnnos 6 2 5 Ajout du dossier contenant la biblioth que l include_path de PHP 6 2 6 Structure de fichiers ssh iio denota meute fente 7 2 7 r gler les permissions d acc s kerros s odos raes E PEE ep sppr PE RETE SES PESTERI ESEESE SE 8 2 8 Notre web www example com smarty templates index tpl 8 2 9 dition de web www example com docs livredor index php cccccccccsecsseescesseeseessseseeseens 9 2 10 dition de php includes livredor setup php 4 10 2 11 dition de web www example com docs livredor index php ooooocococococcnononncononononononnnonncnno 11 3 1 Commentaires da
135. elect gt lt select name StartDateYear gt lt option value 1995 gt 1995 lt option gt Phe ee coup lt option value 1999 gt 1999 lt option gt lt option value 2000 selected selected gt 2000 lt option gt lt option value 2001 gt 2001 lt option gt lt select gt Voir aussi html_select_time date_format Ssmarty nowet les astuces sur les dates html select_time html_select_time est une fonction personnalis e qui cr e des listes d roulantes pour saisir une heure Elle prends en charge l heure les minutes les secondes et le m ridian L attribut time accepte comme param tre diff rents formats Ils peuvent tre un timestamp unique une chaine respectant le format YYYYMMDDHHMMSS ou une chaine valide pour la fonction php strtotime http php net strtotime Nom attribut Type Requis D faut Description prefix chaine de Non Time_ Par quoi pr fixer la caract res variable time timestamp Non current time Quel jour heure utiliser display_hours boolean Non TRUE S il faut afficher l heure display_minutes boolean Non TRUE S il faut afficher les minutes display_seconds boolean Non TRUE S il faut afficher les secondes 120 Fonctions utilisateur Nom attribut Type Requis D faut Description display_meridian boolean Non TRUE S il faut afficher le m ridian am pm use_24 hours boolean Non TRUE S il faut utiliser l
136. ement au modificateur de variable date date_format des fins d affichage Notez que time http php net function time est appel chaque invocation i e un script qui prend 3 secondes s ex cuter avec Ssmarty now au d but et a la fin montrera les 3 secondes de diff rence Example 4 8 Utilisation de smarty now utilise le modificateur de variable date_format pour afficher la date et heure Ssmarty now date_format d Sm Y H M S smarty const Vous pouvez directement acc der aux constantes PHP Voir aussi les constantes smarty la constante d finie dans PHP define _ MY CONST_VAL CHERRIES Affiche la constante dans un template comme la sortie de la constante PHP dans le template Ssmarty const _MA_CONSTANTE_ smarty capture La sortie du template r alis e via capture capture peut tre r cup r e par l interm diaire de la variable Ssmarty capture Voir la section sur capture pour un exemple ce sujet smarty config La variable Ssmarty config peut tre utilis e pour d signer une variable d un fichier de configuration Ssmarty config foo est un synonyme de foo Voir la section config_load pour un exemple a ce sujet smarty section smarty foreach La variable section peut tre utilis e pour acc der aux propri t s des boucles Ssmarty section et Ssmarty foreach Voir la documentation de section et foreach Ils ont
137. ement utiliser des variables sous forme de tableaux associatifs assign es depuis PHP en en sp cifiant la clef apr s le symbole point 23 Variables Example 4 3 Acc der aux variables de tableaux associatifs lt php Ssmarty gt assign Contacts array fax gt 555 222 9876 email gt zaphod slartibartfast example com phone gt array home gt 555 444 3333 cell gt 555 111 1234 Ssmarty gt display index tpl 2 gt O index tpl est Contacts fax lt br gt SContacts email lt br gt vous pouvez afficher des tableaux de tableaux Contacts phone home lt br gt Contacts phone cell lt br gt Affichera 555 222 9876 lt br gt zaphod slartibartfast example com lt br gt 555 444 3333 lt br gt 555 111 1234 lt br gt Tableaux index s Vous pouvez utiliser des tableaux index s de la m me fa on que vous le faites en PHP 24 Variables Example 4 4 Acc s aux tableaux grace l index lt php Ssmarty gt assign Contacts array 555 222 9816 zaphod slartibartfast example com array 555 444 3333 555 111 1234 Ssmarty gt display index tpl1 2 gt O index tpl est Contacts 0 lt br gt Contacts 1 lt br gt Vous pouvez galement afficher des tableaux Contacts 2 0 lt br gt Contacts 2 1 lt br gt Affichera 555 222 9876 lt br gt zaphod slartibartfa
138. equis sont values et output moins que vous n utilisez options la place e Tous les affichages sont conformes XHTML e Tous les param tres qui ne sont pas dans la liste ci dessus sont affich s sous la forme de paire nom valeur dans la balise lt input gt cr es Example 8 16 html_radios Premi re exemple lt php Ssmarty gt assign cust_ids array 1000 1001 1002 1003 Ssmarty gt assign cust_names array Joe Schmoe Jack Smith Jane Johnson Charlie Brown LA Ssmarty gt assign customer_id 1001 2 gt Ot le template est html_radios name id values cust_ids output Scust_names selected customer_id separator lt br gt 113 Fonctions utilisateur Example 8 17 html_radios Deuxi me exemple lt php Ssmarty gt assign cust_radios array 1000 gt Joe Schmoe 1001 gt Jack Smith 1002 gt Jane Johnson 1003 gt Charlie Brown Ssmarty gt assign customer_id 1001 2 gt Ot le template est html_radios name id options cust_radios selected customer_id separator lt br gt Les deux exemples ci dessus afficheront lt label for id_1000 gt lt input type radio name id value 1000 id id_1000 gt Joe Schmoe lt label gt lt br lt label for id_1001 gt lt input type radio name id value 1001 id id_1001 check lt label for id_1002 gt lt input type radio name id value 1002 id id_1002 gt J
139. es rreurs essaient entente aan Sa R eeotews sense eta E EEG 238 Erreurs Smarty PHP a TR E N Re ss ye a aoe leven esta etes des 238 182 Trucs Ct astuces ect hes sv E E E sures s en sde prota cgsedoon esa rene den ees seemed ed anses 240 Gestion des variables non assign es ooooccnncconccnnocnnccnnccnronccnnconnccnnccnnconncnnncnnncnnncnnrenase 240 Gestion des variables par d faut ss annee ts D a e une 240 Passage du titre un template d en t te ooooocooccoccocnncnoconcnoroncnnroncnoroncnoroncnnroncnnronanarones 241 BETES RN 242 WAP WME 0000 ne 243 Templates composants erica cp ir rias poll densos 245 Dissimuler les adresses email ooooccnccnnccnnccnnccnnconoroncconccnnconnccnnccnnconnconncnnncnnncnnnnnnccnnss 246 19 Ressources here cases sseeeesd cies deeds ESPE tente vdsesas EEI OEE ESETI OES EEE AREEN 247 20 BUGS iii Siege EEEE EE debs sit Ut 248 237 Chapter 17 Diagnostic des erreurs Erreurs Smarty PHP Smarty peut identifier de nombreuses erreurs comme des attributs de balises manquants ou de noms de variables malform s Dans ce cas la vous verrez appara tre une erreur semblable Example 17 1 erreurs Smarty 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 Smarty vous indique le nom du template
140. est pass comme second argument De cette fa on vous pouvez utiliser ou modifier des informations sur l objet Smarty directement depuis votre fonction insert Note technique Il est possible d avoir des portions de template qui ne soient pas g rables par le cache M me si vous avez activ l option caching les balises insert ne feront pas partie du cache Elles retourneront un contenu dynamique chaque invocation de la page Cette m thode est tr s pratique pour des l ments tels que les bandeaux publicitaires les enqu tes la m t o les r sultats de recherche retours utilisateurs etc Voir aussi include 78 Fonctions natives Idelim rdelim ldelim et rdelim sont utilis s pour chapper les d limiteurs en tant que tels dans notre cas et Vous pouvez toujours utiliser literal literal pour chapper des blocks de texte e g Javascript ou css Voir aussi Ssmarty ldelim Example 7 23 Idelim rdelim Affiche les d limiteurs de template ldelim nomFonction rdelim est la fa on dont sont appel es les fonctions dans Sma Affichera nomFonction est la fa on dont sont appel es les fonctions dans Smarty Un autre exemple avec du javascript lt script language JavaScript gt function foo ldelim code rdelim lt script gt affichera lt script language JavaScript gt function foo code lt script gt 79 Fonctions natives
141. fen tre popup javascript popup_init DOIT tre appel en premier pour que cela fonctionne Nom attribut Type Requis Defaut Description text chaine de Oui n a Le texte code html caract res afficher dans la popup trigger cha ne de Non onMouseOver L v nement utilis caract res pour rendre la popup active onMouseOver ou onClick sticky bool en Non FALSE Rends la popup active jusqu a ce qu elle soit explicitement ferm e caption cha ne de Non n a D fini le libell du caract res titre fgcolor chaine de Non n a Couleur interne de caract res la popup bgcolor cha ne de Non n a Couleur de la caract res bordure de la popup textcolor cha ne de Non n a Couleur du texte caract res l int rieur de la popup capcolor cha ne de Non n a Couleur du libell caract res de la popup closecolor cha ne de Non n a Couleur du texte de caract res fermeture textfont cha ne de Non n a La police utiliser caract res dans le texte principal captionfont cha ne de Non n a La police utiliser caract res dans le libell closefont cha ne de Non n a La police pour le caract res texte de fermeture textsize cha ne de Non n a Taille de la police caract res texte prinicpal captionsize cha ne de Non n a Taille de la police caract res du libell closesize cha ne de Non n a Taille de la police caract res du bouton fermer width entier Non n a Longeur de la popup
142. fich 60 Fonctions natives Example 7 2 capture dans une variable de template Cet exemple d montre galement la fonction popup captur Votre IP est smarty server R capture lt a href Voir aussi Ssmarty capture eval fetch fetch et assign config_load config_load est utilise pour charger des variables variables depuis un fichier de configuration dans un template name some_content assig Le serveur est S Ssmarty server sl n popText ERVER_NAME upper sur smarty server sSl EMOT T _ADDR popup caption Information sur 1 serveur ERV ER_ADDR text SpopText gt Aide lt a gt Nom attribut Type Requis D faut Description file chaine de caract re Oui n a Le nom du fichier de configuration a inclure section chaine de caract re Non n a Le nom de la section charger scope chaine de caract re non local La fa on dont la port e des variables est d finie soit local parent ou global local signifie que la variable est charg e dans le contexte du template parent indique que la variable est disponible tant dans le template qui l a inclus que dans le template parent ayant r alis l inclusion du sous template global signifie que la variable est diponible dans tous les templates global bool en Non Si oui
143. fied_check Si cette variable est TRUE 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 la place du contenu Cela ne fonctionne qu avec du contenu mis en cache hors de la balise insert Voir aussi Scaching Scache_lifetime cache_handler_ func et la section sur le cache config_overwrite Si cette variable est TRUE par d faut 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 152 Variables Example 12 4 Tableau de variables de configuration Cet exemple utilise cycle pour afficher un tableau dont les lignes sont alternativement rouge verte as bleu avec Sconfig_overwrite FALSE Le fichier de configuration couleur des lignes rowColors FF0000 rowColors 00FF00 rowColors 0000FF Le template avec une boucle section lt table gt section name r loop Srows lt tr bgcolor cycle values rowColors gt LCA ji EC a lt td gt lt tr gt section lt table gt Voir aussi config_load get_config_vars clear_config config_load etles fichiers de configuration
144. ge d o on vient Vous pouvez passer le titre l en t te en tant qu attribut quand il est inclus Example 18 3 Passer le titre au template d en t te mainpage tpl Lorsque la page principal est construite le titre Man Page est pass au header tpl et sera utilis en tant que titre include file header tpl title Main Page le corps du template va ici include file footer tpl archives tpl Lorsque la page principal est construite le titre sera Archives Notez que dans cet exemple nous utilisons une variable du fichier archives_page conf au lieu d une variable classique config_load file archive_page conf include file header tpl title archivePageTitle corps du template ici include file footer tpl header tpl Notez que Smarty News est affich si la variable t it le n est pas d finie en utilisant le modificateur de variable par default lt html gt lt head gt lt title gt Stitle default Smarty News lt title gt lt head gt lt body gt footer tpl lt body gt lt html gt 241 Trucs et astuces Dates De fa on g n rale essayez de toujours passer les dates Smarty sous forme de timestamp http php net time Cela permet aux designers de templates d utiliser date_format pour avoir un contr le total sur le formatage des dates et de comparer facilement les dates entre elles Example 18 4 Utilisation de date_forma
145. gn var running_total value running_total some_array loop l some_ value 97 Fonctions utilisateur Example 8 3 Acc s aux variables assign depuis un script PHP Pour acc der aux variables assign depuis le script PHP utilisez get_template_vars Ci dessous le template qui cr e la variable foo assign var foo value Smarty Les variables de template ne sont disponibles que apr s durant l ex cution du template comme dans le script ci dessous lt php ceci n affichera rien car le template n a pas encore t ex cut echo smarty gt get_template_vars foo R cup re le template dans une variable Swhole_page smarty gt fetch index tpl Ceci affichera smarty car le template a t ex cut echo smarty gt get_template_vars foo Ssmarty gt assign foo Even smarter Ceci affichera Even smarter echo smarty gt get_template_vars foo 2 gt Les fonctions suivantes peuvent optionnellement assigner des variables de template capture include include_php insert counter cycle eval fetch math et textformat Voir aussi assign et get_template_vars counter counter affiche un compteur counter retient la valeur du compte 4 chaque it ration Vous pouvez adapter le nombre l intervale et la direction du compteur ainsi que d cider d afficher ou non les valeurs Vous pouvez lancer plusieurs compteurs simul
146. gule followupto cha ne de Non n a Adresses o caract res transmettre le message S parez les entr es par une virgule extra cha ne de Non n a Toute information caract res que vous souhaitez passer au lien par exemple une classe css 127 Fonctions utilisateur Example 8 23 Exemple avec mailto na mailto address moi example com a href mailto moi example com gt moi example com lt a gt A a mailto address moi example com text envoie moi un email a href mailto moi example com gt envoie moi un email lt a gt A mailto address moi example com encode javascript lt script type text javascript language javascript gt eval unescape S64 6f coup 61 3e 27 29 3b lt script gt mailto address moi example com encode hex lt a href mailto 6d 65 coup 3 6f 36d gt amp x6d amp coup x6f amp x6d lt a gt mailto address moi example com subject Hello to you lt a href mailto moi example com subject Hello 20to 20you s21 gt me example com lt a gt mailto address moi example com cc toi example com eux example com lt a href mailto moi example com cc toi example coms2Ceux example com gt moi example mailto address moi example com extra class email lt a href mailto moi example com class email gt moi example com lt a gt
147. he_lifetime 30 30 secondes Ssmarty gt display home tpl 2 gt Si Scompile_check est actif chaque fichier de template et de configuration qui a un rapport avec le fichier de cache sera v rifi pour d tecter une ventuelle modification Si l un de ces fichiers a t modifi depuis que le fichier de cache a t g n r le cache est imm diatement reg n r Ce processus est couteux donc pour des raisons de performances mettez ce param tre FALSE pour une application en production Example 14 3 Activation de compile_check lt php require Smarty class php Ssmarty new Smarty Ssmarty gt caching 1 Ssmarty gt compile_check true Ssmarty gt display index tpl 2 gt Si force_compi le est actif les fichiers de cache sont toujours reg n r s Ceci revient finalement d sactiver le cache Sforce compile est utilis des fins de d bogage un moyen plus efficace de d sactiver le cache est de r gler Scaching 0 204 Cache La fonction is_cached permet de tester si un template a ou non un fichier de cache valide Si vous disposez d un template en cache qui requiert une requ te une base de donn es vous pouvez utiliser cette m thode plut t que compile_check Example 14 4 Exemple avec is_cached lt php require Smarty class php Ssmarty new Smarty Ssmarty gt caching 1 if Ssmarty gt is_cached index tpl pas de cache disponi
148. horloge 24 heure minute _interval integer Non 1 Intervalle des minutes dans la liste d roulante second_interval integer Non 1 Intervalle des secondes dans la liste d roulante field_array chaine de Non n a Nom du tableau caract res dans lequel les valeures seront stock es all extra cha ne de Non null Ajoute des attributs caract res suppl mentaires aux balises select input hour _extra cha ne de Non null Ajoute des attributs caract res suppl mentaires aux balises select input de l heure minute extra cha ne de Non null Ajoute des attributs caract res suppl mentaires aux balises select input des minutes second_extra chaine de Non null Ajoute des attributs caract res suppl mentaires aux balises select input des secondes meridian_extra chaine de Non null Ajoute des attributs caract res suppl mentaires aux balises select input du m ridian 121 Fonctions utilisateur Example 8 21 html_select_time html_select_time use 24 hours true A 9 20 et 23 secondes du matin le template ci dessus affichera e 09 selected gt 09 lt option gt e 20 selected gt 20 lt option gt e 23 selected gt 23 lt option gt e am selected gt AM lt option gt lt select name Time_Hour gt lt option value 00 gt 00 lt option gt lt option value 01 gt 01 lt option gt coup lt option value 08 gt 08 lt option gt lt option va
149. icle titreArticle count_characters StitreArticle count_characters true Ce qui donne en sortie Vagues de froid li es a la temp rature 33 39 Voir aussi count_words count_sentences et count_paragraphs count_paragraphs Compte le nombre de paragraphes dans une variable 35 Modificateurs de variables Example 5 5 count_paragraphs lt php Ssmarty gt assign articleTitle War Dims Hope for Peace Child s Death Ruins Couple s Holiday n n Man is Fatally Slain Death Causes Loneliness Feeling of Isolation 2 gt Ot le template est TitreArticle TitreArticle count_paragraphs Affichera La guerre apporte la paix au prix de la vie des innocents 1 Voir aussi count_characters count_sentences et count_words count_sentences Compte le nombre de phrases dans une variable 36 Modificateurs de variables Example 5 6 count_sentences lt php Ssmarty gt assign articleTitle Two Soviet Ships Collide One Dies Enraged Cow Injures Farmer with Axe y 2 gt O le template est TitreArticle TitreArticle count_sentences Affichera Deux navires rentrent en collision Un des deux coule Des vaches enrag es blessent un fermier coups de haches 2 Voir aussi count_characters count_paragraphs et count_words count_words Compte le nombre de mots dans une variable 37 Modificateurs de variables Example 5 7
150. icle truncate 30 true titreArticle truncate 30 true SarticleTitle truncate 30 true true Ce qui donne en sortie Deux soeurs r unies apr s 18 ans de s paration Deux soeurs r unies apr s Deux soeurs r unies apr s Deux soeurs r unies apr s Deux soeurs r unies apr s 18 a Deux soeurs r unies apr s 1 Deux soeurs de s paration upper Met une variable en majuscules C est l quivalent de la fonction PHP st rtoupper http php net strtoupper 55 Modificateurs de variables Example 5 22 upper lt php Ssmarty gt assign titreArticle Si l attaque n est pas mise en place rapidement cela risque de durer longtemps 2 gt Ot le template est titreArticle titreArticlelupper Affichera Si l attaque n est pas mise en place rapidement cel risque de durer longtemps SI L ATTAQUE N EST PAS MISE EN PLACE RAPIDEMENT CEL RISQUE DE DURER LONGTEMPS Voir aussi lower et capitalize wordwrap Ajuste une cha ne de caract res une taille de colonne par d faut 80 Un second param tre optionnel vous permet de sp cifier la cha ne utiliser pour l ajustement la nouvelle ligne retour chariot n par d faut Par d faut wordwrap tente un ajustement la fin d un mot Si vous voulez autoriser le d coupage des mots pour un ajustement au caract re pr
151. ile string section Utilis e pour charger des donn es d un fichier de configuration 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 fetch et display Les variables de configuration charg es avec config_load sont globales Les fichiers de configuration sont aussi compil s pour une ex cution plus rapide et respecte les r glages de force_compileetde Scompile check Example 13 11 Exemple avec config_load lt php charge les variables de configuration et les assigne Ssmarty gt config_load my conf charge une section Ssmarty gt config_load my conf foobar 2 gt Voir aussi config_load get_config_vars clear_config et les variables de configuration 170 M thodes Name display Affiche le template Description void display string template string cache_id string compile_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 id Reportez vous la section cache pour plus de renseignements En tant que troisi me param tre optionnel vous pouvez passer un identifiant de compilation Scompile id C est au cas o vous voudriez compiler plusieurs versions du m me
152. im k trdeliM p 32 2508 Seed boissons A een hss LE Re EE ded ed nn aden OR er nine 79 7 24 un autre exemple avec Javascript ss 80 1 25 Balises fliteral ist demi sement entente en ten T 80 1 26 Exemple avec Javascript ii Re nn mn an im tenter 81 1 27 Un p u de css dans Un tmplate ses soso ces Geet i asties e inner fes E Essen 81 7 28 Exemple avec la balise php ss 82 7 29 Balises php avec le mot cl global et assignement d une variable 82 7 30 Boucler dans un simple tableau avec section 0 0 0 0 cece ee cece nce e cence neeeeeeeeeeeeeeeeeeaees 84 7 31 section sans 00 tableau assi ene sas sursis iranienne tasse tetes og wad dada orb tt 85 7 32 Nommage d une section ses 85 7 33 Boucler dans un tableau associatif avec section ooooccoocccononocononoconococononoconanocononoconanocos 86 7 34 section d montrant l utilisation de la variable Loop oococcnonccononncononocononocononoconocoronononos 87 1 39 SECHON imbri qu e ti ne thas niet a toes heehee ene ere tae E 88 7 36 Exemple avec une base de donn es et sectionelse coocooccocnnccoconcnoconcnoroncnoroncnnroncnanones 89 1 37 Ex mple avec la propri t Index vos e555 ne Sexgesnysusnss R E N eee Rs CS NEE tes 90 7 38 Exemple avec les propri t s index index_next et index_prev 91 7 39 Exemple avec la propri t iteration ss 92 7 40 Exemple avec les propri t s first et Last oe cee eee
153. iner l installation de base de Smarty Configuration avancee Ceci est la suite de l installation de base veuillez lire cette derni re avant de poursuivre Une mani re un peu plus commode de configurer Smarty est de faire votre propre classe fille et de l initialiser selon votre environnement De la sorte nous n aurons plus besoin de configurer chaques fois les chemins de notre environnement Cr ons un nouveau r pertoire php includes livredor et un nouveau fichier appel setup php Dans notre exemple d environnement php includes est notre include_path PHP Assurez vous de faire la m me chose ou alors d utiliser des chemins absolus Installation Example 2 10 Edition de php includes livredor setup php lt php charge la librairie Smarty require Smarty class php le fichier setup php est un bon endroit pour charger les fichiers de librairies de l application et vous pouvez faire cela juste ici Par exemple require livredor livredor lib php class Smarty_livredor extends Smarty function Smarty_livredor Constructeur de la classe Appel automatiquement a l instanciation de la classe this gt Smarty this gt template_ dir web www example com smarty livredor templates this gt compile dir web www example com smarty livredor templates_c Sthis gt config_dir web www example com smarty livredor configs Sthis gt cache_dir web
154. ip literal lt script gt lt a href Jjavascript myJsFunction Ssmarty server SERVER_NAME Ssmarty server S Example 7 27 Un peu de css dans un template inclure ce style comme un xp rimentation lt style type text css gt literal C est une id e int ressante pour cette section madIdea border 3px outset ffffff margin 2 3 4 5px background color 001122 literal lt style gt lt div class madIdea gt Avec Smarty vous pouvez inclure du css dans le template lt div Voir aussi 1delim rdelim etla d sactivation de l analyse de Smarty php Les balises php permettent de rajouter du code PHP directement dans le template Ils ne seront pas ignor s quelle que soit la valeur de php_handling Pour les utilisateurs avanc s seulement son utilisation n est normalement pas n cessaire et n est pas recommand e Notes techniques Pour acc der aux variables PHP dans les blocks php vous devriez avoir besoin d utiliser le mot cl PHP global http php net global 81 Fonctions natives Example 7 28 Exemple avec la balise php php inclusion directe d un script PHP depuis le template include chemin vers display_weather php php Example 7 29 Balises php avec le mot cl global et assignement d une variable ce template inclut un bloc php qui assigne la variable varX php global foo Sbar if foo Sba
155. iques Le probl me est que ces langages utilisent les caract res et qui sont aussi les d limiteurs Smarty par d faut Le plus simple pour viter une telle situation est de placer vos codes Javascript et CSS dans des fichiers s par s puis d utiliser les m thodes standards HTML pour y acc der Inclure du contenu tel quel est possible en utilisant les blocs literal literal Similairement l utilisation d entit s HTML vous pouvez utiliser ldelim et rdelim ou smarty 1ldelim pour afficher les d limiteurs Il est souvent plus simple de modifier les d limiteurs de Smarty left_delimiter et Sright_delimiter Example 3 8 Exemple de changement de d limiteur lt php Ssmarty gt left_delimiter lt Ssmarty gt right_delimiter gt Ssmarty gt assign foo bar Ssmarty gt assign name Albert Ssmarty gt display example tpl1 2 gt Ot le template est Bienvenue lt name gt sur Smarty lt script language javascript gt var foo lt Sfoo gt function dosomething alert foo foo dosomething lt script gt 21 Chapter 4 Variables Smarty poss de diff rents types de variables Le type de ces variables d pend du symbole qui les pr fixe ou des symboles qui les entourent Les variables de Smarty peuvent tre soit affich es directement soit utilis es comme arguments pour les fonctions et modificateurs
156. item i name foo if Ssmarty foreach foo index 0 lt tr gt lt th gt Title lt th gt lt tr gt if lt tr gt lt td gt i label lt td gt lt tr gt foreach lt table gt iteration iteration contient l it ration courante de la boucle et commence toujours 1 contrairement index Il est incr ment d un chaque it ration 68 Fonctions natives Example 7 11 Exemple avec iteration et index this will output 011 112 213 etc foreach from SmyArray item i name foo Ssmarty foreach foo index Ssmarty foreach foo iteration foreach first first vaut TRUE si l it ration courante de foreach est l initial Example 7 12 Exemple avec first affiche LATEST sur le premier l ment sinon l id lt table gt foreach from Sitems key myId item i name foo SEL lt td gt if Ssmarty foreach foo first LATEST else SmyId if lt td gt lt td gt S i label lt td gt lt tr gt foreach lt table gt last last est d fini TRUE si l it ration courante de foreach est la derni re Example 7 13 Exemple avec last Ajout une barre horizontale la fin de la liste foreach from Sitems key part_id item prod name products lt a href Spart_id gt Sprod lt a gt if S smarty foreach products last lt hr gt else if foreachelse contenu foreach show show est utilis en tant que param tre foreach showest u
157. l correspondant ce Scompile_id sera effac Si vous passez un exp_time les templates compil s plus vieux que exp_time secondes seront effac s par d faut tous les templates compil s seront effac s au v de leurs ages Cette fonction est destin e un usage avanc et n est habituellement pas utilis e Example 13 9 Exemple avec clear_compiled_tpl lt php efface la version compil e du template sp cifi Ssmarty gt clear_compiled_tpl index tpl efface tout le contenu du r pertoire des templates compil s Ssmarty gt clear_compiled_tpl 2 gt Voir aussi clear_cache 168 M thodes Name clear_config Efface toutes les variables de configuration assign es Description void clear_config string var Utilis e pour effacer toutes les variables de configuration assign es Si un nom de variable est sp cifi seule cette variable sera effac e Example 13 10 Exemple avec clear_config lt php efface toutes les variables de configuration assign es Ssmarty gt clear_config l efface une seule variable Ssmarty gt clear_config foobar 2 gt Voir aussi les get_config_vars les variables de configuration les fichiers de configuration config_load config_load et clear_assign 169 M thodes Name config_load Charge les donn es d un fichier de configuration et les assigne au template Description void config_load string f
158. la valeur de la directive de configuration gpc_order de PHP est utilis e error_reporting x Lorsque cette valeur est configur e une valeur non nulle sa valeur est utilis e comme le error_reporting http php net error_reporting level de PHP l int rieur de display et fetch Lorsque le d boguage est ignor cette valeur est ignor e et error level est non modifi Voir aussi trigger_error le d bogage et Troubleshooting compile_id Identifiant persistant du compilateur On peut passer le m me compile_ida chaque appel de fonction mais une alternative consiste r gler ce compile_ id qui sera utilis implicitement Avec un compile_id vous pouvez contourner la limitation qui fait que vous ne pouvez pas utiliser le m me Scompile_dir pour diff rents Stemplate_dirs Si vous d finissez un Scompile id distinct pour chaque template dir alors Smarty indique aux templates compil s part par leur Scompile_id Si vous avez par exemple un pr filtre qui traduit vos templates au moment de la compilation alors vous devriez utiliser le langage courant comme compile_id et vous devriez obtenir un jeu de templates compil s pour chaque langage que vous utiliserez Un autre exemple serait d utiliser le m me dossier de compilation travers de multiples domaines vhosts 156 Variables Example 12 6 compile_id dans un environement d h te virtuel lt php Ssmarty gt compile_id _SERVER
159. le nomm e dans le template plut t que de l afficher tout comme la fonction assign capture capture est utilis pour r cup rer la sortie d l ments dans une variable au lieu de les afficher Tout contenu situ entre capture name foo et capture est intercept dans une variable dont le nom est sp cifi dans l attribut name Le contenu captur peut tre utilis dans le template par l interm diaire de la variable sp ciale Ssmarty capture foo ou foo est la valeur de l attribut name Si vous ne donnez pas de valeur l attribut name alors default est utilis en tant que nom i e Ssmarty capture default capture peut tre imbriqu Attribut Type Requis Defaut Description name string non default Le nom du bloc captur assign string non n a Le nom de la variable laquelle la sortie sera assign e Attention Fa tes attention lorsque vous interceptez la sortie de commandes insert Si vous avez configur le cache pour que ce dernier soit actif et que vous avez des commandes insert suppos es s ex cuter dans un contenu en cache ne tentez pas de capturer ce contenu Example 7 1 capture avec le nom de l attribut nous ne voulons afficher une balise div que si le contenu capture name banner include file get_banner tpl capture if smarty capture banner ne lt div id banner gt Ssmarty capture banner lt div gt if st af
160. le script PHP qui assigne les tableaux Smarty lt php Sid array 1001 1002 1003 Ssmarty gt assign custid id Sfullnames array John Smith Jack Jones Jane Munson Ssmarty gt assign name fullnames Saddr array 253 Abbey road 417 Mulberry ln 5605 apple st Ssmarty gt assign address Saddr 2 gt La variable loop d termine uniquement le nombre de fois qu il faut boucler Vous pouvez acc der n importe quelle variable du template dans la section section name customer loop custid lt p gt id Scustid customer lt br gt name S name customer lt br gt address Saddress customer lt p gt section L exemple ci dessus affichera lt p gt id 1000 lt br gt name John Smith lt br gt address 253 Abbey road lt p gt lt p gt id 1001 lt br gt name Jack Jones lt br gt address 417 Mulberry In lt p gt lt p gt id 1002 lt br gt name Jane Munson lt br gt address 5605 apple st lt p gt 87 Fonctions natives Les sections peuvent tre imbriqu es autant de fois que vous le voulez Avec les sections imbriqu es vous A Er auy stupan impriquee gt comme les tableaux multi dimentionnels Voici un ERA 8 GLA dana Sid array 1001 1002 1003 Ssmarty gt assign custid S id Sfullnames array John Smith Jack Jones Jane Munson Ssmarty gt assign name fullnames Saddr array 253 N 4
161. le strip StitreArticle strip amp nbsp Affichera Une r union autour d un feu de chemin st toujours agr able Une r union autour d un feu de chemin st toujours agr able Une amp nbsp r union nbsp autour nbsp d un amp nbsp feu amp nbsp de amp nbsp chemin e nbsp est amp nbs nbsp agr able Voir aussi strip ettruncate strip tags Supprime toutes les balises et plus g n ralement tout ce qui se trouve entre lt et gt Position du Type Requis Defaut Description param tre 1 bool Non TRUE Si l on remplace les l ments par ou par 52 Modificateurs de variables Example 5 20 strip_tags lt php Ssmarty gt assign articleTitle Blind Woman Gets lt font face helvetica gt New Kidney lt font gt from Dad she Hasn t Seen in lt b gt years lt b gt 2 gt Ot le template est StitreArticle StitreArticle strip_tags identique StitreArticle strip_tags true StitreArticle strip_tags false Affichera Blind Woman Gets lt font face helvetica gt New Kidney lt font gt from Dad she Hasn t Seen Blind Woman Gets New Kidney from Dad she Hasn t Seen in years Blind Woman Gets New Kidney from Dad she Hasn t Seen in years Voir aussi replace et regex_replace truncate Tronque une variable une certaine longueur par d faut 80 Un second param tre optionnel permet de sp cifier une cha ne afficher la fin
162. lisation d un filtre de post compilation de templates lt php mettez cela dans votre application function add_header_comment tpl_source amp Ssmarty return lt php echo lt Cr par Smarty gt n gt n S tpl_source enregistre le filtre de post compilation Ssmarty gt register_postfilter add_header_comment Ssmarty gt display index tpl1 2 gt Votre template Smarty index tpl ressemblera apr s compilation lt Cr par Smarty gt reste du contenu du template Voir aussi register_postfilter les pr filtres et load_filter Filtres de sortie Quand le template est appel via les fonctions display ou fet ch sa sortie est envoy e travers un ou plusieurs filtres de sorties Ils diff rent des filtres de post compilation dans le sens o ils agissent sur la sortie des templates une fois ex cut s et non sur les sources des templates Les filtres de sortie peuvent tre soit d clar s soit charg s depuis les r pertoires des plugins en utilisant la fonction load_filter ouen r glant la variable Sautoload_filters Smarty passera la sortie du template en premier argument et attendra de la fonction qu elle retourne le r sultat de l ex cution 214 Fonctionnalit s avanc es Example 15 4 Utilisation d un filtre de sortie lt php mettez ceci dans votre application function protect_email S tpl_output amp Ssmarty Stpl_output
163. lu lt option value 10 gt 10 lt option gt coup lt option value 22 gt 22 lt option gt lt option value 23 gt 23 lt option gt lt select gt lt select name Time_Minute gt lt option value 00 gt 00 lt option gt lt option value 01 gt 01 lt option gt COUP S wx lt option value 19 gt 19 lt option gt lt option valu lt option value 21 gt 21 lt option gt coup lt option value 58 gt 58 lt option gt lt option value 59 gt 59 lt option gt lt select gt lt select name Time_Second gt lt option value 00 gt 00 lt option gt lt option value 01 gt 01 lt option gt coup lt option value 22 gt 22 lt option gt lt option valu lt option value 24 gt 24 lt option gt coup lt option value 58 gt 58 lt option gt lt option value 59 gt 59 lt option gt lt select gt lt select name Time_Meridian gt lt option valu lt option value pm gt PM lt option gt lt select gt Voir aussi Ssmarty now html_select_date et les astuces sur les dates 122 Fonctions utilisateur html table html_table est une fonction personnalis e qui transforme un tableau de donn es dans un tabeau HTML Nom de l attribut Type Requis D faut Description loop tableau Oui n a Tableau de donn es parcourir cols mixed Non 3 Nombre de colonnes de la table ou une liste de noms de colonnes s par s par une virgule ou un
164. mber lt option gt e 12 selected selected gt December lt option gt lt select gt lt select name lt option valu Date_Day gt e 1 gt 01 lt option gt lt option valu lt option valu coup lt option valu lt option valu e 2 gt 02 lt option gt e 3 gt 03 lt option gt e 11 gt 11 lt option gt e 12 gt 12 lt option gt lt option valu n n lt option valu n lt option valu coup lt option valu e 13 selected gt 13 lt option gt e 14 gt 14 lt option gt e 15 gt 15 lt option gt e 29 gt 29 lt option gt lt option valu lt option valu lt select gt lt select name lt option valu lt select gt e 30 gt 30 lt option gt e 31 gt 31 lt option gt Date_Year gt e 2006 selected selected gt 2006 lt option gt 119 Fonctions utilisateur Example 8 20 html_select_date Deuxi me exemple le d marage et la fin de l ann e peuvent tre relatif l ann e courante html_select_date prefix StartDate time Stime start_year 5 end_year 1 display_days false Ce qui donne en sortie L ann e courante est 2000 lt select name StartDateMonth gt lt option value 1 gt January lt option gt lt option value 2 gt February lt option gt SRE coup lt option value 11 gt November lt option gt lt option value 12 selected selected gt December lt option gt lt s
165. moteur et compilateur de template PHP TIT Smarty pour les programmeurs ss 143 TL Constante ii utile tree neige een genre cdeksbeaue tete ete nee 147 SMAR TY DI E EAE E nest skeet oats Us adress os Pa ae 147 SMARTY CORE DIR cist nm td ala iaa 147 12 Var ables it online nese ded a e net at ons reads va sure eee rest d de 148 empleaba 148 SCOMPIESCIE adidas 148 O D IT Tree RS ne de ead Se eee Fe ee SR RE 148 SPIUSINS TNT 148 do ent ste ER ein A os O 149 gde bos l arenei rea ea EE aa eh Nine e nn a iaa daa 149 Sdebuggine NO 150 Satitoload s EI KTE E AOI A dd AEN 150 SHcompile Check ssm ru e a KATATE 150 force COMPILE is 151 OACI T TE T A E A E AT 151 Peach dis ets soddeat ete titi dra 151 cache ILAE a o o EE ES AE SE EEA T EEN 152 Scache Handler fune ii acia 152 Scache modified check rone ee E e ete 152 SCONE VE o 152 config booleamize iii ii a aa 153 confis read Middle 153 config fix newlines o einen deve chadadecadleie E a a i iiaa 153 default_template_handler_func ss 154 php hand dl o SoM re a det 154 SSCCUEILY rte Linn dent E Mes es donnent le Sn Teese denotar tcs 154 Ssecure dite E ee ee at nr nette D s Sn 154 security SELLINGS raea e a EEE ca vnddecds aE N Ee anne anote tete ed Son teety 155 NN A ETS R 55 A A A rs 155 Sl TEMA A ai 155 Sright delimiter ti is 155 COMPLET aclaro 156 HLEQUESE VATS order 20e Ga coca E we aie pay lisent dde rende de Vee Bees 156 request_use_auto_globals su 156 HELTON NA 1
166. n Name Fred Ssmarty gt assign Address Saddress affichera print_r smarty gt get_template_vars efface toutes les variables assign es Ssmarty gt clear_all_assign n affichera rien print_r smarty gt get_template_vars 2 gt Voir aussi clear_assign clear_config get_template_vars assign et append 164 M thodes Name clear_all_cache Efface les fichiers de cache des templates Description void clear _ all cache int expire time Vous pouvez passer un param tre optionnel afin d indiquer l ge minimun que doivent avoir les fichiers de cache pour qu ils soient effac s Example 13 6 Exemple avec clear_all_cache lt php efface le cach smarty gt clear_all_cache efface tous les fichiers vieux d une heure smarty gt clear_all_ cache 3600 2 gt Voir aussi clear_cache is_cached et le cache 165 M thodes Name clear_assign Efface la valeur d une variable assign e Description void clear_assign mixed var Il peut s agir d une simple valeur ou d un tableau de valeur Example 13 7 Exemple avec clear_assign lt php efface une variable Ssmarty gt clear_assign Name efface plusieurs variables Ssmarty gt clear_assign array Name Address Zip 2 gt Voir aussi clear_all_assign clear_config get_template_vars assign et append 166 M thodes
167. n Dalias rotacion deta caca RS eee dd 157 O 157 Sdefault resource Hyper sides een en RE R ES EEE EEAS aae EE ERTES 157 13 M thodes eins bonn a et ee 158 append pit it Re ren DAS titine abel nb Meta kaa Pete rnb tte meee bea 159 append DY TR O Avs ose rene een sec Re lode es ee A ae ea nee ds 160 PRISES n RS ocean esas E E EEE 161 ssien Dy rel sites ds 163 cl ar all assign aiir in EE ERE E E a Mn E a 164 Clear all CACHE mnan A E N HER ANA de 165 clear ASSIGN me E E R EPN AA AAEE NAAR aE ETEO EERTE SNA 166 Clear cache is TE LR A AE 167 clear compiled Aplica e EE E A E A en AE E 168 clear confio acs cats eee A A E GT A as RAS 169 confie JOA nit adoran uses nea ceca sl goes oa nde a eve Megan teas ac iaa 170 144 Smarty pour les programmeurs CISPlAY O Sr sens nm sn phene tbe eat vase gbonreun teens dire ten es qu e LEE 1 0 esos Ses Sea een sd a SOR se ood Sak dis LE D eee PEt COMM VASO dur tits entend AS pet repistered object ea orne een EE E none oia nou tone ecos pet template vars eea aE A E cs eed EE Seated ne ALT E E pese IS CAaChed A A A O AE A SEANS Toad filter A e A A das register DIOCK A AN register COMPUEF AUNCHONO stresse seen sentis tes stern eee drone se diner trees register fUnCtiON usr cs sue decdecddbecdedaherencedceloa t a is TESIS MOI ii de esanaeguceanes de de eus sente nt Na need resister object 85e nn E A An net de des en TESISTELOUTPULMITELO ccc Sn rente ne ten nn E ere et mn estate
168. n est pas trouv ou si le fichier ou la fonction de plugin ne sont pas nomm s correctement Ecrire des plugins Les plugins peuvent tre soit charg s automatiquement par Smarty depuis le syst me de fichier soit tre d clar s pendant l ex cution via une fonction register_ de l API Ils peuvent aussi tre d sallou s en utilisant une fonction unregister_ de l API Pour les plugins qui ne sont pas enregistr s pendant l ex cution le nom des fonctions n ont pas suivre la convention de nommage Si certaines fonctionnalit s d un plugin d pendent d un autre plugin comme c est le cas de certains plugins accompagnant Smarty alors la mani re appropri e de charger le plugin est la suivante lt php require_once smarty gt _get_plugin_filepath function html_options 2 gt Une r gle g n rale est que chaque objet Smarty est toujours pass au plugin en tant que dernier param tre sauf pour deux exceptions e les modificateurs ne sont pas pass s du tout l objet Smarty e les blocs r cup rent le param tre repeat pass apr s l objet Smarty afin de conserver une compatibilit avec les anciennes versions de Smarty Les fonctions de templates void smarty function name params amp smarty 222 Etendre Smarty avec des plugins array Sparams object amp Ssmarty Tous les attributs pass s aux fonctions de template a partir du template sont contenus dans le tableau associatif Sparams Le
169. nclus dans la distribution de Smarty qui contr le le formattage de la console D finissez debugging TRUE dans Smarty et si besoin vous pouvez d finir Sdebug_tp1 de fa on ce que ce dernier contienne le chemin du template utiliser dans SMARTY_ DIR par defaut Lorsque vous chargez la page une console javascript est cens e surgir et vous donner les noms de toutes les variables inclues et assign es dans votre page courante Pour voir toutes les variables d un la fonction debug Pour d sactiver la console de d bogage d finissez Sdeb pouvez galement temporairement activer le d bogage en indiquant SMART Y_D que l option Sdebugging_ctri soit activ e Note technique La console de d bogage ne fonctionne pas si vous utilisez l API fetch template particulier voir ugging FALSE Vous EBUG dans l url si tant est mais seulement lorsque vous utilisez display C est en effet un jeu d instructions javascripts la fin du template qui d clenchent l ouverture de la fen tre Si vous n aimez pas javascript vous pouvez modifier debug tp1 pour formater les donn es de la fa on qui vous conviendra le mieux Les donn es de d bogage ne sont pas mises en cache et les informations de d incluses dans la sortie de la console de d bogage Note ebug tpl ne sont pas Le temps de chargement des templates et des fichiers de configuration sont indiqu s en secondes Voir aussi troubleshooting Serror_reportingett
170. nction PHP stripslashes a un modificateur Smarty Ssmarty gt register_modifier ss stripslashes 2 gt Ot le template est lt php utiliser sslash pour utiliser la fonction PHP strislashes var sslash 2 Voir aussi unregister_modifier register_function les modifieurs l extension de Smarty avec des plugins et la cr ation de plugins modifieurs 186 M thodes Name register_object Enregistre un objet a utiliser dans un template Description void register_object string object_name object object array allowed_methods_properties boolean format array block_methods Reportez vous la section objet de ce manuel pour plus d informations Voir aussi get_registered_object etunregister_ object 187 M thodes Name register_outputfilter D clare dynamiquement des filtres de sortie Description void register_outputfilter mixed function Utilis e pour d clarer dynamiquement des filtres de sortie pour agir sur la sortie d un template avant qu il ne soit affich Reportez vous la section filtres de sortie pour plus d information sur le sujet La fonction PHP de callback function peut tre soit Une cha ne de caract res contenant la fonction name e Un tableau sous la forme array amp Sobject Smethod o amp Sobject est une r f rence d objet et Smethod une chaine contenant le nom de la m thode e Un tableau sous la forme array class
171. ne valeur bool enne S il vaut FALSE foreach ne sera pas affich S il y a un foreachelse il sera affich alternativement 69 Fonctions natives total total contient le nombre d it rations que cette boucle foreach effectuera Il peut tre utilis dans ou apr s un foreach Example 7 14 Exemple avec total affiche les lignes retourn es la fin foreach from Sitems key part_id item prod name foo prod name gt lt hr gt if Ssmarty foreach foo last lt div id total gt smarty foreach foo total items lt div gt if foreachelse quelque chose d autre foreach Voir aussi Section et Ssmarty foreach if elseif else L instruction if dans Smarty dispose de la m me flexibilit que l instruction PHP if http php net if avec quelques fonctionnalit s suppl mentaires pour le moteur de template Tous les if doivent tre utilis s de pair avec un if else et elseif sont galement des balises autoris es Toutes les conditions et fonctions PHP sont reconnues comme II or amp amp and is_array etc Si Ssecurityest actif alors le tableau JF_FUNCS dans le tableau Ssecurity_settings La liste suivante pr sente les op rateurs reconnus qui doivent tre entour s d espaces Remarquez que les l ments list s entre crochets sont optionnels Les quivalents PHP sont indiqu s lorsque applicables Op rateur Syntaxe Exemple
172. nn ne bao de dass dor e ee IEA woe Led 36 COUN WOLA SAA Re ses Sate ion 37 date formats 62 22 50 Meade hs 38 defaults essais tartas rte rro dies eats 41 ESCAPE A A A A ee aN OES 42 CO LA UT A 44 LOWED st Slate eatin cists ke aoe eee el So i at 45 r01 A ei chsneicseaahss batcevvauatests ban caaae aaah E bat vena sintabat peteagtenaneaess bata eeanGae ss 46 TO TEP ACE ner O EEST 47 TPL ado ra ardilla ie 48 SPacily ir rental nn one e tin le ha ands en tels ete 49 SUING OMA here hein ethernet one Tan Rite ai meee TASS 50 MD A ios se aa eae ER s 51 SUMP tA BS encierro E ai esp ARO Aerial isn diri 52 111 Smarty le moteur et compilateur de template PHP A Lens nine et te dents 53 UPPER ee RE NS Sen tin net en ne Te een LRU 55 WOLAWTAD sic nl ner le in geese deans OA E A edna tuneeacwedyeedan hye o EA E SEE 56 6 Combiner des modificateurs de variable oocooccocnncnocnncnnconcnnconcnoroncnnroncnnroncnnroncnnnos 59 T FONCUONS NAUVES it rin 60 CAPLULO Sr A A ES A a Secs eases 60 CONTE LOTO EEE TR TS RC RE ET toi lsets 61 foreach foreachelse sursis mini nine eau 63 DEUST REP ei ene 68 DS EL LOS 68 ETS Re NE venta ated sted ge veda geen TR EE A AC NOR EN RENE 69 ES A A E E E peeks 69 SHOW ton OO 69 total RS EN 70 Girele eRe kinene es E E O E ONE Msn 2e 70 Cl Ud E E E EE En ant 73 include php ss roses rames detente nn elite R NEEE 75 INSEL sacat ei a a ENE A E E abe anh E ea ae 77 Melanin reli A Sent ete
173. ns un template cece cence cece ence ence nce eeeeeeceeseeeeaeseaesea essa sean eeaes 16 3 2 Vanables stent rt risa e a E a E a reir paso 17 3 3 Syntaxe A O 18 3 4 Parame tres de fonction Syntaxe su sienne done se ntsc pren deste ess aiii fender ESATE atenas EPOa 19 3 5 Exemples d synthaxes en io ee eee cans oye aE EE E EREE EENE EE EEEREN 19 3 6 Ex mples pratiques 2d poi ride oct nt 20 3 7 Exemples d op rations math matiques oooccocccccnnccnnccnnccnnccnncnnnconnconnconncnnnrnnronnronccnnccnninnns 20 3 8 Exemple de changement de d limiteur Se 21 dl Exemple de varias sisi innsetane tnt EE E E E ere nee el ont tes 22 4 2 NVariables assl nees its mets nn etes anne tetes iras tte ten te ao 23 4 3 Acc der aux variables de tableaux associatifs ooooccnoccncconoconccnnccnnccnnnonoronornnccnnconnccnnccnnions 24 4 4 Acc s aux tableaux gr ce l index i555 s ses iss csec esp usine siesgsevotes pa Pissa E PEONES ESE Taai parea 25 4 5 Acc der aux attributs des objets ss 26 4 6 variables de fichiers de configuration ss 27 4 7 Afficher des variables de requ te ce cece cence cece cece ne ce ne ceneceeeeeeeceeeeaeseaeseaeeea sean eeaes 28 4 8 Utilisation de smarty NOW ss 29 5 1 Exemple de modificateur si so haces lees roeren chats cons malins mener Vege chon cues dti ns dde send 31 9 2 Mise en majusculeiss 2 seciss sessed iis patin taie bas sas need sees anne ne eager ab ter fan pales 33 DS PAC RS
174. ntact id contact name Scontact email Pour des assignements plus complexes de tableaux lisez foreach et section 161 M thodes Voir aussi assign_by_ref get_template_vars clear_assign append et assign 162 M thodes Name assign_by_ref Assigne des valeurs par r f rence Description 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 R f 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 R f rez vous au manuel PHP pour une explication plus pr cise sur les r f rences de variable Example 13 4 Exemple avec assign_by_ref lt php passe des paires noms valeurs Ssmarty gt assign_by_ref Nom Smyname Ssmarty gt assign_by_ref Adresse Saddress 2 gt Voir aussi assign clear_all_assign append assign et get_template_vars 163 M thodes Name clear_all_assign Efface les valeurs de toutes les variables assign es Description void clear_all_assign Example 13 5 Exemple avec clear_all_assign lt php passe des paires nom valeur Ssmarty gt assig
175. ocs 194 M thodes Name unregister_compiler_function D salloue dynamiquement une fonction de compilation Description void unregister_compiler_function string name Passez en param tre le nom name de la fonction de compilation Voir aussi register_compiler_function et les plugins de fonction de compilation 195 M thodes Name unregister_function D salloue dynamiquement un plugin de fonction de templates Description void unregister_function string name Passez en param tres le nom de la fonction de templates Example 13 27 Exemple avec unregister_function lt php nous ne voulons pas que les designers de templates aient acc s au syst me de fichiers Ssmarty gt unregister_function fetch 2 gt Voir aussi register_function 196 M thodes Name unregister_modifier D salloue dynamiquement un plugin modificateur de variable Description void unregister_modifier string name Passez en param tre le nom du modificateur de templates Example 13 28 Exemple avec unregister_modifier lt php nous ne voulons pas que les designers de templates suppriment les balises des lements Ssmarty gt unregister_modifier strip_tags 2 gt Voir aussi register_modifier et les plugins modificateur 197 M thodes Name unregister_object D salloue dynamiquement un objet Description void unregiste
176. ogique de pr sentation dans vos templates Ainsi si vous ne d sirez pas disposer de logique m tier dans vos templates placez tous vos contenus dans des variables au format texte uniquement L un des aspects unique de Smarty est la compilation des templates Cel signifie que Smarty lit les templates et cr e des scripts PHP partir de ces derniers Une fois cr s ils sont ex cut s Il n y a donc pas d analyse co teuse de template chaque requ te et les templates peuvent b n ficier des solutions de cache PHP comme Zend Accelerator http www zend com ou PHP Accelerator Quelques caract ristiques de Smarty e Il est tr s rapide e Il est efficace le parser PHP s occupe du sale travail e Pas d analyse de template co teuse une seule compilation e Il sait ne recompiler que les fichiers de templates qui ont t modifi s e Vous pouvez cr er des fonctions utilisateurs et des modificateurs de variables personnalis s le langage de template est donc extr mement extensible e Syntaxe des templates configurable vous pouvez utiliser lt gt etc comme d limiteurs tag e Les instructions if elseif else endif sont pass es au parser PHP la syntaxe de l expression if peut tre aussi simple ou aussi complexe que vous le d sirez Imbrication illimit e de sections de if etc autoris e e lest possible d inclure du code PHP directement dans vos templates bien que cel ne soit pas o
177. olor gt Sname lt font gt else Bonjour name if include file footer tpl ad Srandom_id e Les fonctions natives et les fonctions utilisateurs ont toutes deux la m me syntaxe dans les templates e Les fonctions natives sont relatives au traitement interne de Smarty comme if section et strip Il n y a aucune raison ce qu elles soient modifi es ou chang es e Les fonctions utilisateurs sont des fonctions additionnelles impl ment es par l interm diaire de plugins Elles peuvent tre modifi es pour correspondre vos besoins et vous pouvez en cr er de nouvelles html_options et popup sont deux exemples de fonctions utilisateurs Voir aussi register_function Parametres La plupart des fonctions attendent des param tres qui r gissent leur comportement Les param tres des fonctions Smarty sont tr s proches des attributs des balises HTML Les valeurs num riques n ont pas besoin d tre entour es par des guillemets par contre ces guillemets sont recommand es lors de l utilisation de cha nes de caract res Des variables peuvent aussi tre utilis es en tant que param tres et ne doivent pas tre entour es de guillemets Certains param tres requi rent des valeurs bool ennes TRUE ou FALSE Elles peuvent tre sp cifi es par l une des valeures suivantes sans guillemet true on et yes ou false off et no 18 Bases syntaxiques Example 3 4 Param tres de
178. om de la classe et Smethod est une m thode de la classe Les param tres cacheable et cache_attrs peut tre omis dans la plupart des cas Voir Contr ler la mise en cache des sorties des Plugins pour plus d informations concernant cette utilisation Example 13 23 Exemple avec register_function lt php Ssmarty gt register_function date_now print_current_date function print_current_date Sparams extract S params if empty format Sformat b e SY echo strftime format time 2 gt Ot le template est date_now ou format diff remment date_now format Y m d 184 M thodes Voir aussi unregister_function et les plugins de fonction 185 M thodes Name register_modifier D clare dynamiquement un plugin de modificateur Description void register_modifier string name mixed impl Il faut passer en param tre le nom du modificateur de variables suivi de la fonction PHP qui l impl mente La fonction PHP de callback function peut tre soit e Une cha ne de caract res contenant la fonction name e Un tableau sous la forme array amp Sobject Smethod o amp object est une r f rence d objet et Smethod une cha ne contenant le nom de la m thode e Un tableau sous la forme array class Smethod o class est le nom de la classe et Smethod est une m thode de la classe Example 13 24 register_modifier lt php Associons la fo
179. ons les param tres emplacement_bandeau et id_site Smarty va rechercher une fonction appel e insert_getBanner dans votre application PHP et lui passer les valeurs banner_location_id et site_id comme premier param tre dans un tableau associatif Tous les noms des fonctions insert de votre application doivent tre prefix es de insert_ pour rem dier d ventuels conflits de nommage Votre fonction insert_getBanner est suppos e traiter les valeurs pass es et retourner un r sultat Ces r sultats sont affich s dans le template en lieu et place de la balise Dans cet exemple Smarty appellera cette fonction insert_getBanner array lid gt 12345 sid gt 67890 et affichera le r sultat retourn la place de la balise insert e Si vous donnez une valeur l attribut assign la sortie de la balise insert sera assign une variable de template de ce nom au lieu d tre affich e directement Note Assigner la sortie une variable n est pas tr s utile lorsque le cache est activ e Si vous donnez une valeur l attribut script ce script PHP sera inclus une seule fois avant l ex cution de la fonction insert Le cas peut survenir lorsque la fonction insert n existe pas encore et que le script PHP charg de sa d finission doit tre inclus Le chemin doit tre absolu ou relatif trusted dir Lorsque securit y est actif le script doit tre situ dans Strusted dir L objet Smarty
180. oooconoccnnconnnnccnnnncnnnocnnnnccnnnnononinnnnno 157 13 1 Exemple daveczappend tinto his nie nes Mention TM en ies Mees teetiee MOT 159 13 2 Exemple avec append_by_ref ses 160 13 3 Exemple avec assi esse annees horde gants pannes fon nat te 161 13 4 Exemple avec assign by it tie ER pei tube Se ae ee eee 163 13 57 Exempl avec Cl ear all aSsiSn0 54e pese aa ggetsaon swe detiene 164 13 6 Exemple avec clear_all_cache ss 165 13 7 Exemple avec cleatassi gm oean e nE EEE E des SEENTE EEES 166 13 8 Exemple avec cl atcacheQ sti ce TE EE E A S is pens 167 13 9 Exemple avec clear_compiled_tplQ 0 cece cece ccee eee ce ecce ceca cece cena eens eeneceneeeeeeeeeeeeeeaees 168 13 10 Exemple avec clear_config sise 169 13 11 Exemple vec Confis 1Oad lt del men ere seins deep tales tri 170 13 12 Exemple avec display soi osu ire E eked un nt din dre ut ved eae 171 13 13 Exemples de fonction d affichage de ressources templates 172 13 14 Exemple avec fetch ses nement rien Rene ceedaepevedusepeuedaberes 174 13 15 Utilisation de fetch pour envoyer un email ccoooccnncccnnnccnnnincnnnccnnnnconnncnnnnccnnnnccnnocnnnns 175 13 16 Exemple avec get_config_vars ss 176 13 17 Exemple avec get_registered_object ss 177 13 18 Exemple avec get_template_vars se 178 13 19 Ex mpl av c 15 Cached etarra ti cda 179 13 20 Exemple avec
181. orme MM DD pour l attribut time 117 Fonctions utilisateur Nom attribut Type Requis D faut Description afin d indiquer une ann e non s lectionn e month_empty cha ne de Non null S il est renseign le caract res premier l ment de la boite de s lection affiche le texte donn en tant que libell et dispose de la valeur A savoir que vous pouvez sp cifier des valeurs de la forme YYYY DD pour l attribut time afin d indiquer qu il manque le moi day_empty cha ne de Non null S il est renseign le caract res premier l ment de la boite de s lection affiche le texte donn en tant que libell et dispose de la valeur A savoir que vous pouvez sp cifier des valeurs de la forme YYYY MM pour l attribut time afin d indiquer qu il manque le jour Note Il y a une fonction PHP utile sur la page des astuces sur les dates pour convertir les valeurs html_select_date en un timestamp 118 Fonctions utilisateur Example 8 19 html_select_date Premier exemple Code du template html_select_date Ce qui donne en sortie lt select name lt option valu lt option valu lt option valu coup lt option valu lt option valu lt option valu Date_Month gt e 1 gt January lt option gt e 2 gt February lt option gt e 3 gt March lt option gt e 10 gt October lt option gt e 11 gt Nove
182. ortie finale du template diff remment des lt commentaires HTML gt Ils sont utilis s pour des notes internes dans le template que personne ne verra 15 Bases syntaxiques Exainphe 3A Conmrentairesd nsuntemplatexiste pas dans la sortie compil e lt html gt lt head gt lt title gt Stitle lt title gt lt head gt lt body gt un autre commentaire Smarty sur une seule ligne lt Un commentaire Html qui sera envoy au navigateur gt ces multi lignes sont des commentaires qui ne sont pas envoy es au navigateur RR RARER RRR LER KERR KK ERIE IRR RRA ERR ERIE BAER IK KKK RRR RNR BKK Un bloc de commentaires multilignes contenant les cr dits author bg example com maintainer support example com para var that sets block style css the style output REER ARTO R ERRE BAK RK RIE KEREKERE KOK RE LOR KE EER EE KEKE KES RRR KBE IE Inclusion du fichier d en t te contenant le logo principal include file header tpl Note aux d veloppeurs SincludeFile est assign au script foo php lt Affichage du bloc principal gt include file SincludeFile Ce block lt select gt est redondant qu lt select name company gt html_options options vals selected selected_id lt select gt E lt L affichage de 1 en t t st d sactiv gt Saffiliatelupper Vous ne pouvez pas imbriquer des commen
183. ose noclose bool en Non n a N affiche pas le bouton Close pour les fen tres collantes status cha ne de Non n a D fini le texte de caract res la barre de statut du navigateur autostatus bool en Non n a D fini le texte de la barre de statut au contenu de la popup NOTE Ecrase l attribut status autostatuscap cha ne de Non n a D fini le texte caract res de la barre de statut au libell de la popup NOTE Ecrase l attribut status inarray entier Non n a Indique overLib de lire le texte cet index dans le tableau ol_text situ dans overlib js Ce param tre peut tre utilis la place de text caparray entier Non n a Indique overlib de lire le libell depuis le tableau ol_caps capicon url Non n a Affiche l image sp cifi e avant le libell de la popup snapx entier Non n a Aligne la popup sur une grille horizontale snapy entier Non n a Aligne la popup sur une grille verticale fixx entier Non n a V rrouille la popup une position horizontale Note remplace les autres param tres de position horizontale 133 Fonctions utilisateur Nom attribut Type Requis Defaut Description fixy background entier url Non Non n a n a V rouille la popup une position verticale Note remplace les autres param tres de position verticale D fini l image utiliser plut t que le tableau
184. outir des cl s non s quentielles Ceci est dif rent de la fonction PHP array_merge http php net array_merge qui limine des cl s num riques et les renum rote Example 13 2 Exemple avec append_by_ref lt php ajoute des paires nom valeur Ssmarty gt append_by_ref Nom Smyname Ssmarty gt append_by_ref Adresse Saddress 2 gt Voir aussi append assign et get_template_vars 160 M thodes Name assign Assigne des valeurs au template Description void assign mixed var void assign string varname mixed var Vous pouvez explicitement passer des paires nom valeur ou des tableaux associatifs contenant des paires nom valeur Example 13 3 Exemple avec assign lt php passe des paires nom valeur Ssmarty gt assign Nom Fred Ssmarty gt assign Adresse Saddress passe un tableau associatif Ssmarty gt assign array Ville gt Lincoln Pays gt Nebraska passe un tableau SmyArray array no gt 10 label gt Peanuts Ssmarty gt assign foo myArray Passe une ligne d une base de donn es eg adodb sql select id name email from contacts where contact id Ssmarty gt assign contact db gt getRow sql 2 gt Acc der a cela dans un template avec notez que les variables sont sensibles la casse comme en PHP SName SAddress Scity Sstate Sfoo no foo label Sco
185. own else the section was not shown if L exemple ci dessus affichera 1 id 1000 lt br gt 2 id 1001 lt br gt 3 id 1002 lt br gt the section was shown total total contient le nombre d it rations que cette section bouclera Il peut tre utilis dans ou apr s une section Example 7 43 Exemple avec la propri t total section name customer loop custid step 2 Ssmarty section customer index id custid customer lt br gt section There are S smarty section customer total customers shown above Voir aussi foreach et Ssmarty section strip Il est fr quent que les designers web rencontrent des probl mes dus aux espaces et retours chariots qui affectent le rendu HTML fonctionnalit s des navigateurs les obligeant coller les balises les unes aux autres Cette solution rend g n ralement le code illisible et impossible maintenir 95 Fonctions natives Tout contenu situ entre les balises strip strip se verra all g des espaces superflus et des retours chariots en d but ou en fin de ligne avant qu il ne soit affich De la sorte vous pouvez conserver vos templates lisibles sans vous soucier des effets ind sirables que peuvent apporter les espaces superflus Note strip strip n affecte en aucun cas le contenu des variables de template Voir aussi le modificateur strip pour un rendu identique pour les variables Example 7 44 Balises strip
186. ple 11 1 SMARTY_DIR lt php d finit le chemin du r pertoire de Smarty sur un systeme nix define SMARTY_DIR usr local lib php Smarty v e r libs d finit le chemin du r pertoire de Smarty sur un systeme Windows define SMARTY_DIR c webroot libs Smarty v e r libs inclut la classe Smarty Notez le S en majuscule require_once SMARTY_DIR Smarty class php 2 gt Voir aussi Ssmarty const et Sphp_handling constants SMARTY_CORE_DIR Il doit s agir du chemin complet du r pertoire o se trouvent les fichiers internes de Smarty S il n est pas d fini Smarty placera comme valeur par d faut la valeur de la constante pr c dente SMARTY_ DIR S il est d fini le chemin doit se terminer par un slash Utilisez cette constante lorsque vous incluez manuellement n importe quel fichier core Example 11 2 S MARTY _CORE _ DIR lt php chargement de core get_microtime php require_once SMARTY_CORE DIR core get_microtime php o gt Voir aussi Ssmarty const 147 Chapter 12 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 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
187. programmation et la pr sentation En cons quence il est important de disposer d un bon syst me de template Les programmeurs ne veulent pas avoir faire au HTML et ne veulent pas non plus que les designers HTML bidouillent le code PHP Les designers ont besoin d outils comme des fichiers de configuration des blocs dynamiques et d autres solutions pour r pondre des probl matiques d interface mais ne veulent pas n cessairement avoir faire toutes les subtilit s de la programmation PHP Un rapide tour d horizon des solutions type template aujourd hui et l on s aper oit que la plupart d entre elles n offrent que des moyens rudimentaires pour substituer des variables dans des templates ainsi que des fonctionnalit s limit es de blocs dynamiques Cependant nous avons besoin d un peu plus Nous ne voulons pas que les programmeurs s occupent de la pr sentation HTML du TOUT mais cel est pratiquement in vitable Par exemple si un designer veut des couleurs d arri re plan diff rentes pour alterner entre diff rents blocs dynamiques il est n cessaire que ce dernier travaille avec le programmeur Nous avons aussi besoin que les designers soient capables de travailler avec leurs propres fichiers de configuration pour y r cup rer des variables exploitables dans leurs templates Et la liste est longue Fin 1999 nous avons commenc crire une sp cification pour un moteur de template Une fois la sp cification termin e nous avons
188. r echo Ceci apparaitera dans le template Sthis gt assign varX Strawberry php affichage de la variable lt strong gt varx lt strong gt est ma glace favorite Voir aussi Sphp_handling include_php include insert et les templates composantes section sectionelse Une section sert boucler dans des tableaux de donn es contrairement foreach qui est utilis pour boucler dans un simple tableau associatif Chaque balise section doit aller de paire avec une balise section fermante Nom attribut Type Requis D faut Description name chaine de caract re Oui n a Le nom de la section loop mixed Oui n a Valeur qui d termine le nombre de fois que la boucle sera ex cut e Start entier Non 0 La position de l index ou la section commencera son parcours Si la valeur donn e est n gative la position de d part est 82 Fonctions natives Nom attribut Type Requis D faut Description calcul e depuis la fin du tableau Par exemple s il existe 7 valeurs dans le tableau a parcourir et que start est a 2 l index de d part sera 5 Les valeurs incorrectes en dehors de la port e du tableau sont automatiquements tronqu es la valeur correcte la plus proche step entier Non 1 La valeur du pas qui sera utilis pour parcourir le tableau Par exemple step 2 parcourera les indices 0 2 4 etc Si step est n gatif
189. r n est utilis e lorsque securit y 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 Voir aussi Sright_delimiter et l analyse d chapement Smarty right_delimiter Il s agit du d limiteur droit utilis par le moteur de templates La valeur par d faut est Voir aussi left_delimiter et l analyse d chappement Smarty 155 Variables 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 Voir aussi Ssmarty request et Srequest_use_auto_globals request_use_auto_globals Sp cifie Si Smarty doit utiliser les variables PHP SHTTP_ _VARS request_use_auto_globals FALSE qui est la valeur par d faut ou _ request_use_auto_globals TRUE Cela affecte les templates qui utilisent smarty request Ssmarty get etc Attention Si vous configurez Srequest_use_auto_globals to true a TRUE Srequest_vars_order n a plus d effets et
190. r_object string object_name Voir aussi register_object et la section sur les objets 198 M thodes Name unregister_outputfilter D salloue dynamiquement un filtre de sortie Description void unregister_outputfilter string function _ name Utilis e pour d sallouer dynamiquement un filtre de sortie Voir aussi register_outputfilter et les filtres de sortie de template 199 M thodes Name unregister_postfilter D sallouer dynamiquement un filtre de post compilation Description void unregister_postfilter string function _ name Voir aussi register_postfilter et les filtres de post compilation 200 M thodes Name unregister_prefilter D salloue dynamiquement un filtre de pr compilation Description void unregister_prefilter string function _ name Voir aussi register_prefilter et les pr filtres 201 M thodes Name unregister_resource D salloue dynamiquement un plugin ressource Description void unregister_resource string name Passez en param tre le nom de la ressource Example 13 29 Exemple avec unregister_resource lt php Ssmarty gt unregister_resource db 2 gt Voir aussi register_resource et les ressources de template 202 Chapter 14 Cache Le cache est utilis e pour acc l rer l appel de display ou de fetch en sauvegardant leur r sultat dans un fichier Si
191. re passer des templates avant qu ils ne soient compil s Reportez vous la section filtres de pr compilation de templates pour avoir plus de renseignements sur la fagon de param trer les fonctions de pr compilation La fonction PHP de callback function peut tre soit Une cha ne de caract res contenant la fonction name e Un tableau sous la forme array amp Sobject Smethod o amp Sobject est une r f rence d objet et Smethod une chaine contenant le nom de la m thode e Un tableau sous la forme array class Smethod o class est le nom de la classe et Smethod est une m thode de la classe Voir aussi unregister_prefilter register_postfilter register_ouputfilter load_filter Sautoload_filters et les filtres de sortie de template 190 M thodes Name register_resource D clare dynamiquement une ressource plugin Description 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 la section ressources templates pour avoir plus d informations sur la fa on de param trer une fonction r cup rant des templates Note technique Un nom de ressource doit tre compos d au moins deux caract res Les noms de ressources d un seul caract re seront ignor s et utilis s comme tant une partie
192. rigger_error 142 Part Ill Smarty pour les programmeurs Table of Contents LL CONSTANTES trate td atacantes taaan te 147 SMARTY DIR mollata A A LS ES eS A II 147 SMARTY CORP DIRE SSSR a o dol 147 MEA TO 148 Hteimplate di a ne eLo lt Ce Leste ias milan cede EA 148 A een eo selon Bok Pare Aa eS en ss 148 CON GAIT SA er NAME ere os gad Smee ia saa eee late nee A sm LEE Se ead nek eet ae as 148 Splugins rss e ben TRUE 148 Sde bug sing 149 O NP Tes se 149 Sdebussme o E i sen ee rennes 150 Sautoload SI ETE cs 150 scompile checked al tt Dee Ls al it do 150 force compile este ad der e se ee en ee 151 o ON 151 cach dit ESS AE A tds 151 Scache lem dida delas 152 cache handler func A A A A See BE ES 152 Scache Modified Check dados 152 CONTE VE WS A i 152 A bOoleani Ze oso ass T E tenter cers 153 confis AAA eB eer sae dan line aaa verdure tend 153 COMMS E D ME WINES Here ne see ee atest sree cage R ihe TERRE CERN RE ART esate 153 default_template_handler_func see 154 Sphp handling lt s 40c20c sted a a sha a wnahedthastatrae bast a estra stags 154 O oe cA M rt ne Cie 154 SS CUIEL ON TON 154 sec y SEM ha 155 Ptrusted di tt NU tee cannon ale Piedad leo 155 AS A SR EE GR N SR 155 Srishteide limiters ER 155 Scompiler Class o eels 156 Sr quest Vars Order it a trad 156 request use auto slobals et on te RE Re ds 156 A O E E 156 COMPILE id mado a ls a oe RE D 156 SUSE SUD GIS Ais sans cates e
193. s ocooococcnocccononocononocononoconanoconnononos 19 Op rations math matiques esse usshoess tes c ienai oise piensssnotetaeetieen es ten fes 20 D sactiver l analyse de Smarty ccc cece ce cece nce ece eee eeeeeeeeeeeeeaeeeu sees eee eeueeegs 20 4 Martables cuidad tr a tn ein ns tte TOA Paced es 22 Variables assign es depuis PHP oooooccccnnccocnncnoconcnoconcnoroncnnroncnnroncnnroncnnroncnnronannnos 22 Tableaux aSsOciatits ado nn int eme en rene 23 Tableaux andexes Ia 24 Objets crise a e tante han ne dt tte rennes bah aT ni ok bathe md ns MUR 25 Variables charg es depuis des fichiers de configuration 26 Variable r s rv e SSmarty han nus shan devas sas cee a ATESA caian ste dant 28 Variables de requ te coito Dirt 28 OSMALLY NOW sc antenne va bat ted dante E ane its 29 ESMAS A ver en habeas art nn See Ou 29 SSMArLY CAPLUrS naar seas 29 Smarty CONS ent ten rose esse 29 smarty section smarty foreach oocooocinnnoccnnnocnnnconnnncnnnnonnnnccnnoncnoninnnns 29 smarty template ln tin Racin Aiken A A 30 MAA E ere ea a e RE AE a 30 smarty Idelim smarty rdelim ccc cece ce eeeeceeeeeceeeeeeeeeeeeeeeseeeeeaeees 30 2 Modificateurs de variables sci cccs it ra mue ais 31 CAPILLA tec ee ae en 32 Cdi 33 COURTE ChATACIETS cada 34 COUDL paragraphs Essen arte en E se rte En tn ent uns ane eased se betty 35 COUNTZSEMLENCES de ne tre da
194. s Scache_attrs est un tableau de noms d attributs qui doivent tre mis en cache pour que la fonction plugin re oive les valeurs telles qu elles taient d finies lorsque la page a t mise en cache a chaque r cup ration a partir du cache Example 14 10 Eviter la mise en cache du r sultat d un plugin lt php Ssmarty gt caching 1 function remaining_ seconds params Ssmarty Sremain params endtime time if Sremain gt 0 return remain second s else return done Ssmarty gt register_function remaining remaining_seconds false array endtime if Ssmarty gt is_cached index tpl r cup ration de obj partir de la page et assignation Ssmarty gt assign_by_ref obj Sobj Ssmarty gt display index tpl 2 gt O index tpl contient Time Remaining remaining endtime obj gt endtime Le nombre de secondes avant que la date de fin de Sob3 ne soit atteinte change chaque affichage de la page m me si la page est mise en cache Comme l attribut endtime est mis en cache il n y a que l objet qui ait besoin d tre extrait de la base de donn es lors de la mise en cache de la page mais pas lors des affichages ult rieurs de la page 209 Cache Example 14 11 Eviter la mise en cache d une portion du template lt php require Smarty class php Ssmarty new Smarty Ssmarty gt caching true function smarty_block_dynamic Sp
195. s es e Les fonctions PHP ne sont pas autoris es en tant modificateurs part celles sp cifi es dans Ssecurity_settings secure_dir Il s agit d un tableau contenant tous les fichiers et r pertoires locaux qui sont consid r s comme s curis s include et fetch l utilisent quand la s curit est activ e 154 Variables Example 12 5 Exemple avec secure_dir lt php Ssecure_dirs path to site root templates Ssecure_dirs path to includes Ssmarty gt secure_dir secure_dirs 2 gt Voir aussi la configuration pour la s curit et t rusted_dir 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 e PHP_HANDLING bool en Si TRUE 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 e INCLUDE_ANY bool en Si TRUE les templates peuvent tre inclus de n importe o quelque soit le contenu de secure dir e PHP_ TAGS bool en Si TRUE les balises php php sont autoris es dans les templates MODIFIER _FUNCS Le tableau des noms de fonctions autoris es tre utilis es comme modificateurs de variables e ALLOW_CONSTANTS bool en Si l acc s aux constantes via la syntaxe smarty const name est autoris ou non trusted dir Strusted_di
196. s es comme dans l exemple suivant Example 4 7 Afficher des variables de requ te Affiche la valeur de page dans l url _ GET http www example com index php p Ssmarty get page affiche la variable page r cup r e depuis un formulaire _POST page Ssmarty post page affiche la valeur du cookie utilisateur _COOKIE username Ssmarty cookies utilisateur affiche la variable serveur SERVER_NAME S _SERVER SERVER_NAME Ssmarty server SERVER_NAME affiche la variable d environnement PATH Ssmarty env PATH affiche la variable de session PHP id S_SESSION id Ssmarty session id affiche la variable utilisateur du regroupement de get post cookies server en Ssmarty request utilisateur Note Pour des raisons historiques SSCRIPT_NAME peut tre acc d directement cependant Ssmarty server SCRIPT_NAME est la solution propos e pour acc der cette valeur lt a href SSCRIPT_NAME page smarty gt click me lt a gt lt a href Ssmarty server SCRIPT_NAME page smarty gt click me lt a gt 28 Variables smarty now Le timestamp http php net function time courant peut tre r cup r grace a Ssmarty now La valeur correspond au nombre de secondes coul es depuis Epoch 1 Janvier 1970 et peut tre pass direct
197. s charg es depuis des fichiers de configuration ce cece cece cece eeeece seca een eene eens 26 Variable r serv s SM hs E EE Rent eine E are nee 28 Variabl s de tequila dense Me sente 28 Ssmarty E nes et 29 A Tee re ER aA A R NA ens ON ol ad ee er ih 29 SSMATLY CAPIULS Fresnes Mere ne need en ment eve 29 Ssmarty config cic tt Belin sesh edd dis stein Havin E eee vers ese eines 29 smarty section Ssmarty foreach cece eeeeeeeeseeeceeeeeeeceeeaaeeeeeeaaeeceeeaaeeeeeeaee 29 smartytemiplate is 30 A SSMALLYVSVETSION Enr en A PO ME LORS ARR nn MO Re DD Re ET 30 smarty Idelim smarty rdelim ooooccooccnnoocnnnconnnnconnnnnnonconnnncnnnornnnnccnnnncnnniinnns 30 2 Moditicateurs de variables esse rca m tisse attirant mana ana Maes ss padded tee 31 Capitalize pi M EEE E AA En 32 CALA oss saad secdeainslve sian ag See shes sas E 33 COURT CHATACTETS ao heh TR ces ic Sai Re ew we ba LE dns WA da gee weds buen anes cutee dees hacewes 34 count paragraphs tii asp eee de unten si pos E men se Pat E Rte kas tes irish 35 COUNT SEMENCES ere den do ae are dea ce der A A ne dns da Te Une RS DOS ed 36 6 8 F101 MA 0 O Ae CERN 37 date format 2 55 RNE 38 default set at dr a Mites nt tete Mo 41 ESCAPE A Beveled Seu en met AA AA A te NE 42 O O 44 Wi A A A O es 45 PA D ET EA E 46 TEGER replace A D EE EEA E E EEE E 47 TEPlACE a 55 355 O erase edeedooseshess seuss hiees 48 SPAacily vii en nine ren tnt ta 49
198. s de texte peuvent par exemple reconnaitre le fichier et adapter la coloration syntaxique Maintenant passons l dition du fichier index php Nous allons cr er une instance de Smarty assigner une valeur une variable de template et afficher le r sultat avec index tpl Installation Example 2 9 Edition de web www example com docs livredor index php lt php charge la biblioth que Smarty require_once SMARTY_ DIR Smarty class php Ssmarty new Smarty smarty gt template_ dir web www example com smarty livredor templates Ssmarty gt compile_dir web www example com smarty livredor templates_c Ssmarty gt config_dir web www example com smarty livredor configs smarty gt cache_ dir web www example com smarty livredor cache Ssmarty gt assign name Ned Ssmarty gt display index tpl1 2 gt Note techique Dans notre exemple nous avons configur les chemins absolus pour chacun des r pertoires Smarty Si web www example com smarty livredor est dans votre include_path PHP alors ces r glages ne sont pas n cessaires Quoi qu il en soit il est plus efficace et par exp rience moins g n rateur d erreurs de les d finir avec des chemins absolus Cel nous garantit que Smarty r cup rera les bons fichiers Et maintenant appelez le fichier index php avec navigateur Web Vous devriez voir Bonjour Ned Bienvenue dans Smarty Vous venez de term
199. s que les balises d insertion ne sont pas mises en cache Assurez vous qu aucune sortie rien n est transmise au navigateur avant l appel du template sans quoi la modification de l en t te chouera 243 Trucs et astuces Example 18 6 Utilisation d insert pour crire un en t te Content Type WML lt php assurez vous que Apache est configur pour les extensions wml mettez cette fonction quelque part dans votre applications ou dans Smarty addons php function insert_header cette fonction attend un argument Scontent if empty Sparams content return header Sparams content return 2 gt votre template Smarty doit commencer avec la balise d insertion insert name header content Content Type text vnd wap wml lt xml version 1 0 gt lt DOCTYPE wml PUBLIC WAPFORUM DID WML 1 1 EN http www wapforum org DTD w lt begin new wml deck gt lt wml gt lt begin first card gt lt card gt lt do type accept gt lt go href two gt lt do gt lt p gt Welcome to WAP with Smarty Press OK to continue lt p gt lt card gt lt begin second card gt lt card id two gt lt p gt Pretty easy isn t it lt p gt lt card gt lt wml gt 244 Trucs et astuces Templates composants Traditionnellemnt la programmation avec des templates dans les applications se d roule de la fagon suivante
200. s requ tes de la base de donn es sera affich avec html_checkboxes name contact_type_id options Scontact_types selected contact contact_type_id separator lt br gt Voir aussi html_radios et html_options html_image html_image est une fonction utilisateur qui g n re la balise HTML pour une image La hauteur et la longueur de l image sont calcul s automatiquement depuis le fichier image si aucune n est sp cifi e Nom attribut Type Requis D faut Description file chaine de Oui n a nom chemin des caract res images height cha ne de Non Hauteur de Hauteur de l image caract res l image actuelle afficher width cha ne de Non Longueur de Longueur de caract res l image actuelle l image afficher basedir cha ne de non racine du R pertoire depuis caract res serveur web lequel baser le calcul des chemins relatifs alt cha ne de non su Description caract res alternative de l image href cha ne de non n a valeur de l attribut caract res href indiquant le lien vers l image path_prefix cha ne de non n a Pr fixe pour le caract res chemin de la sortie 107 Fonctions utilisateur e basedir est le dossier de base dans lequel les images sont bas es S il n est pas fourni la variable d environnement _ENV DOCUMENT_ROOT sera utilis e Si Ssecurity est activ le chemin vers l image doit tre pr sent dans le dossier de s curit e href est la v
201. s utilisateur Nom attribut Type Requis Defaut Description values divers Oui N A Les valeurs sur lesquelles boucler soit une liste s par e par des virgules voir l attribut delimiter soit un tableau de valeurs print bool en Non TRUE S il faut afficher ou non cette valeur advance bool en Non TRUE Oui ou non aller la procha ne valeur delimiter cha ne de Non Le d limiteur a caract res utiliser dans la liste assign chaine de Non n a La variable de caract res template dans laquelle la sortie sera assign e reset bool en Non FALSE Le cycle sera d fini la premi re valeur Vous pouvez d finir plusieurs cycle dans votre template en leur donnant des noms uniques attribut name Vous pouvez emp cher la valeur courante de s afficher en d finissant l attribut print FALSE Ce proc d peut tre utile pour discr tement passer outre une valeur de la liste L attribut advance est utilis pour r p ter une valeur Lorsque d finit FALSE le prochain appel de cycle ram nera la m me valeur Si vous d finissez l attribut sp cial assign la sortie de la fonction cycle y sera assign e plut t que d tre directement affich e 100 Fonctions utilisateur Example 8 5 cycle section name rows loop Sdata lt tr bgcolor cycle values d0d0d0 gt lt td gt data rows lt td gt lt tr gt section Le template
202. sant la fonction PHP count http php net count comme modificateur e Les modificateurs sont charg s automatiquement depuis votre r pertoire de plugin Splugins dir ou peuvent tre enregistr s explicitement avec register modifier ceci est utile pour partager une fonction dans un scirpt PHP et les templates Smarty e Toutes les fonction PHP peuvent tre utilis es comme modificateur sans autre d claration tel que dans l exemple ci dessus Cepdendant l utilisation de fonctions PHP comme modificateurs contient deux petits pi ges viter e Le premier quelques fois l ordre des param tres de la fonction n est pas celui attendu Le formattage de foo avec 2 f sprintf foo fonctionne actuellement mais n est pas aussi intuitif que foo string_format 2 f ce qui est fournit par Smarty e Le deuxi me Si security est activ toutes les fonctions PHP qui devront tre utilis es comme modificateurs doivent tre d clar es dans l l ment MODIFIER_FUNCS du tableau security_ settings Voir aussi register_ modifier les modificateurs combin s et tendre Smarty avec des plugins capitalize Met la premi re lettre de chaque mot d une variable en majuscule C est l quivalent de la fonction PHP ucfirst http php net ucfirst Position du Type Requis D faut Description param tre 1 bool en No FALSE D termine si oui ou non les mots contenant des chiffres doivent tre mis en m
203. smarty gt assign Svar turn turn amp smarty array_keys Sparams Ssmarty gt trigger_error assign missing value parameter Svalue Voir aussi register_function et unregister_function Modificateurs Les modificateurs sont de petites fonctions appliqu es une variable de template avant qu elle ne soit affich e ou utilis e dans un autre contexte Les modificateurs peuvent tre chain s entre eux mixed smarty modifier name value mixed Svalue mixed Sparaml Sparaml Le premier param tre pass au modificateur est la valeur sur laquelle le modificateur est suppos op rer Les autres param tres peuvent tre optionnels d pendant de quel genre d op ration doit tre effectu Le modificateur doit retourner http php net return le r sultat de son ex cution 224 Etendre Smarty avec des plugins Example 16 3 Plugin modificateur simple Ce plugin est un alias d une fonction PHP Il n a aucun param tre suppl mentaires lt php Smarty plugin Fichier modifier capitalize php Type modificateur Name capitalize R le met une majuscule aux mots d une phrase function smarty_modifier_capitalize string return ucwords string 225 Etendre Smarty avec des plugins Example 16 4 Un plugin modificateur un peu plus complexe lt php Smarty plugin Fichier modifier tr
204. st example com lt br gt 555 444 3333 lt br gt 555 111 1234 lt br gt Objets Les attributs des objets assign s depuis PHP peuvent tre utilis es en en sp cifiant le nom apr s le symbole gt 25 Variables Example 4 5 Acc der aux attributs des objets nom person gt name lt br gt email person gt email lt br gt Affichera nom Zaphod Beeblebrox lt br gt email zaphod slartibartfast example com lt br gt Variables charg es depuis des fichiers de configuration Les variables r cup r es depuis un fichier de configuration sont utilis es entour es du symbole di se ou via la variable sp ciale smarty smarty config La derni re synthaxe est utile pour mettre entre guillemets les valeurs des attributs 26 Variables ExcmmipRe dG ivarisbl suitifichias de t afiguration pageTitle C est le mien bodyBgColor eeeeee tableBorderSize 3 tableBgColor bbbbbb rowBgColor cccccc Exemple de template config_load file foo conf lt html gt lt title gt pageTitle lt title gt lt body bgcolor bodyBgColor gt lt table border tableBorderSize bgcolor tableBgColor gt lt tr bgcolor rowBgColor gt lt td gt First lt td gt lt td gt Last lt td gt lt td gt Address lt td gt lt tr gt lt table gt lt body gt lt html gt Un template d montrant la m thode smarty config config_load file
205. t SstartDate date_format Affichera Jan 4 2009 SstartDate date_format SY m d Affichera 2009 01 04 Les dates peuvent tre compar es dans le template en utilisant les timestamps comme ceci if datel lt Sdate2 if En utilisant la fonction html_select_date dans un template le programmeur veut en g n ral convertir le r sultat d un formulaire en un timestamp Voici une fonction qui devrait vous tre utile 242 Trucs et astuces Example 18 5 Conversion des l ments date d un formulaire en timestamp lt php cela suppose que vos l ments de formulaire soient nomm s startDate_Day startDate_Month startDate_Year SstartDate makeTimeStamp startDate_Year startDate_Month SstartDate_Day function makeTimeStamp Syear Smonth Sday if empty Syear Syear strftime SY if empty Smonth Smonth strftime m if empty day day strftime d return mktime 0 0 0 month Sday Syear Voir aussi html_select_date html_select_time date_format et Ssmarty now WAP WML Les templates WAP WML n cessitent un en t te Content Type http php net header qui doit tre pass avec le template Le moyen le plus facile de faire cel est d crire une fonction utilisateur qui crit l en t te Si vous utilisez le cache cel ne fonctionnera pas Nous utiliserons donc une balise d insertion insert rappelez vou
206. t est un maux grandissant disent les experts Voir aussi replace et escape replace Un simple remplacement de cha ne de caract res C est l quivalent de la fonction PHP str_replace http php net str_replace Position du Type Requis Defaut Description param tre 1 chaine de Oui n a cha ne remplacer caract res 2 cha ne de Oui n a cha ne de caract res remplacement 48 Modificateurs de variables Example 5 16 replace lt php Ssmarty gt assign titreArticle Child s Stool Great for Use in Garden 2 gt Ou le template est StitreArticle StitreArticle replace Garden Vineyard StitreArticle replace ae Affichera Child s Stool Great for Use in Garden Child s Stool Great for Use in Vineyard Child s Stool Great for Use in Garden Voir aussi regex_replace et escape spacify spacify est un moyen pour ins rer un espace entre tous les caract res d une variable Optionnellement vous pouvez lui passer un caract re ou une chaine diff rent de l espace a ins rer Position du Type Requis Defaut Description param tre 1 cha ne de caract re Non espace Ce qui est ins r entre chaque caract re de la variable 49 Modificateurs de variables Example 5 17 spacify lt php Ssmarty gt assign titreArticle Quelque chose s est mal pass et provoqu cet accident disent les experts
207. t FALSE sinon e La troisi me fonction est suppos e retourner TRUE ou FALSE selon si la ressource demand e est s re ou non La fonction est utilis e seulement pour les ressources templates mais doit tout de m me tre d finie e La quatri me fonction est suppos e retourner TRUE ou FALSE selon si l on peut faire confiance ou non la ressource demand e Cette fonction est utilis e seulement pour les composants de scripts PHP demand s par les balises include _ php ou insert ayant un attribut src Quoiqu il en soit elle doit tre d finie pour les ressources templates 233 Etendre Smarty avec des plugins Example 16 10 resource plugin Smarty plugin Fichier resource db php Type ressource Nom db R le R cup re des templates depuis une base de donn es function smarty_resource_db_source tpl_name amp Stpl_source amp Ssmarty fait des requ tes BD pour r cup rer votr et remplir tpl_source Ssql new SQL Ssql gt query select tpl_source from my_table where tpl_name Stpl_name if sql gt num_rows Stpl_source sql gt record tpl_source return true else return false function smarty_resource_db_timestamp tpl_name fait des requ tes BD pour remplir Stpl_t Ssql new SQL Ssql gt query select tpl_timestamp from my_table where tpl_name Stpl_name if sql gt num_rows Stpl_timest
208. t gt lt option label Golf lt option label Cric lt option lt optgroup gt lt optgroup label Rest gt lt option label Saun lt option label Mass lt optgroup gt lt select gt a value 3 gt Sauna lt option gt age value 1 gt Massage lt option gt Voir aussi html_checkboxes et html_radios html radios html_radios est une fonction personnalis e qui cr e des boutons radio html a partir des donn es fournies Elle prend en charge les l ments s lectionn s par d faut Nom attribut Type Requis Defaut Description name chaine de Non radio Nom de la liste caract res boutons radio values tableau Oui moins que n a Le tableau des vous n utilisiez valeurs des boutons l attribut options radio 112 Fonctions utilisateur Nom attribut Type Requis Defaut Description output tableau Oui moins que n a Un tableau de vous n utilisiez libell s pour les l attribut options boutons radio checked cha ne de Non empty Les boutons radios caract res s lectionn s options tableau associatif Oui moins que n a Un tableau vous n utilisiez associatif valeurs values et outputs libell s separator cha ne de Non empty Cha ne de caract res s paration placer entre les boutons radio assign cha ne de Non empty Assigne les balises caract res des boutons radio un tableau plut t que de les afficher e Les attributs r
209. ta array array name gt John Smith home gt 555 555 5555 cell gt 666 555 5555 email gt Jjohn myexample com array name gt Jack Jones home gt 777 555 5555 cell gt 888 555 5555 email gt jack myexample com array name gt Jane Munson home gt 000 555 5555 cell gt 123456 email gt janelmyexample com Ssmarty gt assign contacts data 2 gt Le template pour afficher Scontacts section name customer loop Scontacts lt p gt name Scontacts customer name lt br home Scontacts customer home lt br cell S contacts customer cell lt br e mail contacts customer email lt p gt section L exemple ci dessus affichera lt p gt name John Smith lt br gt home 555 555 5555 lt br gt cell 666 555 5555 lt br gt e mail john myexample com lt p gt lt p gt name Jack Jones lt br gt home phon 777 555 5555 lt br gt cell phone 888 555 5555 lt br gt e mail jack myexample com lt p gt lt p gt name Jane Munson lt br gt home phon 000 555 5555 lt br gt cell phone 123456 lt br gt e mail jane myexample com lt p gt gt gt gt 86 Fonctions natives Example 7 34 section d montrant l utilisation de la variable loop Cet exemple suppose que Scustid Sname et Saddress sont tous des tableaux contenant le m me nombre de valeurs Tout d abord
210. tableau contenant les noms des colonnes Si l attribut cols est vide mais que des lignes sont donn es alors le nombre de colonnes sera calcul en utilisant le nombre de lignes et le nombre d l ments afficher pour quil y ait juste assez de colonnes pour afficher tous les l ments Si les lignes et les colonnes sont omis tous les deux la valeur par d faut de cols sera appliqu e savoir 3 Si fourni en tant que liste ou tableau le nombre de colonnes est calcul par rapport au nombre d l ments de la liste ou du tableau TOWS entier No empty Nombre de lignes de la table Si l attribut rows est vide mais que des colonnes sont donn es alors le nombre de lignes sera calcul e en 123 Fonctions utilisateur Nom de l attribut Type Requis D faut Description utilisant le nombre de colonnes et le nombre d l ments afficher pour qu il y ait juste assez de lignes pour afficher tous les l ments inner cha ne de No cols La direction du caract res rendu des l ments cons cutifs dans la boucle du tableau cols signifie que les l ments doivent tre afficher colonnes par colonnes rows signifie que les l ments doivent tre afficher lignes par lignes caption cha ne de No empty Texte utiliser caract res pour l l ment lt caption gt du tableau table_attr chaine de Non border 1 attributs pour la cara
211. taires lt select name company gt lt option value 0 gt non lt option gt html_options options vals selected selected_id lt select gt ised aby ES Balise cvs pour un template ci dessous le 36 DOIT il sera converti en cvs amp 36 Id Exp amp 36 id lt body gt lt html gt 16 ay TRE une devise am ricaine Bases syntaxiques Variables Les variables de template commence par un signe dollar Elles peuvent contenir des nombres des lettres et des underscores tout comme une variable PHP http php net language variables Vous pouvez r f rencer des tableaux index s num riquement ou non Vous pouvez aussi r f rencer des propri t s d objet ainsi que des m thodes Les variables des fichiers de configuration sont une exception la synthaxe utilisant un signe dollar Elles peuvent tre r f renc es en les entourant du signe di se ou via la variable sp ciale Ssmarty config Example 3 2 Variables Sfoo lt affiche une variable simple qui n estpas un tableau ou un objet Sfoo 4 lt affiche le 5 me l ment d un tableau index foo bar lt affiche la cl bar d un tableau identique foo bar en PH Sfoo Sbar lt affiche la valeur de la cl d un tableau identique a S foo Sbar Sfoo gt bar lt affiche la propri t bar de l objet Sfoo gt bar lt
212. tan ment en leur donnant des noms uniques Si vous ne donnez pas de nom un compteur default sera utilis Si vous donnez une valeur l attribut assign alors la sortie de la fonction counter sera assign e la variable de template donn e plut t que d tre directement affich e 98 Fonctions utilisateur Nom attribut Type Requis Defaut Description name cha ne de caract re Non default Le nom du compteur start num rique Non 1 La valeur initiale du compteur Skip num rique Non 1 L intervale du compteur direction cha ne de Non up la direction du caract res compteur up down compte d compte print bool en Non TRUE S il faut afficher cette valeur ou non assign cha ne de Non n a La variable dans caract res laquelle la valeur du compteur sera assign e Example 8 4 counter initialisation du compteur counter start 0 skip 2 lt br gt counter lt br gt counter lt br gt counter lt br gt L exemple ci dessus affichera O lt br gt 2 lt br gt 4 lt br gt 6 lt br gt cycle cycle est utilis pour boucler sur un ensemble de valeurs Tr s pratique pour alterner entre deux ou plusieurs couleurs dans un tableau ou plus g n ralement pour boucler sur les valeurs d un tableau Nom attribut Type Requis Defaut Description name cha ne de Non default Le nom du cycle caract res 99 Fonction
213. te quelle source laquelle vous avez acc s avec PHP base de donn es sockets LDAP et ainsi de suite Il suffit d crire les fonctions de ressource plugins et de les enregistrer aupr s de Smarty Reportez vous la section ressource plugins pour plus d informations sur les fonctions que vous tes cens fournir Note Notez que vous ne pouvez pas craser la ressource file native toutefois vous pouvez fournir une ressource qui r cup re un template depuis le syst me de fichier par un autre moyen en l enregistrant sous un autre nom de ressource 218 Fonctionnalit s avanc es Example 15 9 Utilisation de ressources utilisateurs mettez ces fonctions quelque part dans votre application function db_get_template Stpl_name amp Stpl_source amp smarty_obj requ te BD pour r cup rer le templat et remplir tpl_source Ssql new SQL Ssql gt query select tpl_source from my_table where tpl_name Stpl_name if sql gt num_rows Stpl_source sql gt record tpl_source return true else return false function db_get_timestamp Stpl_name amp Stpl_timestamp amp Ssmarty_ob j requ te BD pour remplir tpl_timestamp Ssql new SQL Ssql gt query select tpl_timestamp from my_table where tpl_name Stpl_name if sql gt num_rows Stpl_timestamp sql gt record tpl_timestamp return true else return false function db_get_secure tpl1_name
214. ten Tegister_pOstfilterQ sus ss sans peine dires ccebdews cadveres dduvnnveddocreedceedawes du p eu en d s resister pretlll sereine is ani dette nent de E register TESOUNCE sim ve Wesco veh Sot Sie ee gh ie ess THLOS E TTON rs O ROO template exists merren A nn ode bee oa Saeed UNE Sister DIOCKO sn oye wove tds dere daen enn E do e a thadee vSaeweuwed a E a EA Aa unregister_compiler_function ses UNE Sister TUCU O cores srl a unrepister modirier iii id A en m vovede deh made ae Aids A a hae del Pen er trente unrepist r_outputfilt r ssissenisenen A a ERS IR AAA AS unrepist r prefilt rO s ea aenea E ea Se ade eens tn nent ede event ode ees debas UNE PISE TES OULCE 2 vara ecs sd cies recone Mone date de tee baa dane deed dt TA CACHE ri nn rene tn ete E ann mentir bays ome En Parametrer le cach s fetes nee one anne enfin den Caches multiples pour une seule page snoi ar ence ence ence E EEE E RO sean eeaes Groupes de Tichi rs dE Cache 20 255 fserisewauvengasdgnt ig soecewk dan nato wed hasadbud E EEAS Contr ler la mise en cache des sorties des Plugins ooocooccncccnccnnccnnccnnconnconnconnconaconiconnss 15 Fonctionnalit s AVanc es ss usant de ete tune ues cade ps uadss oh vee thsh Venues wee YEERE Objeto tits BEN oe AO o REE Piltr s de pre compilation s sever skecz ins camete vankce boys ne E aaa Se wet bed ea etre Filtres de post compilation sienne Filtres de 7SOr es stands setae
215. termin par un slash Example 2 2 Cr er une instance de Smarty Voici comment cr er une instance de Smarty dans vos scripts PHP lt php Note Smarty a un S majuscule require_once Smarty class php Ssmarty new Smarty 2 gt Essayez de lancer le script ci dessus Si vous obtenez une erreur indiquant que le fichier Smarty class php n est pas trouv tentez l une des actions suivantes Installation Example 2 3 D finition manuelle de la constante SMARTY_DIR lt php Style nix notez le S majuscule define SMARTY_DIR usr local lib php Smarty v e r libs Style Windows define SMARTY_DIR c webroot libs Smarty v e r libs require_once SMARTY_ DIR Smarty class php Ssmarty new Smarty gt Example 2 4 D finir le chemin absolu au fichier de la biblioth que lt php Style nix notez le S majuscule require_once usr local lib php Smarty v e r libs Smarty class php Style Windows require_once c webroot libs Smarty v e r libs Smarty class php Ssmarty new Smarty 2 gt Example 2 5 Ajout du dossier contenant la bibliotheque 4 l include_path de PHP lt php Editez votre fichier php ini ajoutez le dossier contenant la biblioth que Smarty l include path et red marrez le serveur web Puis ce qui suit devrait fonctionner require_once Smarty class php Ssmarty new Smarty 2 gt Maintenant que les fichiers
216. tiliser la premi re m thode autant que possible afin de r duire la syntaxe des templates au minimum Si l option de s curit est activ e aucune m thode ou fonctions priv es n est accessible commentant par _ S il existe une m thode et une propri t du m me nom c est la m thode qui sera utilis e Vous pouvez restreindre l acc s aux m thodes et aux propri t s en les listant dans un tableau en tant que troisi me param tre d allocation Par d faut les param tres pass s aux objets depuis le template le sont de la m me fa on que les fonctions utilisateurs les r cup rent Le premier param tre correspond un tableau associatif le second l objet Smarty Si vous souhaitez que les param tres soient pass s un un comme dans un appel traditionnel d finissez registration quatri me param tre optionnel FALSE Le cinqui me param tre optionnel n a d effet que si le param tre format vaut t rue et il contient une liste de m thodes qui doivent tre trait es comme des blocks Cel signifie que ces m thodes ont un tag fermant dans le template foobar gt meth2 foobar gt meth2 et que les param tres de ces m thodes fonctionnent de la m me fa on que les param tres des blocks de fonctions des plugins Ils contiennent 4 param tres Sparams content smart y et Srepeat et ils fonctionnent de la m me fa on que les blocks de fonctions des plugins 211 Fonctionnalit s avanc es
217. time en PHP comme YYYYMMDD taient parfois d pendament de l impl mentation de strtotime interpr t es en tant que des cha nes date et NON des timestamps La seule exception est les timestamps MySQL Ils sont uniquement num riques et d une longueur de 14 caract res YY YYMMDDHHMMSS Les timestamps MySQL ont la priorit sur les timestamps Unix Note pour les d veloppeurs date_format est essentiellement un gestionnaire pour la fonction PHP st rft ime http php net strftime Vous pourriez avoir plus ou moins d options disponibles suivant le syst me sur lequel la fonction PHP strftime http php net strftime a t compil V rifiez la documentation pour votre syst me pour avoir une liste compl te des options disponibles Example 5 8 date_format lt php Sconfig date ST SM Sp Sconfig time SH M S Ssmarty gt assign config config Ssmarty gt assign hier strtotime 1 day O le template est utilisation de Ssmart y now Ssmarty now date_format Ssmarty now date_format D Ssmarty now date_format Sconfig date Syesterday date_format Syesterday date_format A B e Y Syesterday date_format Sconfig time Affichera Jan 1 2022 02 06 01 02 33 pm Dec 31 2021 Monday December 1 2021 14 33 00 39 Modificateurs de variables Conversion de date_format e a Abr viation du jour de la semaine selon les param tres locaux A
218. tir de n importe quel r pertoire ooccoccoccncnnconcnoroncnoroncnnrononns 217 Templates depuis d autres SQUICES 00 0 0 cece cece ence ee ee cee cece ne cene een eeneeeeneeeees 218 Fonction de gestion de template par d faut 220 16 Etendre Smarty avec des plugins 2 0 0 0 cece cece eee E E cena cen E a E e es 221 Comment fonctionnent les plugins oooccoocccnnoccnnccnnnnccnnnocnnnccnnnnconnnccnnnccnnnncinnincnns 221 Conventions d n mmage sis ein hie iho tes cope tete eee 221 ECT des plu sins sien n e A rend fn ge eee soon denses 222 Les fonctions de templates ss 222 MOdificateurs sise trans dass teas deb tie headend tonne a L rca 224 Fonctions de Dlo6s 5 Re et A eN evens 226 Fonctions de compilation ssie pesas unis E firent terne 228 filtres de pr compilation filtres de post compilation 229 Filtres de SOS rta 231 RESSOULCES ES 232 ISO A dee 235 TV Appendices ii A e tay 236 vi Smarty le moteur et compilateur de template PHP 17 Diagnostic des erre rs etico intense tente Sea EEE Ep Poids ttes true 238 Erreurs Smarty PHP a o odin vita de Ba Lak fete ahead SAV S 238 18 Trs et ASUS sen am a ae ne See eg sen ne oda an EE dede ee Nid st 240 Gestion des variables non assign es e cece cece cece cece cece cece ee ceneceneeeeeeeeeeeeeeeeeaes 240 Gestion des variables par d faut 0 cc cece eece ence e
219. tpl themes blue et les effacer avec clear_cache null themes blue Example 14 9 Groupes d identifiants de cache lt php require Smarty class php Ssmarty new Smarty Ssmarty gt caching true efface tous les fichiers de cache avec sports basketball comme premiers groupes d identifiants de cache Ssmarty gt clear_cache null sports basketbal1 efface tous les fichiers de cache sports comme premier groupe d identifiants Inclue donc sports basketball ou sports nimportequoi nimportequoi Ssmarty gt clear_cache null sports Ssmarty gt display index tpl sports basketball 2 gt Contr ler la mise en cache des sorties des Plugins Depuis Smarty 2 6 0 la mise en cache des plugins peut tre d clar e lors de leur inscription Les troisi mes param tres de register_block register_compiler_function et 208 Cache register_function sont appel s cacheable et valent TRUE par d faut ce qui est aussi le comportement par d faut des versions de Smarty pr c dent la 2 6 0 Lors de l inscription d un plugin avec cacheable false le plugin est appel chaque fois que la page est affich e m me si la page vient du cache La fonction plugin se comporte presque comme la fonction insert Contrairement insert les attributs pour le plugin ne sont pas mis en cache par d faut Cela peut tre le cas en utilisant le quatri me param tre Scache_attr
220. tributes are from and item e The name of the foreach loop can be anything you like made up of letters numbers and underscores like PHP variables http php net language variables e foreach loops can be nested and the nested foreach names must be unique from each other e The fromattribute usually an array of values determines the number of times foreach will loop e foreachelse is executed when there are no values in the from variable e foreach loops also have their own variables that handle properties These are accessed with Ssmarty foreach name property with name being the name attribute Note The name attribute is only required when you want to access a foreach property unlike section Accessing a foreach property with name undefined does not throw an error but leads to unpredictable results instead e foreach properties are index iteration first last show total Example 7 5 L attribut item lt php Sarr array 1000 1001 1002 Ssmarty gt assign myArray Sarr 2 gt Template pour afficher myArra y dans une liste non ordonn e lt ul gt foreach from SmyArray item foo lt li gt S foo lt li gt foreach lt ul gt L exemple ci dessus affichera lt ul gt lt 1i gt 1000 lt 1i gt lt 1i gt 1001 lt 1i gt lt 1i gt 1002 lt 1i gt lt ul gt 64 Fonctions natives Example 7 6 Utilisation des attributs itemet key lt php Sarr arr
221. u site conf n est pas dans le dossier Fatal error Smarty error the Scompile_dir templates_c does not ex or is not a directory e Soit le dossier Scompile_dir n est pas correctement d fini le dossier n existe pas ou templates_c est un fichier et non un dossier Fatal error Smarty error unable to write to compile_dir e Le dossier compile dir n est pas accessible en criture par le serveur web Voir le bas de la page sur l installation de Smarty pour les permissions Fatal error Smarty error the cache_dir cache does not exist or is not a directory in e Cela signifie que caching est activ et soit le dossier cache_dir n est pas correctement d fini le dossier n existe pas ou cache est un fichier et non un dossier Fatal error Smarty error unable to write to cache_dir e Cela signifie que caching est activ et le dossier cache dir n est pas accessible en criture par le serveur web Voir le bas de la page sur l installation de Smarty pour les permissions Voir aussi le d bogage Serror_reportingettrigger_error 239 Chapter 18 Trucs et astuces Gestion des variables non assignees Peut tre voudrez vous des fois afficher une valeur par d faut pour une variable qui n a pas t assign e comme pour afficher amp nbsp afin que les couleurs de fond des tableaux fonctionnent Beaucoup utiliseraient une instruction if pour g rer cela mais il existe un moyen plus facile dans
222. um rote Example 13 1 Exemple avec append lt php passe des paires nom valeur Ssmarty gt append Nom Fred Ssmarty gt append Adresse Saddress Sarray array l gt un 2 gt deux Ssmarty gt append X Sarray Sarray2 array 3 gt trois 4 gt quatre La ligne suivante ajoute un second l ment au tableau X Ssmarty gt append X Sarray2 passe un tableau associatif Ssmarty gt append array Ville gt Lincoln Pays gt Nebraska 2 gt Voir aussi append_by_ref assign et get_template_vars 159 M thodes Name append_by_ref Ajoute des valeurs par r f rence Description void append_ by_ ref string varname mixed var bool merge Utilis e pour ajouter des valeurs 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 TRUE la valeur sera fusionn e avec le tableau courant plut t que d tre ajout e Note technique Le param tre merge respecte les cl s du tableau donc si vous fusionnez deux tableaux index s num riquement ils peuvent se recouvrir les uns les autres ou ab
223. un fichier de cache est disponible lors d un appel il sera affich sans qu il ne soit n cessaire de reg n rer le r sultat Le syst me de cache peut acc l rer les traitements de fa on impressionnante en particulier les templates dont la compilation est tr s longue Comme le r sultat de display ou de fetch est dans le cache un fichier de cache peut tre compos de plusieurs fichiers de templates plusieurs fichiers de configuration etc Comme les templates sont dynamiques il est important de faire attention la fa on dont les fichiers de cache sont g n r s et pour combien de temps Si par exemple vous affichez la page d accueil de votre site Web dont le contenu ne change pas souvent il peut tre int ressant de mettre cette page dans le cache pour une heure ou plus A l inverse si vous affichez une page de m t o mise a jour toutes les minutes mettre cette page en cache n a aucun sens Parametrer le cache La premi re chose faire est d activer le cache en mettant Scaching 1 ou 2 Example 14 1 Activation du cache lt php require Smarty class php Ssmarty new Smarty Ssmarty gt caching 1 Ssmarty gt display index tpl1 2 gt Avec le cache activ la fonction display index tpl va afficher le template mais sauvegardera par la m me occasion une copie du r sultat dans un fichier de cache du r pertoire cache_dir Au prochain appel de display index tpl le fichier de cache ser
224. un formulaire en timestamp 243 18 6 Utilisation d insert pour crire un en t te Content Type WML 244 187 Template Composant zh humains osensaheods cates puted se dane Me ea rte eet E dee da 245 18 8 Exemple de dissimulation d une adresse email cece eee cece ceee cece a eece een eeneeeneeennees 246 xi Preface Comment rendre mes scripts PHP ind pendants de la pr sentation Voici sans doute la question la plus pos e sur la mailing list PHP Alors que PHP est tiquet langage de script pour HTML on se rend vite compte apr s quelques projets qui m langent sans complexe HTML et PHP que la s paration entre la forme et le contenu c est bien TM De plus dans de nombreuses entreprises les r les du designer et du programmeur sont distincts La solution template coule donc de source Dans notre entreprise par exemple le d veloppement d une application se fait de la mani re suivante une fois le cahier des charges crit le designer r alise une maquette et donne ses interfaces au programmeur Le programmeur impl mente les fonctionnalit s applicatives et utilise les maquettes pour faire des squelettes de templates Le projet est alors pass au designer HTML responsable de la mise en page qui am ne les templates jusqu au faite de leur gloire Il est possible que le projet fasse une fois ou deux des allers retours entre la
225. uncate php Type modificateur Name truncate R le Tronque une chaene a une certaine longueur si Ej n cessaire la coupe optionnellement au milieu d un mot et ajoute la chaene Setc function smarty_modifier_truncate string length 80 Setc Sbreak_words false if Slength 0 return if strlen string gt length Slength strlen Setc Sfragment substr string 0 Slength 1 if Sbreak_words Sfragment substr fragment 0 1 else fragment preg_replace s S Sfragment return Sfragment Setc else return string 2 gt Voir aussi register_modifier etunregister_modifier Fonctions de blocs void smarty_block_name Sparams content amp Ssmarty array Sparams mixed Scontent object amp Ssmarty Les fonctions de blocs sont des fonctions de la forme func func En d autres mots elles englobent des blocs de template et op rent sur les contenus de ces blocs Les fonctions de blocs ont la priorit sur les fonctions utilisateurs de m me nom ce qui signifie que vous ne pouvez avoir une fonction utilisateur func et une fonction de bloc func func e Par d faut l impl mentation de votre fonction est appel e deux fois par Smarty une fois pour la balise ouvrante et une autre fois pour la balise fermante voir repeat ci dessous sur la fa on de modifier ce comportement 226 Etendre Smarty avec des plugins Seule la b
226. ur nobody et Installation du group nobody Pour les utilisateurs de OS X l utilisateur par d faut est web et le group web Si vous utilisez Apache vous pouvez parcourir le fichier ht tpd conf en g n ral dans usr local apache conf pour d terminer quel est l utilisateur et le groupe auquel il appartient Example 2 7 r gler les permissions d acc s chown nobody nobody web www example com smarty livredor templates_c chmod 770 web www example com smarty livredor templates_c chown nobody nobody web www example com smarty livredor cache chmod 770 web www example com smarty livredor cache Note La commande chmod 770 est relativement bien s curis e elle donne l utilisateur nobody et au groupe nobody les acc s en lecture criture aux r pertoires Si vous voulez donner le droit d acc s en lecture tout le monde principalement pour pouvoir acc der vous m me ces fichiers vous pouvez lui pr f rer chmod 775 Nous devons cr er le fichier index tpl que Smarty va charger Il va se trouver dans le dossier Stemplate_dir Example 2 8 Notre web www example com smarty templates index tpl Smarty Bonjour Sname Bienvenue dans Smarty Note technique Smarty est un commentaire de template Il n est pas obligatoire mais il est bon de commencer tous vos templates avec ce commentaire Cela rend le fichier facilement reconnaissable en plus de son extension Les diteur
227. var_dump http php net var_dump dessus et la structure devrait apparaitre Example 16 5 Fonction de bloc lt php Smarty plugin Fichier block translate php Type bloc Nom translate R le traduire un bloc de texte function smarty_block_translate params content amp Ssmarty amp Srepeat n affiche que lors de la balise fermante if Srepeat if isset Scontent Slang Sparams lang effectuer une bonne traduction ici avec Scontent return Stranslation Voir aussi register_block etunregister_block 227 Etendre Smarty avec des plugins Fonctions de compilation Les fonctions de compilation sont appel es durant la compilation du template Elles sont utiles pour injecter du code PHP ou du contenu statique variant avec le temps bandeau de pub par ex Si une fonction de compilation et une fonction personnalis e ont le m me nom la fonction de compilation a priorit mixed smarty compiler name tag arg amp Ssmarty string Stag_arg object amp Ssmarty Les fonctions de compilation ont deux param tres une cha ne contenant la balise en gros tout depuis le nom de la fonction jusqu au d limiteur de fin et l objet Smarty Elles sont cens es retourner le code PHP qui doit tre inject dans le template compil 228 Etendre Smarty avec des plugins Example 16 6 Fonction de compilation simple lt
228. 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 smarty nodefaults default resource type Ceci dit smarty quel type de ressource utiliser implicitement La valeur par d faut est file signifiant que Ssmarty gt display index tpl et smarty gt display file index tpl sont la m me chose Voyez le chapitre ressource pour plus de d tails 157 Chapter 13 Methodes 158 M thodes Name append Ajoute un l ment a un tableau assign Description void append mixed var void append string varname mixed var bool merge Si vous utilisez cette fonction avec une cha ne de caract res elle est convertie en tableau auquel on ajoute ensuite l l ment Vous pouvez explicitement passer des paires nom valeur Si vous passez le troisi me param tre optionel TRUE la valeur sera fusionn e avec le tableau plut t que d tre ajout e Note technique Le param tre merge respecte les cl s du tableau donc si vous fusionnez deux tableaux index s num riquement ils peuvent se recouvrir les uns les autres ou aboutir des cl s non s quentielles Ceci est dif rent de la fonction PHP array_merge http php net array_merge qui limine des cl s num riques et les ren
229. vous voulez acc der directement un objet enregistr avec une fonction utilisateur Lisez la documentation sur les objets pour plus d informations Example 13 17 Exemple avec get_registered_object lt php function smarty_block_foo S params amp smarty if isset Sparams object r cup re la r f rence de l objet enregistr Sobj_ref amp amp smarty gt get_registered_object Sparams object Sobj_ref est maintenant une r f rence vers l objet Voir aussi register_object unregister_object et la section sur les objets 177 M thodes Name get_template_vars Retourne la valeur assign e pass e en param tre Description array get_template_vars string varname Si aucun param tre n est donn un tableau de toutes les variables assign es est retourn Example 13 18 Exemple avec get_template_vars lt php r cup re la variable foo assign e au templat get assigned template var foo SmyVar smarty gt get_template_vars foo r cup re toutes les variables assign es a ce templat Sall_tpl_vars Ssmarty gt get_template_vars les affiche a l cran print _r all tpl_vars 2 gt Voir aussi assign assign append clear_assign clear_all_assign et get_config_vars 178 M thodes Name is_cached Retourne TRUE s il y a un fichier de cache valide pour ce template Description
230. www example com smarty livredor cache Sthis gt caching true Sthis gt assign app_name Guest Book gt Modifions maintenant le fichier index php pour qu il utilise setup php 10 Installation Example 2 11 Edition de web www example com docs livredor index php lt php require livredor setup php Ssmarty new Smarty_livredor Ssmarty gt assign name Ned Ssmarty gt display index tpl1 2 gt Vous savez maintenant qu il est facile de cr er une instance de Smarty correctement configur e en utilisant Smart y_livredor qui initialise automatiquement tout ce qu il faut pour votre application 11 Part Il Smarty pour les graphistes Table of Contents 3 BaSeSiSVMLAXIQUeS sereine ia tiara potosi 15 Commentaires A dos A ONG CaN oe LOS at NCOP a eines rent 15 Variables ds do cd land ads 17 FONCIONS ia 17 ParaMetres cies iris rta E ha ri oia Palais 18 Variables ins r es dans des cha nes de caract res ocoococononocononocononoconanoconanoconanoconanoronanos 19 Op rations math matiques seins etes caveeseags seovseddsedea dsskeescdaseseacanes os 20 D sactiver l analyse de Smarty ss 20 O essential dent din mo ea pak sade A met tte 22 Variables assign es depuis PHP inais e o a e T EN EE RE E Eer TEA 22 Tableaux asso iatifS nr ee ent ie drones une rente EE ESAS 23 ANDINO 24 RR esthernhees a nicest E ean amidase ban wags wastage batwa E a 25 Variable
231. xemple avec fetch lt php include Smarty class php Ssmarty new Smarty Ssmarty gt caching true ne fait un appel la base de donn es que si le fichier de cache n existe pas if smarty gt is cached index tpl quelques donn es Saddress 245 N 50th db_data array Ville gt Lincoln Pays gt Nebraska Code postal gt 68502 y Ssmarty gt assign Nom Fred Ssmarty gt assign Adresse Saddress Ssmarty gt assign db_data r cupere le r sultat Soutput smarty gt fetch index tpl fait quelque chose avec Soutput ici echo Soutput 2 gt 174 M thodes Example 13 15 Utilisation de fetch pour envoyer un email Le template email_body tpl Cher contact name Bienvenu et merci d tre devenu membre de notre groupe d utilisateur Cliquez sur le lien ci dessous pour vous identifier avec votre nom d utilisateur et vous pourrez utiliser nos forums http smarty server SERVER_NAME login Liste principale Quelques groupes d utilisateurs include file email_disclaimer tpl Le template email_disclaimer tpl qui utilise le modificateur text format textformat wrap 40 Unless you are named Scontact name you may read only the odd numbered words every other word beginning with the first of the message above If you ha violated that then you hereby owe the sender 10 GBP for
232. ze a la liste d roulante des mois year_size cha ne de Non null Ajoute un attribut caract res size la liste 116 Fonctions utilisateur Nom attribut Type Requis D faut Description d roulante des ann es all_ extra chaine de Non null Ajoute des attributs caract res suppl mentaires toutes les balises select input day_extra cha ne de Non null Ajoute des attributs caract res suppl mentaires aux balises select input du jour month_extra cha ne de Non null Ajoute des attributs caract res suppl mentaires aux balises select input du mois year_extra chaine de Non null Ajoute des attributs caract res suppl mentaires aux balises select input de l ann e field_order chaine de Non MDY L ordre dans lequel caract res afficher les listes d roulantes field_separator cha ne de Non n la cha ne de caract res caract res affich e entre les diff rents champs month_value_format cha ne de Non Som Le format strftime caract res de la valeur des mois par d faut m pour les num ros year_empty chaine de Non null S il est renseign caract res alors le premier l ment de la boite de s lection affiche le texte donn en tant que libell et dispose de la valeur Utile par exemple lorsque vous souhaitez que la boite de s lection affiche S lectionnez une ann e A savoir que vous pouvez sp cifier des valeurs de la f

Download Pdf Manuals

image

Related Search

Related Contents

Manual Utilizador Spectra Plus  Multicube Explorer User Manual Release 1.1  iP4600 series Manuel en ligne  User manual - e-Loquium do Gabriel  

Copyright © All rights reserved.
Failed to retrieve file