Ces filtres viennent directement de PHP et utilisent donc les mêmes paramètres. Voir la documentation PHP pour plus de détails.
| Nom | Description | Documentation PHP |
|---|---|---|
htmlentities |
Convertit tous les caractères éligibles en entités HTML | Documentation PHP |
htmlspecialchars |
Convertit les caractères spéciaux en entités HTML | Documentation PHP |
trim |
Supprime les espaces et lignes vides au début et à la fin d'un texte | Documentation PHP |
ltrim |
Supprime les espaces et lignes vides au début d'un texte | Documentation PHP |
rtrim |
Supprime les espaces et lignes vides à la fin d'un texte | Documentation PHP |
md5 |
Génère un hash MD5 d'un texte | Documentation PHP |
sha1 |
Génère un hash SHA1 d'un texte | Documentation PHP |
strlen |
Nombre de caractères dans une chaîne de texte | Documentation PHP |
strpos |
Position d'un élément dans une chaîne de texte | Documentation PHP |
strrpos |
Position d'un dernier élément dans une chaîne de texte | Documentation PHP |
substr |
Découpe une chaîne de caractère | Documentation PHP |
strtotime |
Transforme une date en timestamp UNIX | Documentation PHP |
strip_tags |
Supprime les tags HTML | Documentation PHP |
nl2br |
Remplace les retours à la ligne par des tags HTML <br/> |
Documentation PHP |
wordwrap |
Ajoute des retours à la ligne tous les 75 caractères | Documentation PHP |
abs |
Renvoie la valeur absolue d'un nombre (exemple : -42 sera transformé en 42) | Documentation PHP |
gettype |
Renvoie le type d'une variable | |
intval |
Transforme une valeur en entier (integer) | Documentation PHP |
boolval |
Transforme une valeur en booléen (true ou false) | Documentation PHP |
floatval |
Transforme une valeur en nombre flottant (à virgule) | Documentation PHP |
strval |
Transforme une valeur en chaîne de texte | Documentation PHP |
arrayval |
Transforme une valeur en tableau | Documentation PHP |
json_decode |
Transforme une chaîne JSON en valeur | Documentation PHP |
json_encode |
Transforme une valeur en chaîne JSON | Documentation PHP |
http_build_query |
Transformer un tableau en chaîne query string pour URL | Documentation PHP |
str_getcsv |
Transformer une chaîne de texte de format CSV en tableau | Documentation PHP |
Permet de vérifier la validité d'une adresse email. Cette fonction vérifie la syntaxe de l'adresse mais aussi que le nom de domaine indiqué possède bien un enregistrement de type MX.
Renvoie true si l'adresse est valide.
{{if !$_POST.email|check_email}}
<p class="alert">L'adresse e-mail indiquée est invalide.</p>
{{/if}}
Crée un lien protégé pour une adresse email, pour éviter que l'adresse ne soit recueillie par les robots spammeurs (empêche également le copier-coller et le lien ne fonctionnera pas avec javascript désactivé).
Transforme un tableau en liste textuelle, par exemple pour envoyer dans un e-mail.
{{:assign var="table" a="blue" b="cyan"}}
{{:assign var="table.c" color1="darkred" color2="darkgreen"}}
{{$table|array_to_list}}
a = blue
b = cyan
c =
color1 = darkred
color2 = darkgreen
Renvoie vrai si le tableau contient l'élément passé en paramètre.
{{:assign var="table" a="bleu" b="orange"}}
{{if $table|has:"bleu"}}
Oui, il y a du bleu
{{/if}}
Renvoie vrai si l'élément fait partie du tableau passé en paramètre.
C'est exactement la même chose que has, mais exprimé à l'envers.
{{:assign var="table" a="bleu" b="orange"}}
{{if "bleu"|in:$table}}
Oui, il y a du bleu
{{/if}}
Renvoie vrai si le tableau contient la clé passée en paramètre.
{{:assign var="table" a="bleu" b="orange"}}
{{if $table|has_key:"b"}}
Oui, il y a la clé "b"
{{/if}}
Renvoie vrai si la clé fait partie du tableau passé en paramètre.
C'est exactement la même chose que has_key, mais exprimé à l'envers.
{{:assign var="table" a="bleu" b="orange"}}
{{if "b"|key_in:$table}}
Oui, il y a la clé "b"
{{/if}}
Renvoie les clés du tableau, sous forme de tableau.
{{:assign var="table" a="bleu" b="orange"}}
{{:assign var="cles" value=$table|keys}}
{{$cles|implode:","}}
Donnera :
a,b
Renvoie les valeurs du tableau, sous forme de tableau.
Cela revient en fait à supprimer les clés associatives.
{{:assign var="table" a="bleu" b="orange"}}
{{#foreach from=$table key="cle" item="valeur"}}
{{$cle}} = {{$valeur}}
{{/foreach}}
--
{{:assign var="valeurs" value=$table|values}}
{{#foreach from=$valeurs key="cle" item="valeur"}}
{{$cle}} = {{$valeur}}
{{/foreach}}
Donnera :
a = bleu
b = orange
--
0 = bleu
1 = orange
Compte le nombre d'entrées dans un tableau.
{{$products|count}}
= 5
Sépare une chaîne de texte en tableau à partir d'une chaîne de séparation.
{{:assign var="table" value="a,b,c"|explode:","}}
- {{$table.0}}
- {{$table.1}}
- {{$table.2}}
Affichera :
- a
- b
- c
Supprime les éléments vides d'un tableau.
{{:assign var="table" a=0 b="coucou" c=""}}
{{:debug table=$table|filter}}
Affichera :
[
"b" => "coucou"
]
Réunit un tableau sous forme de chaîne de texte en utilisant éventuellement une chaîne de liaison entre chaque élément du tableau.
{{:assign var="table" a="bleu" b="orange"}}
{{$table|implode}}
{{$table|implode:" - "}}
Affichera :
bleuorange
bleu - orange
Applique un filtre sur chaque élément du tableau.
Le premier paramètre doit être le nom du filtre. Les autres paramètres seront passés au filtre.
{{:assign var="table" a="01" b="02"}}
{{:assign var="table" value=$table|map:intval}}
- {{$table.a}}
- {{$table.b}}
Affichera :
- 1
- 2
Trie un tableau par ordre alpha-numérique, sans tenir compte des majuscules/minuscules. ksort trie le tableau en utilisant les clés, et sort trie le tableau en utilisant les valeurs.
{{:assign var="table" b="3" a="2" c="1"}}
{{$table|sort|implode:","}}
{{$table|ksort|implode:","}}
Affichera :
1,2,3
2,3,1
Inverse l'ordre des éléments d'un tableau.
{{:assign var="table" b="B" a="A" c="AC"}}
{{$table|reverse|implode:","}}
Affichera :
AC,A,B
Renvoie respectivement la valeur la plus haute ou la plus basse d'un tableau de valeurs numériques.
{{:assign var="table" b="3" a="2" c="1"}}
{{$table|max}}
{{$table|min}}
Affichera :
3
1
Remplace des arguments dans le texte selon le schéma utilisé par sprintf.
{{"Il y a %d résultats dans la recherche sur le terme '%s'."|args:$results_count:$query}}
= Il y a 5 résultat dans la recherche sur le terme 'test'.
Concaténer un texte avec un autre.
{{"Tangerine"|cat:" Dream"}}
= Tangerine Dream
Compte le nombre de mots dans un texte.
Échappe le contenu pour un usage dans un document HTML. Ce filtre est appliqué par défaut à tout ce qui est affiché (variables, etc.) sauf à utiliser le filtre raw (voir plus bas).
Produit un extrait d'un texte.
Supprime les tags HTML, tronque au nombre de caractères indiqué en second argument (si rien n'est indiqué, alors 600 est utilisé), et englobe dans un paragraphe <p>...</p>.
Équivalent de :
<p>{{$html|strip_tags|truncate:600|nl2br}}</p>
Extrait le numéro au début d'une chaîne de texte.
Exemple :
{{:assign title="02. Cours sur la physique nucléaire"}}
{{$title|extract_leading_number}}
Affichera :
02
Formatte un numéro de téléphone selon le format du pays de l'association.
Seule la France est supportée pour le moment.
Exemple :
{{:assign number="0102030405"}}
{{$number|format_phone_number}}
Affichera :
01 02 03 04 05
Renvoie le numéro au début d'un titre.
{{"03. Beau titre"|get_leading_number}}
3
Transforme un texte en HTML en utilisant la syntaxe Markdown.
Il est conseillé de rajouter le filtre |raw pour ne pas échapper le HTML produit, si on veut afficher le texte formatté dans une page HTML.
{{$texte|markdown|raw}}
Supprime les retours à la ligne et espaces inutiles dans le code CSS ou Javascript.
{{$code|minify:'js'}}
Passer ce filtre désactive la protection automatique contre le HTML (échappement) dans le texte. À utiliser en connaissance de cause avec les contenus qui contiennent du HTML et sont déjà filtrés !
{{"<b>Test"}} = <b>Test
{{"<b>Test"|raw}} = <b>Test
Remplace des parties du texte par une autre partie.
{{"Tata yoyo"|replace:"yoyo":"yaya"}}
= Tata yaya
Remplace des valeurs en utilisant une expression rationnelles (regexp) (documentation PHP).
{{"Tartagueule"|regexp_replace:"/ta/i":"tou"}}
= tourtougueule
Supprime le numéro au début d'un titre.
Cela permet de définir un ordre spécifique aux pages et catégories dans les listes.
{{"03. Beau titre"|remove_leading_number}}
Beau titre
Tronque un texte à une longueur définie.
| Argument | Fonction | Valeur par défaut (si omis) |
|---|---|---|
| 1 | longueur en nombre de caractères | 80 |
| 2 | texte à placer à la fin (si tronqué) | … |
| 3 | coupure stricte, si true alors un mot pourra être coupé en deux, si false le texte sera coupé au dernier mot complet |
false |
{{:assign texte="Ceci n'est pas un texte."}}
{{$texte|truncate:19:"(...)":true}}
{{$texte|truncate:19:"":false}}
Affichera :
Ceci n'est pas un (...)
Ceci n'est pas un t
Formatte un texte selon les règles typographiques françaises : ajoute des espaces insécables devant ou derrière les ponctuations françaises (« » ? ! :).
Encode une chaîne de texte pour utilisation dans une adresse URL (alias de rawurlencode en PHP).
Décode une chaîne de texte venant d'une URL (alias de rawurldecode en PHP).
Échappe le contenu pour un usage dans une balise <![CDATA[…]]> d'un document XML.
Échappe le contenu pour un usage dans un document XML.
Les filtres suivants modifient la casse (majuscule/minuscules) d'un texte et ne fonctionneront correctement que si l'extension mbstring est installée sur le serveur. Sinon les lettres accentuées ne seront pas modifiées.
Note : il est donc préférable d'utiliser la propriété CSS text-transform pour modifier la casse si l'usage n'est que pour l'affichage, et non pas pour enregistrer les données.
tolower : transforme un texte en minusculestoupper : transforme un texte en majusculesucfirst : met la première lettre du texte en majusculeucwords : met la première lettre de chaque mot en majusculelcfirst : met la première lettre du texte en minusculeFormatte une valeur de monnaie pour l'affichage.
Une valeur de monnaie doit toujours inclure les cents (exprimée sous forme d'entier). Ainsi 15,02 doit être exprimée sous la forme 1502.
Paramètres optionnels :
true (défaut) pour ne rien afficher si la valeur est zéro, ou false pour afficher 0,00true pour afficher le signe + si le nombre est positif (- est toujours affiché si le nombre est négatif){{* 12 345,67 = 1234567 *}}
{{:assign amount=1234567}}
{{$amount|money}}
12 345,67
Comme money (même paramètres), formatte une valeur de monnaie (entier) pour affichage, mais en ajoutant la devise.
{{:assign amount=1502}}
{{$amount|money_currency}}
15,02 €
Idem que money, mais pour l'affichage en HTML :
{{* 12 345,67 = 1234567 *}}
{{:assign amount=1234567}}
{{$amount|money_html}}
<span class="money">12 345,67</span>
Idem que money_currency, mais pour l'affichage en HTML :
{{:assign amount=1502}}
{{$amount|money_currency_html}}
<span class="money">15,02 €</span>
Formatte une valeur de monnaie (entier) de manière brute : les milliers n'auront pas de séparateur.
{{:assign amount=1234567}}
{{$amount|money_raw}}
12345,67
Transforme un nombre à partir d'une chaîne de caractère (par exemple 12345,67) en entier (1234567) pour stocker une valeur de monnaie.
{{:assign montant=$_POST.montant|trim|money_int}}
Protège une chaîne contre les attaques SQL, pour l'utilisation dans une condition.
Note : il est FORTEMENT déconseillé d'intégrer directement des sources extérieures dans les requêtes SQL, il est préférable d'utiliser les paramètres dans la boucle sql et ses dérivées, comme ceci : {{#sql select="id, nom" tables="users" where="lettre_infos = :lettre" :lettre=$_GET.lettre}}.
Exemple :
{{:assign nom=$_GET.nom|quote_sql}}
{{#sql select="id, nom" tables="users" where="nom = %s"|args:$nom}}
La même chose que quote_sql, mais pour les identifiants (par exemple nom de table ou de colonne).
Exemple :
{{:assign colonne=$_GET.colonne|quote_sql_identifier}}
{{#sql select="id, %s"|args:$colonne tables="users"}}
Il est possible d'utiliser un préfixe en argument, utile par exemple quand on a plusieurs tables avec le même nom de colonne :
{{:assign colonne=$_GET.colonne|quote_sql_identifier:"u1"}}
{{#sql select="u1.id, %s"|args:$colonne tables="users AS u1 INNER JOIN users AS u2 ON u2.id_parent = u1.id"}}
Permet de créer une partie d'une clause SQL WHERE complexe.
Le premier paramètre est le nom de la colonne (sans préfixe).
Paramètres :
=, !=, IN, NOT IN, >, >=, <, <=Exemple pour afficher la liste des membres des catégories n°1 et n°2:
{{:assign var="list." value=1}}
{{:assign var="list." value=2}}
{{#sql select="nom" tables="users" where="id_category"|sql_where:'IN':$id_list}}
{{$nom}}
{{/sql}}
Le requête SQL générée sera alors SELECT nom FROM users WHERE id_category IN (1, 2).
Permet de récupérer le contenu de champs de la fiche utilisateur pour une requête SQL.
C'est particulièrement utile si le module permet de sélectionner dans sa configuration une liste de champs de membre (par exemple pour la carte de membre, ou les reçus fiscaux).
Si un champ mentionné n'existe plus dans les fiches de membres, il sera ignoré.
Exemple :
{{:assign var="champs_adresse." value="rue"}}
{{:assign var="champs_adresse." value="ville"}}
{{:assign var="champs_adresse_sql" value=$champs_adresse|sql_user_fields:"u":" - "}}
{{#select !champs_adresse_sql AS adresse FROM users AS u; !champs_adresse_sql=$champs_adresse_sql}}
{{$adresse}}
{{/select}}
Affichera :
30 rue de Machin Chose — Dijon
Et la clause SQL générée sera :
LTRIM(COALESCE(' - ' || u.rue, '') || COALESCE(' - ' || u.ville), ' - ')
Formatte une date selon le format spécifié en premier paramètre.
Le format est identique au format utilisé par PHP.
Si aucun format n'est indiqué, le défaut sera d/m/Y à H:i. (en français)
Exemples :
{{:assign this_year=$now|date:'Y'}}
{{$date|date:'d/m/Y'}}
Formatte une date selon un format spécifié en premier paramètre.
Le format à utiliser est identique au format utilisé par la fonction strftime de PHP.
Un format doit obligatoirement être spécifié.
En passant un code de langue en second paramètre, cette langue sera utilisée. Sont supportés le français (fr) et l'anglais (en). Le défaut est le français si aucune valeur n'est passée en second paramètre .
{{:assign this_year=$now|date:'%Y'}}
{{$date|date:'%d/%m/%Y'}}
Renvoie une date relative à la date du jour : aujourd'hui, hier, demain, ou sinon mardi 2 janvier (si la date est de l'année en cours) ou 2 janvier 2021 (si la date est d'une autre année).
En spécifiant true en premier paramètre, l'heure sera ajoutée au format 14h34.
Formatte une date au format court : d/m/Y.
En spécifiant true en premier paramètre l'heure sera ajoutée : à H\hi.
Formatte une date au format long : lundi 2 janvier 2021.
En spécifiant true en premier paramètre l'heure sera ajoutée : à 20h42.
Formatte une date en renvoyant l'heure uniquement : 20h00.
En passant true en premier paramètre, les minutes seront omises si elles sont égales à zéro : 20h.
Formatte une date au format ATOM : Y-m-d\TH:i:sP
Vérifie le format d'une chaîne de texte représentant la date et la transforme en chaîne de date standardisée au format AAAA-MM-JJ.
Les formats acceptés sont :
AAAA-MM-JJJJ/MM/AAAAJJ/MM/AAVérifie le format d'une chaîne de texte représentant la date et l'heure et la transforme en chaîne de date et heure standardisée au format AAAA-MM-JJ HH:mm:ss.
Renvoie NULL si la variable passée était vide, et FALSE si la date était invalide.
Les formats acceptés sont :
AAAA-MM-JJ HH:mm:ssAAAA-MM-JJ\THH:mm:ssAAAA-MM-JJ HH:mmJJ/MM/AAAA HH:mmIl est possible de modifier le format de sortie avec le second argument :
{{:assign date=$_POST.datetime|parse_datetime:"RFC3339"}}
Les formats de sortie possibles sont :
DEFAULT (exemple : 2005-08-15 15:52)RFC3339 (exemple : 2005-08-15T15:52:01+00:00)LOCAL (exemple : 2005-08-15T15:52, utile pour les éléments de formulaire de type datetime-local)Vérifie le format d'une chaîne de texte représentant l'heure et la transforme en chaîne de date standardisée au format HH:MM.
Les formats acceptés sont :
HH:MMH:MH:MMHH:MLe séparateur peut être : ou h.
Ces filtres sont à utiliser dans les conditions
Renvoie true si le texte indiqué en premier paramètre est trouvé dans la variable.
Ce filtre est insensible à la casse.
{{if $page.path|match:"/aide"}}Bienvenue dans l'aide !{{/if}}
Renvoie true si l'expression régulière indiquée en premier paramètre est trouvée dans la variable.
Exemple pour voir si le texte contient les mots "Bonjour" ou "Au revoir" (insensible à la casse) :
{{if $texte|regexp_match:"/Bonjour|Au revoir/i"}}
Trouvé !
{{else}}
Rien trouvé :-(
{{/if}}
Renvoie le nom d'un pays à partir de son code ISO-3166.
{{:assign code="FR"}}
{{$code|get_country_name}}
Donnera : France
Réalise un calcul mathématique. Cette fonction accepte :
42, 13,37, 14.05+ - / * pour additionner, diminuer, diviser ou multiplier( )round(0.5452, 2) ceil(29,09) floor(0.99) mais aussi : min, max, cos, sin, tan, asin, acos, atan, sinh, cosh, tanh, exp, sqrt, abs, log, log10, et pi.Le résultat est renvoyé sous la forme d'un entier, ou d'un nombre flottant dont les décimales sont séparées par un point.
{{"1+1"|math}}
= 2
Il est possible de donner d'autres arguments, de la même manière qu'avec args pour y inclure des données provenant de variables :
{{:assign age=42}}
{{"1+%d"|math:$age}}
= 43
{{:assign prix=39.99 tva=19.1}}
{{"round(%f*%f, 2)"|math:$prix:$tva}}
= 47.63
Si la variable passée est évalue comme false (c'est à dire que sa valeur est un texte vide, ou un nombre qui vaut zéro, ou la valeur false), alors le premier paramètre sera utilisé.
{{:assign texte=""}}
{{$texte|or:"Le texte est vide"}}
Il est possible de chaîner les appels à or :
{{:assign texte1="" texte2="0"}}
{{$texte1|or:$texte2|or:"Aucun texte"}}
Renvoie une taille en octets, Ko, Mo, ou Go à partir d'une taille en octets.
{{100|size_in_bytes}} = 100 o
{{1500|size_in_bytes}} = 1,50 Ko
{{1048576|size_in_bytes}} = 1 Mo
Épelle un nombre en toutes lettres.
Le premier paramètre peut être utilisé pour spécifier le code de la langue à utiliser (par défaut c'est le français, donc le code fr).
{{42|spell_out_number}}
Donnera :
quarante deux
Renvoie un identifiant unique au format UUIDv4.