Aide:Fonctions parseur

Stargate Wiki Sémantique — La référence sémantique sur l'univers Stargate
Aller à la navigation Aller à la recherche

L'extension ParserFunctions fournit onze fonctions parseur supplémentaires en plus des « mots magiques » déjà présents par défaut dans le logiciel MediaWiki. Toutes les fonctions parseur fournies par cette extension prennent la forme suivante :

{{#nom_de_la_fonction: argument 1 | argument 2 | argument 3 ... }}

#expr

Type Operateurs
Groupement (parenthèses) ( )
Nombres 1234.5   e (2,718)   pi (3,142)
opérateur binaire e   unaire +,-
Unaire not ceil trunc floor abs exp ln sin cos tan acos asin atan
Binaire ^
* / div mod
+ -
Arrondi round
Logique = != <> > < >= <=
and
or

Cette fonction évalue une expression mathématique et donne la valeur calculée de l'expression.

{{#expr: expression }}

Les opérandes disponibles sont listés dans le tableau de droit, dans l'ordre de prise en compte. Voyez la page d'aide sur les calculs (en anglais) pour plus de détails concernant la fonction de chaque opérateur. L'exactitude du résultat retourné dépendra du système d'exploitation du serveur sur lequel se trouve le wiki et le format du nombre dépendra de la langue utilisé sur le site.

Lorsque vous faites une évaluation en utilisant une expression booléenne, zéro donnera false (FAUX) et toute valeur non nulle, positive ou négative, donnera true (VRAI) :

{{#expr: 1 and -1 }}1
{{#expr: 1 and 0 }}0

Une expression vide retournera un champ vide. Les expressions non valides retourneront un des différents messages d'erreur qui peut être capturés en utilisant la fonction #iferror :

{{#expr: }}
{{#expr: 1+ }}Erreur d’expression : opérande manquant pour +.
{{#expr: 1 foo 2 }}Erreur d’expression : mot « foo » non reconnu.


L'ordre des opérandes addition et soustraction avant ou après un nombre a une signification et peut être traité comme valeur positive ou négative à la place d'un opérande avec une entrée erronée :

{{#expr: +1 }}1
{{#expr: -1 }}-1
{{#expr: + 1 }}1
{{#expr: - 1 }}-1

Remarquez, si vous utilisez la sortie des mots magiques, vous devez les mettre en format brut c'est-à-dire retirer les virgules (en anglais) ou les espaces qui servent de séparateur des milliers afin de permettre la traduction des nombres. Par exemple, le résultat de {{NUMBEROFUSERS}} qui donne 51 105, où nous voulons que 51105 soit obtenu par {{formatnum:{{NUMBEROFUSERS}}|R}}. Ceci est particulièrement important dans certaines langues ou les nombres sont traduits. Par exemple, au Bengale, {{NUMBEROFUSERS}} donne ৩০,০৬১.

{{#expr:{{NUMBEROFUSERS}}+1 000}} Erreur d’expression : caractère de ponctuation «   » non reconnu.
{{#expr:{{formatnum:{{NUMBEROFUSERS}}|R}}+1000}}52105
Attention Avertissement : Le mode d'opérande donne de mauvais résultats pour certaines valeurs du second argument :
{{#expr: 123 mod (2^64-1)}}Division par zéro. (produit un champ vide : cela devrait donner 123)

Arrondi

L'arrondi d'un nombre sur la gauche en un multiple du 1/10e élevé à la puissance supérieure, avec l'exposant égal à la valeur tronquée du nombre donné sur la droite :

{{#expr: 9.876 round2 }} → 9.88
{{#expr: (trunc1234) round trunc-2 }} → 1200
{{#expr: 4.5 round0 }} → 5
{{#expr: -4.5 round0 }} → -5
{{#expr: 46.857 round1.8 }} → 46.9
{{#expr: 46.857 round-1.8 }} → 50

Pour un arrondi supérieur ou inférieur, utilisez respectivement ceil et floor.

#if

Cette fonction évalue un champ test et détermine s'il est vide ou non. Un champ test composé uniquement d'espaces est considéré être vide.

{{#if: champ test | valeur si le champ test n'est pas vide | valeur si le champ test est vide (ou rempli d'espaces) }}
{{#if: premier paramètre | second paramètre | troisième paramètre }}

Cette fonction teste en premier lieu si le premier paramètre est vide ou pas. Si le premier paramètre n'est pas vide, la fonction affiche le second argument. Si le premier paramètre est vide ou contient seulement des caractères blancs (espaces, retour chariot, etc.), il affiche le troisième argument.

{{#if: | oui | non}}non
{{#if: champ | oui | non}}oui
{{#if:      | oui | non}}non
{{#if:


| oui | non}}
non

Le champ test est toujours interprété comme un texte pur, les expressions mathématiques ne sont donc pas évaluées :

{{#if: 1==2 | oui | non }}oui
{{#if: 0 | oui | non }}oui

Une voire même les deux valeurs de retour peuvent être omises :

{{#if: foo | oui }} oui
{{#if: | oui }}
{{#if: foo | | non }}

Voyez Aide:Fonctions parseur dans les modèles pour plus d'exemples de cette fonction parseur.