IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Initiation aux templates en PHP avec Smarty


précédentsommairesuivant

V. Les fonctions utilisateur

Pourquoi fonctions utilisateur ? Eh bien c'est une des caractéristiques et des forces de Smarty. Les fonctions utilisateur ont le même principe de fonctionnement que les fonctions natives, un mot clé, des arguments, le tout entre accolades.
Quelle différence alors ? Ces fonctions ne font pas partie du cœur de Smarty, mais utilisées comme PLUGIN. D'ailleurs vous verrez dans les sources de Smarty un répertoire /plugin. Si vous regardez bien vous retrouvez un fichier par fonction utilisateur.

V-A. Html_options

La fonction HTML_OPTIONS provoque l'affichage d'une liste d'options (à l'intérieur d'un élément HTML « SELECT »). Il faut pour cela lui indiquer une liste de valeurs qui seront affichées et une liste d'identifiants associés à ces valeurs… vite un exemple !!!

html_options.php
Sélectionnez
$oSmarty = new Smarty();
 
// Liste des textes pour les "<option>"
$aNoms = array("Sylvain", "Jean", "Jean-Luc", "Eric");
// Liste des valeurs pour les "<option>"
$aIndex = array(1,2,3,4);
// L'élément sélectionné est le 3
$iSelected = 3;
 
$oSmarty->assign('smarty_liste_noms', $aNoms);
$oSmarty->assign('smarty_liste_index', $aIndex);
$oSmarty->assign('smarty_liste_selected', $iSelected);
 
$oSmarty->display('html_options.tpl');
html_options.tpl
Sélectionnez
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
 <html>
    <head>
        <title>exemple HTMLOPTIONS</title>
    </head>
    <body>
        <form name="mon_formulaire">
            <select name="gars_du_dev">
                {html_options values=$smarty_liste_index selected=$smarty_liste_selected output=$smarty_liste_noms}
            </select>
        </form>
    </body>
</html>
Exemple d'utilisation de la fonction html_options
Résultat

V-B. Cycle

La fonction CYCLE permet l'affichage en alternance de une à n valeurs. Dans la pratique, on l'utilisera avantageusement pour l'alternat de couleurs dans un tableau affichant un ensemble de données. C'est ce que nous allons voir tout de suite dans l'exemple

cycle.php
Sélectionnez
require_once('../lib_smarty/Smarty.class.php');
 
$oSmarty = new Smarty();
 
$aNoms = array("Sylvain", "Jean", "Jean-Luc", "Eric");
 
$oSmarty->assign('smarty_liste_noms', $aNoms);
 
$oSmarty->display('cycle.tpl');
cycle.tpl
Sélectionnez
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
 <html>
    <head>
        <title>Exemple fonction cycle</title>
    </head>
    <body>
        {section name=idx loop=$smarty_liste_noms}
            <div style="background-color:{cycle values="red,blue"};">{$smarty_liste_noms[idx]}</div>
        {/section}
    </body>
</html>
Image non disponible

V-C. Mailto

Comme son nom l'indique cette fonction vous permet d'ajouter rapidement un lien mailto (lien vers un ou plusieurs mails). L'utilisation de mailto permet notamment l'encodage en javascript/hexadécimal des adresses mails qui sont alors bien moins facilement repérables.

Un exemple d'utilisation en encodage javascript :

encode.tpl
Sélectionnez
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
 <html>
    <head>
        <title>Exemple fonction encode</title>
    </head>
    <body>
        {mailto address="eric190@free.fr" encode="javascript"}
    </body>
</html>
Image non disponible

V-D. Liste des fonctions utilisateur

 
Sélectionnez
capture
config_load
foreach,foreachelse
include
include_php
insert
if,elseif,else
ldelim,rdelim
literal
php
section, sectionelse
strip

précédentsommairesuivant

Copyright © 2008 Eric POMMEREAU. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.