Smarty : fonctions
Smarty dispose en standard de plusieurs fonctions utilisables dans
les templates.
On distingue les fonctions natives (directement intégrées
au langage) et les fonctions utilisateurs (répertoire class/smarty/plugins).
Ne
seront décrites que les fonctions utilisées habituellement
avec Xoops. De même tous les attributs des fonctions ne sont
pas forcément décrits.
Consultez le site Smarty
pour une information plus complête.
include
Permet d'inclure un template à l'intérieur
d'un autre template.
Il est possible de transmettre des variables au template inclus, sous
forme d'attributs de la fonction.
Xoops stockant les templates en Bdd, le nom du template inclus sera précédé
de db :
Nom attribut |
Requis |
Type |
Description |
file |
Oui |
string |
nom du template à inclure |
[var...] |
Non |
mixed |
variable(s) à passer au template |
Include simple
<{include file='db:system_notification_select.html'}>
Include avec passage de variable (story) <{include file="db:news_item.html" story=$stories[i]}>
if, elseif, else
Instruction conditionnelle permettant l'exécution de tests.
Doit obligatoirement se terminer par la balise <{/if}>.
Permet d'utiliser les opérateurs
logiques (forme littérale ou symbolique). Attention,
les opérateurs doivent être entourés d'espaces.
Opérateurs
|
|
|
|
|
|
|
|
|
= =
|
!=
|
>
|
>=
|
<
|
<=
|
!
|
||
|
&&
|
eq
|
neq
|
gt
|
gte
|
lt
|
lte
|
not
|
or
|
and
|
is even
|
is odd
|
is not even
|
is not odd
|
is even by
|
is odd by
|
div by
|
mod
|
|
Exemple
<{if $gender == 'male'}>
Bonjour Monsieur
<{elseif $gender == 'female'}>
Bonjour Madame <{else}>
Bonjour
<{/if}>
Exemple avec opérateurs
<{if
($price >= 100
and $nbre >
9) or $code ==
'promo' }>
Remise de 10%
<{/if}>
Exemple pour affichage sur 3 colonnes
Dans une table, passage à la ligne suivante lorsque la valeur du
compteur est un multiple de 3.
<{if $category.count
is div by 3}>
</tr><tr>
<{/if}>
foreach,
foreachelse
Permet de parcourir un tableau associatif simple.
Doit
obligatoirement se terminer par la balise <{/foreach}>
Les boucles peuvent être imbriquées (pas de limitation de
nombre).
foreachelse sera executé
si aucune valeur n'est trouvée dans la variable de l'attribut
from
Nom attribut |
Requis |
Type |
Description |
from |
Oui |
string |
nom du tableau à parcourir |
item |
Oui |
string |
nom de la variable pour accéder à l'élément
en cours |
name |
Non |
string |
nom de la boucle foreach pour accéder
à ses propriétés |
Exemple
Parcours du tableau associatif $topics contenant les paires clefs/valeurs
: post_image, post_title, poster_uname.
<{foreach
item = sujet from = $topics}> <td><{$sujet.post_image}>
<{$sujet.post_title}></td> <td><{$sujet.poster_uname}></td> <{/foreach}>
section,
sectionelse
Permet de parcourir un tableau. Utilisée pour
les tableaux complexes( multidimensionnels p.ex.). Doit
obligatoirement se terminer par la balise <{/section}>
Les sections peuvent être imbriquées (pas de limitation de
nombre).
sectionelse sera executé si aucune
valeur n'est trouvée.
Nom attribut |
Requis |
Type |
Descrip
|
|