La balise var vous permet d’inclure une variable dans un template. Il y a plusieurs avantages à utiliser la syntaxe {ACCOLADES}, ainsi que la possibilité d’introduire une valeur standard ou un modificateur.
<patTemplate:tmpl name="foo"> variable par défaut: <patTemplate:var name="myvar" default="my default value"/> </patTemplate:tmpl>
Le nom de la variable.
La valeur par défaut de la variable si elle n’est pas définie.
??
L’attribut copyFrom permet au Designer d’introduire des variables dans un template et de copier une valeur à chacune des autres variables.
Exemples d’utilisation de copyFrom:
<patTemplate:tmpl name="page"> <table border="1"> <tr> <th>template</th> <th>var</th> <th>value</th> </tr> <tr> <td>page</td> <td>SOMETEXT</td> <td>{SOMETEXT}</td> </tr> <tr> <td>page</td> <td>SOMETEXT_PRETTY</td> <td><patTemplate:var name="sometext_pretty" modifier="nl2br" copyfrom="sometext"/></td> </tr> <patTemplate:tmpl name="nested"> <tr> <td>nested</td> <td>SOMETEXT</td> <td><patTemplate:var name="sometext" copyfrom="page.sometext" modifier="strrev"/></td> </tr> </patTemplate:tmpl> </table>
Le modifieur.
Peux être une des valeurs suivantes:
Exemple du modifieur de variables
Appliquer un modifieur est vraiment du gâteau. Tout ce dont vous avez besoin de faire est d’utiliser la balise <patTemplate:var/> au lieu de simplement enfermer les variable dans { et }, puis vous pouvez utiliser l’attribut ‘modifier’ pour placer le modifieur.
<patTemplate:tmpl name="page"> <div> <patTemplate:var name="myVar" modifier="nl2br"/> </div> </patTemplate:tmpl>
Le modifieur de variable est alors appliqué à la variable quand le template est généré. Il y a deux types de modifieurs:
* Vous pouvez utilisez n’importe quelles fonctions PHP comme modifieur de variable. Le modifieur doit pouvoir accepter n’importe quels caractères comme paramètre et aussi retourner une chaine de caractère. Les exemples parfais pour le modifieur de variable sont nl2br() ou htmlentities().
* Vous pouvez créer un modifieur personnalisé (custom), ce qui fournit une extension des possibilitées et ce qui peut être influencé par les attributs de la balise var.
exemple:
Convertir des caractères HTML.
<patTemplate:tmpl name="page"> Apply a modifier to sometext: <patTemplate:var name="sometext" modifier="htmlentities" modifierType="php"/>
Cet attribut est utilisé en même temps que le modifieur dateformat.
Le modifieur Dateformat:
<patTemplate:var name="birthday" modifier="dateformat" format="%d.%m.%Y"/>
exemple: Appliquer un modifieur de long texte:
<patTemplate:var name="wrap" modifier="wordwrapper"
modifierType="custom" width="10" cut="no" nl2br="yes"/>
Ou encore:
<patTemplate:var name="wrap2" modifier="wordwrapper"
modifierType="custom" width="20" cut="yes" nl2br="yes"/>
exemple:
Appliquer un modifieur de multi-ligne:
<patTemplate:var name="multiline" modifier="nl2br" modifierType="php"/>
Utilisation avec le modifieur HTML_Img. Si vous vérifiez des expressions plus compliquées que ‘equals’, vous pouvez utiliser les expression du modifieur. Il vous permet de spécifier n’importe quelles expressions plus 2 valeurs de retour, une pour vrai et une pour faux.
Une expression logique. Vous pouvez utiliser $self pour indiquer la valeur actuelle de la variable.
La valeur est remplacée dans la variable si l’expression retourne vrai.
La valeur est remplacée dans la variable si l’expression retourne false.
Exemple d’une expression du modifieur:
<patTemplate:tmpl name="page"> <div> La variable: {VAR}<br /> Est ce plus grand que 13? <!-- Nous utilisons > au lieu de >, comme cette balise est une balise valide XML --> <patTemplate:var name="foo" copyFrom="var" modifier="Expression" <em><strong /></em> expression="$self>13" true="Yes!" false="Nay!"/> </div> </patTemplate:tmpl>
Copier une variable qui n’est pas scalair (array):
<patTemplate:tmpl name="repeating"> {PAT_ROW_VAR} : {VALUE} <br /> </patTemplate:tmpl> <patTemplate:tmpl name="non-repeating"> {SCALAR} {PAT_ROW_VAR} : <patTemplate:var name="newVar" copyFrom="repeating.value"/> <br /> </patTemplate:tmpl>
Traduction d’une variable (uniquement sous Joomla!)
<mos:var name="text" modifier="Translate" />