Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

Chapter 5. Modificateurs de variables

Les modificateurs de variables peuvent être appliqués aux variables, fonctions utilisateurs ou chaînes 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.

Example 5.1. Exemple de modificateur


{* applique un modificateur à une variable *}
{$titre|upper}

{* modificateur avec paramètres *}
{$titre|truncate:40:'...'}

{* applique un modificateur à un paramètre de fonction *}
{html_table loop=$mavariable|upper}
{* avec paramètres *}
{html_table loop=$mavariable|truncate:40:'...'}

{* applique un modificateur à une chaine de caractères *}
{'foobar'|upper}

{* utilise date_format pour mettre en forme la date *}
{$smarty.now|date_format:"%d/%m/%Y"}

{* applique un modificateur à une fonction utilisateur *}
{mailto|upper address='smarty@example.com'}

{* utilisation de la fonction PHP str_repeat *}
{'='|str_repeat:80}

{* Compteur PHP *}
{$myArray|@count}

{* mélange aléatoire des IP du serveur grâce à PHP *}
{$smarty.server.SERVER_ADDR|shuffle}

(* ceci va mettre en majuscule et tronque le tableau *}
<select name="name_id">
 {html_options output=$myArray|upper|truncate:20}
</select>

  

  • 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 @

    Exemple

    {$articleTitle|@count} - affichera le nombre d'éléments dans le tableau $articleTitle en utilisant la fonction PHP count() comme modificateur.

  • Les modificateurs sont chargés automatiquement depuis votre répertoire de plugin $plugins_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.

  • 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 :

    • 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.

    • 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().

Position du paramètre Type Requis Défaut Description
1 booléen No FALSE Détermine si oui ou non les mots contenant des chiffres doivent être mis en majuscule

Example 5.2. Mise en majuscule


<?php

$smarty->assign('titreArticle', 'Le nouveau php5 est vraiment performant !');

?>

   

Où le template est :


{$titreArticle}
{$titreArticle|capitalize}
{$titreArticle|capitalize:true}

   

Affichera :


Le nouveau php5 est vraiment performant !
Le Nouveau php5 Est Vraiment Performant !
Le Nouveau Php5 Est Vraiment Performant !

   

Voir aussi lower et upper.

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors