Section: Modificateurs
^ Plugins de template | Fonctions diverses » |
− Table des matières
Les modificateurs sont des fonctions qui permettent de modifier l'affichage d'une variable de template. Ils ne sont donc utilisés que lors des instructions d'affichage.
cat ¶
Ce modificateur permet de concaténer une chaîne de caractères à une variable. Exemple :
Soit la variable de template $foo ayant pour valeur 'bar' :
$rep->body->assign('foo', 'bar');
Utilisation du modificateur cat dans le template. On concatène la chaîne 'toto' à la variable $foo :
<p>{$foo|cat:'toto'}</p>
Ce qui donnera l'affichage :
<p>bartoto</p>
count_characters ¶
Ce modificateur de template compte le nombre de caractères contenus dans une variable. Exemple :
Soit la variable de template $foo ayant pour valeur ‘bar’ :
$rep->body->assign('foo', 'bar');
Utilisation de count_characters dans le template :
<p>$foo contient {$foo|count_characters} caractères</p>
Ce qui donnera l'affichage :
<p>$foo contient 3 caractères</p>
count_paragraphs ¶
Ce modificateur de template permet de compter le nombre de paragraphes contenus dans une variable. Exemple :
Prenons la variable $foo contenant le texte suivant et qu'on assigne au template :
$foo = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\n\n
Vivamus ornare, enim bibendum mollis interdum, magna quam tristique lacus, sed vestibulum urna augue et nisi.';
$rep->body->assign('foo', $foo);
On affiche alors le texte ainsi que le nombre de paragraphes qu'il contient :
<p>{$foo}<br/>Contient : {$foo|count_paragraphs} paragraphes</p>
Ce qui donne :
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Vivamus ornare, enim bibendum mollis interdum, magna quam tristique lacus, sed vestibulum urna augue et nisi.
Contient : 2 paragraphes</p>
count_sentences ¶
Ce modificateur de template permet de compter le nombre de phrases contenues dans une variable. Exemple:
Prenons la variable $foo contenant le texte suivant et qu'on assigne au template :
$foo = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Vivamus ornare, enim bibendum mollis interdum, magna quam tristique lacus, sed vestibulum urna augue et nisi.';
$rep->body->assign('foo', $foo);
On affiche alors le texte ainsi que le nombre de phrases qu'il contient :
<p>{$foo}<br/>Contient : {$foo|count_sentences} phrases</p>
Ce qui donne :
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Vivamus ornare, enim bibendum mollis interdum, magna quam tristique lacus, sed vestibulum urna augue et nisi.
Contient : 2 phrases</p>
count_words ¶
Ce modificateur de template permet de compter le nombre de mots contenus dans une variable. Exemple :
Prenons la variable $foo contenant le texte suivant et qu'on assigne au template :
$foo = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit.';
$rep->body->assign('foo', $foo);
On affiche alors le texte ainsi que le nombre de mots qu'il contient :
<p>{$foo}<br/>Contient : {$foo|count_words} mots</p>
Ce qui donne :
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Contient : 8 mots</p>
date_format ¶
escxml ¶
eschtml ¶
indent ¶
Ce modificateur de template indente chaque ligne de texte contenu dans une variable.
Exemple d'utilisation ¶
Prenons la variable $foo contenant le texte suivant et qu’on assigne au template :
$foo = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Vivamus ornare, enim bibendum mollis interdum."
$rep->body->assign('foo', $foo);
On affiche alors le texte contenu dans $foo dans le template :
{$foo|indent}
Ce qui donne :
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus ornare, enim bibendum mollis interdum.
Paramètres ¶
Indent accepte 2 paramètres :
- le nombre de caractères à répéter pour l'indentation. Par défaut vaut 4
- le caractère à répéter. Par défaut est un espace.
{$foo|indent:"15"}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus ornare, enim bibendum mollis interdum.
{$foo|indent:"1":"\t"}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus ornare, enim bibendum mollis interdum.
jdatetime ¶
Le modificateur jdatetime permet de convertir une chaîne contenant une date avec un certain format, vers une chaîne d'un autre format. Ce modificateur utilise la classe jDateTime.
Par défaut, le modificateur attend une chaine au format base de données (jDateTime::BD_DTFORMAT) et renvoi la date au format correspondant à la langue sélectionnée (jDateTime::LANG_DTFORMAT).
<p>la date est {$myDate|jdatetime}.</p>
Si $myDate='2006-04-12 01:05:26' et si la langue est fr, alors cela affiche
la date est 12/04/2006 01h05mn26s.
Pour indiquer d'autres formats, vous devez indiquer l'une des chaînes en paramètre au modificateur :
paramètre | code correspondant dans jDateTime | format |
---|---|---|
'lang_date' | jDateTime::LANG_DFORMAT | date au format dans la langue actuelle de l'application (en fr, ce sera jj/mm/aaaa) |
'lang_datetime' | jDateTime::LANG_DTFORMAT | date et heure au format dans la langue actuelle de l'application |
'lang_time' | jDateTime::LANG_TFORMAT | heure au format dans la langue actuelle de l'application |
'db_date' | jDateTime::DB_DFORMAT | date au format base de données classique : "AAAA-MM-JJ" |
'db_datetime' | jDateTime::DB_DTFORMAT | date et heure au format base de données classique : "AAAA-MM-JJ HH:mm:SS" |
'db_time' | jDateTime::DB_TFORMAT | heure au format base de données classique : "HH:mm:SS" |
'iso8601' | jDateTime::ISO8601_FORMAT | format ISO8601 |
'timestamp' | jDateTime::TIMESTAMP_FORMAT | simple entier, indiquant le nombre de secondes depuis le 1/1/1970 (timestamp) |
Le premier paramètre indique le format de la chaîne que le modificateur reçoit, le deuxième, le format de la chaîne en résultat.
<p>la date est {$myDate|jdatetime:'db_date':'timestamp'}.</p>
si $myDate='2006-04-15' alors cela affiche
la date est 1145052000.
regexp_replace ¶
replace ¶
spacify ¶
printf ¶
strip ¶
truncate ¶
wiki ¶
Le modificateur wiki permet de convertir une chaîne contenant une syntaxe wiki, vers le format de votre choix. Ce modificateur utilise la classe jWiki.
Par défaut, le modificateur attend une chaine au format wiki (wr3) et la renvoi au format XHTML, exemple :
<p>{$message|wiki}</p>
Si $message vaut par exemple :
__mon texte gras__
le rendu sera
mon texte gras
Pour indiquer d'autres formats, vous devez indiquer l'une des chaînes en paramètre au modificateur :
paramètre | Rendu |
---|---|
'classicwr_to_text' | affichera du text au format wiki (v2 du WikiRender) en texte |
'classicwr_to_wr3' | affichera du text au format wiki (v2 du WikiRender) en wiki (v3 du WikiRender) |
'classicwr_to_xhtml' | affichera du text au format wiki (v2 du WikiRender) en XHTML |
'dokuwiki_to_docbook' | affichera du text au format dokuwiki en docbook |
'dokuwiki_to_xhtml' | affichera du text au format dokuwiki en XHTML |
'trac_to_xhtml' | affichera du text au format wiki de Trac en XHTML |
'wr3_to_docbook' | affichera du text au format wiki (v3 du WikiRender) en docbook |
'wr3_to_text' | affichera du text au format wiki (v3 du WikiRender) en texte |
'wr3_to_xhtml' | affichera du text au format wiki (v3 du WikiRender) en XHTML |
Le paramètre indique le format d'origine et
de transformation (voulu) que le modificateur reçoit
<p>{$message|wiki:'wr3_to_xhtml'}</p>