Extension:ArrayFunctions
État de la version : stable |
|
|---|---|
| Implémentation | Fonction d'analyseur |
| Description | Fournit un ensemble de fonctions d'analyse pures qui fonctionnent avec des tableaux |
| Auteur(s) | Marijn van Wezel (Wikibase Solutions) |
| Dernière version | 1.17.0 (2025-08-26) |
| Politique de compatibilité | Le master conserve la compatibilité arrière. |
| MediaWiki | >=1.35.6 |
| PHP | >=7.4 |
| Modifie la base de données |
Non |
| Composer | wikibase-solutions/array-functions |
| Licence | Licence publique générale GNU v2.0 ou supérieur |
| Téléchargement | |
|
|
| Traduire l’extension ArrayFunctions sur translatewiki.net si elle y est disponible | |
| Problèmes | Tâches ouvertes · Signaler un bogue |
Documentation pour les autres versions : 1.0 · 1.1 · 1.2 · 1.3 · 1.4 · 1.5 · 1.6 · 1.7 · 1.8 · 1.9 · 1.10 · 1.11 · 1.12 · 1.13 · 1.14 · 1.15 · 1.16 · 1.17 · non diffusé.
L'extension ArrayFunctions crée un ensemble de fonctions d'analyse pures (voir ici), compatibles Parsoid, pour réaliser les opérations sur les tableaux.
Installation
- Téléchargez et placez le(s) fichier(s) dans un répertoire appelé
ArrayFunctionsdans votre dossierextensions/.
Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/ArrayFunctions
- Ajoutez le code suivant à la fin de votre fichier LocalSettings.php :
wfLoadExtension( 'ArrayFunctions' ); // augmenter $wgMaxArticleSize pour permettre des tableaux plus grands (par défaut : 2048) $wgMaxArticleSize = 8192;
- Configure performance limits as necessary.
Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.
Abrégé
ArrayFunctions définit une collection de fonctions d'analyse qui vous permettent de travailler avec des listes et des objets non mutables, collectivement des tableaux. Au lieu de stocker ces tableaux en mémoire, elles sont sorties directement par la fonction d'analyse et peuvent être transférées à des modèles ou à d'autres fonctions d'analyse. Bien qu'il soit possible de créer et de travailler avec les tableaux entièrement avec du wikicode, l'approche recommandée est d'utiliser Scribunto (Lua), Semantic MediaWiki ou Cargo pour créer un tableau contenant toutes les données nécessaires, puis d'utiliser ArrayFunctions uniquement pour le formater. Les fonctions d'analyse #af_list et #af_object doivent d'abord être utilisées pour les tableaux simples et uniques.
ArrayFunctions définit de nombreuses fonctions d'analyse (plus de 30), mais les plus utiles sont :
- #af_get — obtenir une valeur ou effectuer brièvement une opération
- #af_pipeline — créer un enchaînement d'opérations pour empêcher les imbrications profondes
- #af_foreach — itérer sur un tableau
- #af_show — sortir une valeur stockée dans un tableau
- #af_print — imprimer un tableau à des fins de débogage
- #af_map — modifier tous les éléments d'un tableau
- #af_template — appeler un modèle avec les données stockées dans un tableau
- #af_list — créer une liste
- #af_object — créer un objet
- #af_zip — réduire plusieurs tableaux ensemble
Compatibilité
ArrayFunctions a pour règle de ne pas casser la compatibilité avec l'existant. Cela signifie que le code vu par l'utilisateur (comme les fonctions d'analyse, les fonctions Lua et les mots magiques) continuera à fonctionner indéfiniment, et que les modifications seront toujours implémentées de sorte à rester compatibles avec l'existant.
ArrayFunctions tente également de maintenir la compatibilité avec les anciennes versions de MediaWiki le plus longtemps possible, mais en raison de la nature des extensions, cela peut ne pas être possible indéfiniment. Si une mise à jour de MediaWiki casse une fonctionnalité sur laquelle s'appuie ArrayFunctions, il sera corrigé à postériori si cela est possible. Sinon une nouvelle version MAJEURE de ArrayFunctions sera diffusée.
| ArrayFunctions | MediaWiki | PHP | Scribunto1 | Semantic MediaWiki1 | Cargo1 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1.15.0+ |
|
|
|
|
| ||||||||||
| 1.14+ |
|
|
|
|
non applicable | ||||||||||
| 1.0-1.13 |
|
|
|
non applicable | non applicable |
- 1 dépendance logicielle : les contraintes de version ne s'appliquent que si le logiciel est installé.
Limites des performances
| ArrayFunctions version | ≥ 1.16 |
$wgMaxArticleSize.ArrayFunctions fournit un nombre de paramètres de configuration pour limiter le temps de traitement de certaines fonctions et empêcher les utilisateurs de réaliser une attaque de déni de service sur votre wiki. Pour des raisons de compatibilité arrière, ces limites sont désactivées par défaut. Les paramètres de configuration disponibles sont :
| Nom | Défaut | Recommandé | Description |
|---|---|---|---|
$wgArrayFunctionsForeachIterationLimit |
-1 |
~1024
|
Ce paramètre de configuration limite le nombre maximum d'itérations de #af_foreach qu'une page est autorisée à effectuer. Une valeur inférieure à zéro ne définit aucune limite pour le nombre d'itérations. |
$wgArrayFunctionsMaxRangeSize |
-1 |
~4096
|
Ce paramètre de configuration limite la taille maximum d'un tableau construit avec la fonction d'analyse #af_range. Une valeur inférieure à zéro ne définit aucune limite pour la taille des tableaux construits avec #af_range. |
$wgArrayFunctionsMaxPipelineLength |
-1 |
~$wgMaxTemplateDepth / 4
|
Ce paramètre de configuration limite la longueur maximale du chaînage (#af_pipeline). Une valeur inférieure à zéro ne définit aucune limite pour le nombre d'étapes du chaînage. |
Ces limites sont indiquées dans le rapport des limites de l'analyseur, qui peut être utilisé pour modifier les paramètres ou déboguer une page.
FAQ
Définir un tableau à utiliser sur une page
Il n'est pas possible de définir directement un tableau à utiliser sur une page, car cela nécessiterait un traitement séquentiel des balises d'extension, ce qui n'est pas reconnu par Parsoid (voir Pas de support des balises d'extension). Au lieu de cela, vous pouvez passer les tableaux dans les paramètres des modèles :
{{My template|{{#af_list:a|b|c}}}}
De cette manière le tableau est disponible dans Template:My template avec {{{1}}}.
Itérer sur un tableau
Il est possible d'accéder aux éléments d'un tableau de manière itérative en utilisant #af_foreach :
{{#af_foreach:{{#af_list:red|green|blue}}||color|<nowiki/>
* {{{color}}} is my favourite.
}}
La sortie attendue de l'extrait ci-dessus est :
- red is my favourite.
- green is my favourite.
- blue is my favourite.
Pourquoi les valeurs ne sont-elles pas reconnues comme des tableaux ?
Cela peut arriver quand vos tableaux sont trop gros. MediaWiki conserve en interne un compteur de la taille totale des arguments du modèle, qui peut être augmentée en augmentant $wgMaxArticleSize.
La différence principale est que les fonctions d'analyse de ArrayFunctions sont pures. Cela signifie qu'au lieu de modifier ou de déclarer une variable, la fonction d'analyse fournit directement le résultat.
Par exemple, avec #af_map, le tableau donné n'est pas modifié; au lieu de cela, une copie est créée, modifiée et ensuite fournie.
Aucune fonction de partage dans ArrayFunctions ne modifie l'état global : tous les calculs se font uniquement avec l'invocation de la fonction d'analyse.
Cela rend le travail avec ArrayFunctions très différent du travail avec d'autres extensions telles que Arrays ou Variables.
Au lieu de modifier impérativement un tableau stocké dans une variable, la composition de fonctions doit être utilisée pour réaliser des opérations plus complexes.
Par exemple :
{{#arraydefine: fruits | orange, banana, strawberry, apple }}
{{#arraysort: fruits | asc }}
{{#arrayprint: fruits }}
- ArrayFunctions
{{#af_pipeline: {{#af_list: orange | banana | strawberry | apple }}
| {{#af_sort: {{{prev}}} }}
| {{#af_print: {{{prev}}} }}
}}
Pourquoi les espaces sont-elles supprimées dans les valeurs du tableau ?
Le caractère espace est intrinsèquement implicite dans le wikicode. Pour être cohérent avec ce comportement, le caractère espace est supprimé récursivement dans les valeurs du tableau.
Fonctions
- Les paramètres préfixés avec un seul astérisque (*) indiquent qu'un nombre variable d'arguments positionnels peut être passé.
- Les paramètres préfixés avec un double astérisque (**) indiquent qu'un nombre variable d'arguments nommés peut être passé.
- Les noms des arguments clé sont sensibles à la casse.
- Les arguments chaîne supportent les séquences d'échappement suivantes :
\spour les espaces\npour les passages à la ligne\\pour les barres obliques inverses
L'extension définit les fonctions d'analysee suivantes, les fonctions Lua, le format des résultats de Semantic MediaWiki, les formats d'affichage Cargo et les mots magiques :
| Nom | Description |
|---|---|
#af_bool
|
Transformer (cast) une chaîne en booléen. |
#af_float
|
Transformer une chaîne en flottant. |
#af_int
|
Transformer une chaîne en entier. |
#af_list
|
Créer une nouvelle liste de valeurs. |
#af_object
|
Créer un nouvel objet à partir des valeurs. |
#af_range
|
Créer un intervalle fini d'entiers. |
#af_split
|
Divisez une chaîne en fonction d'un délimiteur. |
AF_EMPTY
|
Un tableau vide. |
mw.af.export
|
Créer un nouveau tableau avec Lua. |
arrayfunctions
|
Formater le résultat d'une requête Semantic MediaWiki en tant que tableau ArrayFunctions. |
arrayfunctions
|
Afficher le résultat d'une requête Cargo en tant que tableau ArrayFunctions. |
| Nom | Description |
|---|---|
#af_count
|
compter le nombre de valeurs dans un tableau |
#af_exists
|
vérifier si une clé ou un index existe dans un tableau. |
#af_get
|
récupérer un élément du tableau par son indice. |
#af_isarray
|
vérifier si une valeur est un tableau. |
#af_print
|
imprimer un tableau à des fins de débogage |
#af_search
|
rechercher une valeur dans un tableau. |
#af_show
|
Afficher la valeur sous forme lisible par un humain. |
mw.af.import
|
créer une nouvelle table à partir d'un tableau ArrayFunctions. |
| Nom | Description |
|---|---|
#af_difference
|
Calculez une différence de tableaux. |
#af_flatten
|
Mettre un tableau à plat. |
#af_group
|
Compute un tableau qui, lorsqu'il est indexé, fournit tous les éléments d'une clé à partir de tous les sous-tableaux. |
#af_intersect
|
Calculer l'intersection de tableaux. |
#af_keysort
|
Trier une liste d'objets basée sur les valeurs d'une clé. |
#af_ksort
|
Trier un tableau par clé. |
#af_merge
|
Calculer l'union de tableaux. |
#af_push
|
Ajoutez une valeur en fin de liste. |
#af_put
|
Initialiser une valeur à un indice donné. |
#af_reverse
|
Inverser un tableau. |
#af_set
|
Initialiser une valeur à l'indice (obsolète depuis v. 1.13.0). |
#af_slice
|
Extraire un tranche de tableau. |
#af_sort
|
Trier une liste. |
#af_unique
|
Retirer les doublons d'un tableau. |
#af_unset
|
Retirer une valeur d'un tableau à partir de son indice. |
#af_zip
|
Réduire plusieurs tableaux ensemble. |
| Nom | Description |
|---|---|
#af_foreach
|
Itérer sur un tableau. |
#af_join
|
Joindre les éléments d'un tableau avec un séparateur. |
#af_map
|
Appliquer un rappel à chaque élément d'une liste. |
#af_reduce
|
Réduire le tableau à une seule valeur de manière itérative en utilisant un rappel. |
| Nom | Description |
|---|---|
#af_if
|
Sélectionner l'une des deux alternatives basées sur un prédicat. |
#af_pipeline
|
Chaîner plusieurs fonctions. |
#af_stringmap
|
Appliquer un rappel à chaque valeur dans une chaîne délimitée. |
#af_template
|
Exécuter un modèle avec les valeurs dans un tableau. |
#af_trim
|
Supprimer les caractères au début et à la fin d'une chaîne. |
af_bool
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse transforme une chaîne en booléen.
Ceci est utile pour créer un tableau contenant un booléen.
Les valeurs suivantes sont considérées comme true : "1", "true", "on" et "yes".
Les valeurs suivantes sont considérées comme false : "0", "false", "off" et "no".
Si une autre valeur est fournie, une erreur est renvoyée.
Description
{{#af_bool: value }}
Paramètres
| Nom | Type | Description |
|---|---|---|
| value | chaîne ou booléen | valeur à transformer en booléen. |
Valeurs renvoyées
renvoie le booléen transformé
Exemples
| Créer une représentation opaque d'un booléen | {{#af_bool: yes }}, {{#af_bool: no }}, {{#af_bool: true }}
|
boolean__^__1, boolean__^__0, boolean__^__1 |
| Créer un tableau contenant un booléen | {{#af_print: {{#af_list: {{#af_bool: yes}} }} }}
|
|
af_count
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse compte le nombre de valeurs dans un tableau.
Par défaut, cette fonction d'analyse ne compte que le nombre d'éléments de niveau supérieur.
Néanmoins, si l'argument clé recursive reçoit la valeur true, il va compter aussi le nombre d"éléments de chaque sous-tableau.
Notez que si recursive=true, l'élément contenant un tableau ainsi que toutes les valeurs qui se trouvent à l'intérieur, sont comptés.
Description
{{#af_count: array | recursive=recursive }}
Paramètres
| Nom | Type | Défaut | Description |
|---|---|---|---|
| array | tableau | Tableau à compter. | |
| recursive | booléen | false |
Indique si les éléments doivent être comptés récursivement. |
Valeurs renvoyées
Nombre d'éléments dans le tableau.
Exemples
| Compter le nombre d'éléments d'une liste unidimensionnelle | {{#af_print: {{#af_count: {{#af_list: a | b | c }} }} }}
|
3 |
| Compter le nombre d'éléments d'une liste multidimensionnelle | {{#af_print: {{#af_count: {{#af_list: {{#af_list: a | b }} | {{#af_list: c | d }} }} }} }}
|
2 |
| Compter le nombre d'éléments d'une liste multidimensionnelle mais de manière récursive | {{#af_print: {{#af_count: {{#af_list: {{#af_list: a | b }} | {{#af_list: c | d }} }} | recursive=true }} }}
|
6 |
af_difference
| ArrayFunctions version | ≥ 1.5 |

Cette fonction d'analyse calcule une différence entre tableaux. Cette fonction préserve les clés.
Description
{{#af_difference: array | *arrays }}
Paramètres
| Nom | Type | Description |
|---|---|---|
| array | tableau | Premier tableau. |
| *arrays | tableau | Autres tableaux. |
Valeurs renvoyées
Renvoie un tableau contenant toutes les valeurs de array qui ne sont pas présentes dans les autres tableaux de arrays.
Les clés de array sont conservées.
Exemples
| Calcule la différence de trois tableaux. | {{#af_print: {{#af_difference: {{#af_list: a | b | c }} | {{#af_list: a }} | {{#af_list: b}} }} }}
|
|
af_exists
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse vérifie si la clé ou l'index donné existent dans le tableau donné. Plusieurs clés sont autorisées pour vérifier les tableaux imbriqués.
Description
{{#af_exists: array | *keys }}
Paramètres
| Nom | Type | Description |
|---|---|---|
| array | tableau | Tableau à explorer. |
| keys | chaîne de caractères ou entier | Clé à vérifier. Plusieurs clés sont autorisées pour vérifier s'il existe une clé imbriquée. |
Valeurs à renvoyer
Renvoie true si array contient la clé, et false sinon.
Exemples
| Vérifier l'existence d'une clé | {{#af_print: {{#af_exists: {{#af_object: hello=world }} | hello }} }}
|
true |
| Vérifier l'existence d'un index | {{#af_print: {{#af_exists: {{#af_list: a | b | c }} | 2 }} }}
|
true |
| Vérifier l'existence d'une clé imbriquée | {{#af_print: {{#af_exists: {{#af_list: a | {{#af_list: b | c }} }} | 0 | 3 }} }}
|
false |
af_flatten
| ArrayFunctions version | ≥ 1.11 |
Cette fonction d'analyse crée un nouveau tableau avec tous les éléments de sous-tableaux concaténés à l'intérieur et de manière récursive jusqu'à la profondeur spécifiée, ou jusqu'à ce qu'il soit complètement déplié si aucune profondeur n'est spécifiée.
Description
{{#af_flatten: array | depth }}
Paramètres
| Nom | Type | Défaut | Description |
|---|---|---|---|
| array | tableau | Tableau à mettre à plat. | |
| depth | entier | null
|
Profondeur maximale de développement, ou rien à déplier si le tableau est déjà à plat. |
Valeurs renvoyées
Renvoie un tableau avec tous les éléments de sous-tableau concaténés à l'intérieur et de manière récursive jusqu'à la profondeur spécifiée, ou un tableau complètement à plat si aucune profondeur n'est spécifiée.
Exemples
| Développer un tableau sur une profondeur de un niveau | {{#af_print: {{#af_flatten: {{#af_list: {{#af_list: a | b | c }} | {{#af_list: d | e | f }} }} }} }}
|
|
af_float
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse transforme une chaîne en flottant. Elle est utile pour créer un tableau de flottants.
Description
{{#af_float: value }}
Paramètres
| Nom | Type | Description |
|---|---|---|
| value | chaîne de caractères ou flottant | valeur à transformer en flottant. |
Valeurs renvoyées
Renvoie le flottant transformé
Exemples
| Créer une représentation opaque d'un flottant | {{#af_float: 1.298 }}, {{#af_float: 0 }}
|
float__^__1.298, float__^__0 |
| Créer un tableau contenant un flottant | {{#af_print: {{#af_list: {{#af_float: 1.298 }} }} }}
|
|
af_foreach
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse fournit le moyen d'itérer sur les tableaux.
Pour chacun des éléments du tableau d'entrée donné, elle va évaluer son contenu, en remplaçant les occurrences des variables key_name et value_name.
Ces variables sont accessibles de la même manière que les paramètres du modèle, en les entourant avec des accolades triples (par exemple {{{value_name}}}).
Le comportement de cette fonction d'analyse pourrait être influencé par le paramètre de configuration $wgArrayFunctionsForeachIterationLimit.
Description
{{#af_foreach: array | key_name | value_name | body | delimiter=delimiter }}
Paramètres
| Nom | Type | Défaut | Description |
|---|---|---|---|
| array | tableau | Tableau sur lequel il faut itérer. | |
| key_name | chaîne | null |
Nom à utiliser pour la clé. |
| value_name | chaîne | null |
Nom à utiliser pour la valeur. |
| body | chaîne | Contenu à renvoyer pour chaque itération. | |
| delimiter | chaîne | "" |
Délimiteur à placer entre les résultats (disponible depuis la version 1.9.0). |
Valeurs renvoyées
Renvoie le wikicode résultant.
Exemples
| Itérer sur une liste | {{#af_foreach: {{#af_list: John | Steve | Harry }} | | name | Hello, {{{name}}}!<br/> }}
|
Hello, John! Hello, Steve! Hello, Harry! |
| Itérer sur un objet | {{#af_foreach: {{#af_object: Hello=John | Hi=Steve | Welcome=Harry }} | greeting | name | {{{greeting}}}, {{{name}}}!<br/> }}
|
Hello, John! Hi, Steve! Welcome, Harry! |
| Itérer sur une liste et ajouter un délimiteur | {{#af_foreach: {{#af_list: John | Steve | Harry }} | | name | Hello, {{{name}}}! | delimiter=<br/> }}
|
Hello, John! Hello, Steve! Hello, Harry! |
af_get
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse récupère dans le tableau l'élément avec l'indice fourni, ou réalise des opérations si l'index est surchargé. Si l'indice n'existe pas ou qu'il n'est pas surchargé, on renvoie la chaîne vide.
Un indice surchargé permet à l'utilisateur d'effectuer brièvement certaines opérations simples sur les tableaux pendant l'indexation.
Utiliser un index surchargé est la même chose que de faire d'abord un #af_get avec tous les index avant la surcharge, puis de réaliser la fonction spécifiée par l'index surchargé, et enfin réaliser un autre #af_get avec les indices restants.
Par exemple, {{#af_get: {{{1}}} | a | * | b }} est équivalent à {{#af_get: {{#af_group: {{#af_get: {{{1}}} | a }} }} | b }}.
Si le tableau contient une clé qui entre en collision avec le symbole pour un indice surchargé, la valeur correspondant à la clé sera récupérée à la place. Ceci a été fait pour la compatibilité arrière.
Description
{{#af_get: array | *indices }}
Paramètres
| Nom | Type | Description |
|---|---|---|
| array | tableau | Tableau à indexer. |
| *indices | chaîne | Indice. Les indices multiples peuvent être fournis pour indexer les tableaux imbriqués. |
Indices surchargés (disponible depuis la version 1.11.0)
| Syntaxe | Fonction équivelente | Description |
|---|---|---|
*
|
#af_group | Regrouper les sous-tableaux par clé. |
<-
|
#af_reverse | Inverser le tableau. |
><
|
#af_flatten | Mettre à plat une fois. |
>><<
|
#af_flatten | Mettre à plat en développant complètement. |
#
|
#af_unique | Supprimer les doublons du tableau. |
n..m
|
#af_slice | Récupérer une tranche du tableau (ou n ou m peuvent être omis pour indexer du début à la fin du tableau respectivement).
|
! (disponible depuis la version 1.16.0)
|
#af_show | Afficher la valeur sous forme lisible par un humain en utilisant le format table, simple.
|
Valeurs renvoyées
Renvoie la valeur indexée ou la chaîne vide si l'indice n'existe pas.
Exemples
| Obtenir un élément de niveau supérieur | {{#af_get: {{#af_list: a | b | c }} | 1 }}
|
b |
| Obtenir un sous-tableau | {{#af_print: {{#af_get: {{#af_list: a | {{#af_list: b | c }} }} | 1 }} }}
|
|
| Obtenir un élément imbriqué | {{#af_get: {{#af_list: a | {{#af_object: hello=world }} }} | 1 | hello }}
|
world |
| Inverser le tableau | {{#af_print: {{#af_get: {{#af_list: a | b | c }} | <- }} }}
|
|
| Obtenir le dernier élément du tableau | {{#af_print: {{#af_get: {{#af_list: a | b | c }} | <- | 0 }} }}
|
c |
af_group
| ArrayFunctions version | ≥ 1.11 |
Cette fonction d'analyse génère un tableau où les sous-tableaux sont récursivement groupés par clé.
Description
{{#af_group: array }}
Paramètres
| Nom | Type | Description |
|---|---|---|
| array | tableau | Tableau duquel les sous-tableaux doivent être regroupés. |
Valeurs renvoyées
Renvoie un tableau où les sous-tableaux sont groupés récursivement par clé.
Exemples
| Grouper des sous-tableaux par clé | {{#af_print: {{#af_group: {{#af_list: {{#af_object: a=1 | b=2 }} | {{#af_object: a=3 | b=4 }} | {{#af_object: a=5 | b=5 }} }} }} }}
|
|
af_if
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse sélectionne l'une des deux alternatives basées sur un prédicat donné.
Description
{{#af_if: predicate | consequent | alternative }}
Paramètres
| Nom | Type | Défaut | Description |
|---|---|---|---|
| predicate | booléen | Prédicat. | |
| consequent | chaîne | Valeur à renvoyer si le prédicat est vérifié (s'il vaut true).
| |
| alternative | chaîne | "" |
Valeur à renvoyer si le prédicat n'est pas vérifié (s'il vaut false).
|
Valeurs renvoyées
Retourne le conséquent si le prédicat est vérifié, ou l'alternative si elle est fournie et que le prédicat n'est pas vérifié.
Exemples
| Vérifier qu'une valeur est un tableau | {{#af_if: {{#af_isarray: not an array }} | A beautiful array! | Not an array! }}
|
Not an array! |
af_int
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse transforme un chaîne en entier. C'est utile pour créer un tableau avec un entier.
Description
{{#af_int: value }}
Paramètres
| Nom | Type | Description |
|---|---|---|
| value | chaîne ou entier | Valeur à transformer en entier. |
Valeurs renvoyées
Renvoie l'entier transformé.
Exemples
| Créer une représentation opaque d'un entier | {{#af_int: 42 }}, {{#af_int: -12 }}
|
integer__^__42, integer__^__-12 |
| Créer un tableau contenant un entier | {{#af_print: {{#af_list: {{#af_int: -129}} }} }}
|
|
af_intersect
| ArrayFunctions version | ≥ 1.2 |

Cette fonction d'analyse calcule une intersection de tableaux. Cette fonction préserve les clés.
Description
{{#af_intersect: array | *arrays }}
Paramètres
| Nom | Type | Description |
|---|---|---|
| array | tableau | Premier tableau. |
| *arrays | tableau | Autres tableaux. |
Valeurs renvoyées
Renvoie l'intersection des tableaux fournis.
Exemples
| Evaluer l'intersection de deux tableaux identiques | {{#af_print: {{#af_intersect: {{#af_list: a | b | c }} | {{#af_list: a | b | c }} }} }}
|
|
| Évaluer l'intersection de deux tableaux qui se recouvrent partiellement | {{#af_print: {{#af_intersect: {{#af_list: a | b | c }} | {{#af_list: c | d | e }} }} }}
|
|
af_isarray
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse vérifie que la valeur fournie est un tableau.
Description
{{#af_isarray: value }}
Paramètres
| Nom | Type | Description |
|---|---|---|
| value | divers | Valeur à vérifier. |
Valeurs renvoyées
Renvoie true si value est un tableau, false sinon.
Exemples
| Vérifier qu'un tableau est effectivement un tableau | {{#af_print: {{#af_isarray: {{#af_list: a | b | c }} }} }}
|
true
|
| Vérifier qu'une chaîne est une tableau | {{#af_print: {{#af_isarray: Hello, World! }} }}
|
false
|
af_join
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse joint les éléments d'un tableau ensemble de manière récursive à l'aide d'un séparateur fourni.
Description
{{#af_join: array | glue }}
Paramètres
| Nom | Type | Défaut | Description |
|---|---|---|---|
| array | tableau | Tableau à joindre. | |
| glue | chaîne | "" |
Chaîne utilisée pour joindre chaque élément. |
Valeurs renvoyées
Renvoie le tableau joint.
Exemples
| Joindre un tableau à une dimension | {{#af_join: {{#af_list: a | b | c }} }}
|
abc |
| Joindre un tableau à une dimension en utilisant un séparateur | {{#af_join: {{#af_list: a | b | c }} | \s-\s }}
|
a - b - c |
| Joindre un tableau à plusieurs dimensions en utilisant un séparateur | {{#af_join: {{#af_list: a | b | {{#af_list: c | d }} }} | \s-\s }}
|
a - b - c - d |
af_keysort
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse trie une liste d'objets en fonction des valeurs de la clé spécifiée. Pour trier un tableau par clé, utiliser #af_ksort.
Description
{{#af_keysort: array | key | descending=descending | caseinsensitive=caseinsensitive }}
Paramètres
| Nom | Type | Défaut | Description |
|---|---|---|---|
| array | tableau | Tableau à trier. | |
| key | chaîne | Clé des valeurs sur lesquelles le tri doit être effectué. | |
| descending | booléen | false |
Indique si le tri doit être fait par ordre décroissant. |
| caseinsensitive | booléen | false |
Indique s'il faut ignorer la casse lors du tri (disponible depuis la version 1.7.0). |
Valeurs renvoyées
Renvoie le tableau trié.
Exemples
| Tri basé sur l'age | {{#af_print: {{#af_keysort: {{#af_list:
{{#af_object: name=John | age=56 }} |
{{#af_object: name=Harry | age=12 }} |
{{#af_object: name=Bob | age=24 }}
}} | age }} }}
|
|
| Tri basé sur l'age, dans l'ordre descendant | {{#af_print: {{#af_keysort: {{#af_list:
{{#af_object: name=John | age=56 }} |
{{#af_object: name=Harry | age=12 }} |
{{#af_object: name=Bob | age=24 }}
}} | age | descending=true }} }}
|
|
af_ksort
| ArrayFunctions version | ≥ 1.7 |
Cette fonction d'analyse trie un tableau par clé.
Description
{{#af_ksort: array | descending=descending | caseinsensitive=caseinsensitive }}
Paramètres
| Nom | Type | Défaut | Description |
|---|---|---|---|
| array | tableau | Tableau à trier. | |
| descending | booléen | false |
Indique si le tri doit être fait par ordre décroissant. |
| caseinsensitive | booléen | false |
Indique s'il faut ignorer la casse lors du tri (disponible depuis la version 1.7.0). |
Valeurs renvoyées
Renvoie le tableau trié.
Exemples
| Tri par clé | {{#af_print: {{#af_ksort: {{#af_object: c=banana | a=orange | b=apple }} }} }}
|
|
af_list
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse crée une nouvelle liste à partir des paramètres fournis.
Description
{{#af_list: *values }}
Paramètres
- *values : divers
- Valeurs de la liste.
Valeurs renvoyées
Renvoie la liste résultat.
Exemples
| Créer une liste simple à une dimension | {{#af_print: {{#af_list: a | b | c }} }}
|
|
| Créer une liste à plusieurs dimensions | {{#af_print: {{#af_list: {{#af_list: a | b }} | {{#af_list: c | d }} }} }}
|
|
| Créer une liste d'objets | {{#af_print: {{#af_list:
{{#af_object: name=Harry | age=22 }} |
{{#af_object: name=Bobby | age=29 }}
}} }}
|
|
af_map
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse applique un rappel à chaque élément d'une liste.
Description
{{#af_map: array | value_name | callback }}
Paramètres
- array : tableau
- Tableau à parcourir par le rappel.
- value_name : chaîne
- Nom à donner à la valeur dans le rappel.
- callback : chaîne
- Le rappel à appliquer à chaque élément du tableau.
Valeurs renvoyées
Renvoie le tableau résultat avec les correspondances.
Exemples
| Ajout d'une chaîne à chaque élément | {{#af_print: {{#af_map: {{#af_list: a | b | c }} | v | {{{v}}}-appended }} }}
|
|
| Modifier des éléments de liste | {{#af_print: {{#af_map: {{#af_list: {{#af_list: a }} | {{#af_list: b }} }} | v | {{#af_push: {{{v}}} | c }} }} }}
|
|
af_merge
| ArrayFunctions version | ≥ 1.2 |
Cette fonction d'analyse réalise la fusion de plusieurs tableaux. Elle concatène les éléments de plusieurs tableaux de sorte à ce que les valeurs de l'un soient ajoutées à la fin du précédent. Les doublons ne sont pas supprimés.
Si les tableaux fournis ont pour clé une même chaîne, alors on ne mémorise que la dernière valeur pour cette clé. Par contre quand les tableaux contiennent des clés numériques, les dernières valeurs sont ajoutées et leur clés sont renumérotées.
Description
{{#af_merge: array | *arrays }}
Paramètres
- array : tableau
- Premier tableau.
- *arrays : tableau
- Autres tableaux.
Valeurs renvoyées
Renvoie l'union des tableaux fournis.
Exemples
| Ajouter une chaîne à chaque élément | {{#af_print: {{#af_merge: {{#af_list: a | b | c }} | {{#af_list: d | e | f }} }} }}
|
|
af_object
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse crée un nouvel objet à partir des paramètres fournis.
Description
{{#af_object: **values }}
Paramètres
- **values : divers
- Valeurs de l'objet.
Valeurs renvoyées
Renvoie l'objet résultat.
Exemples
| Créer un objet simple à une dimension | {{#af_print: {{#af_object: a=b | b=c | c=d }} }}
|
|
| Créer un objet à plusieurs dimensions | {{#af_print: {{#af_object: head={{#af_object: title=MediaWiki | meta={{#af_list: {{#af_object: charset=UTF-8 }} }} }} }} }}
|
|
af_pipeline
| ArrayFunctions version | ≥ 1.14 |
Cette fonction d'analyse enchaîne plusieurs opérations.
La fonction d'analyse prend le résultat de l'argument précédent expansé et le passe comme paramètre spécifié (ou par défaut prev) à l'argument suivant de la fonction d'analyse.
Ceci est très utile pour améliorer la lisibilité du code du modèle, car il vous permet de supprimer les appels aux fonctions d'analyse imbriquées profondément.
Par exemple les deux extraits suivants sont sémantiquement équivalents :
| Avant | Après |
|---|---|
{{#af_print: {{#af_unique: {{#af_reverse: {{#af_list: a | a | b | c}} }} }} }}
|
{{#af_pipeline: {{#af_list: a | a | b | c }}
| {{#af_reverse: {{{prev}}} }}
| {{#af_unique: {{{prev}}} }}
| {{#af_print: {{{prev}}} }}
}}
|
Le comportement de cette fonction d'analyse peut être influencé par le paramètre de configuration $wgArrayFunctionsMaxPipelineLength.
Description
{{#af_pipeline: initial | *steps | parameter=parameter }}
Paramètres
| Nom | Type | Défaut | Description |
|---|---|---|---|
| initial | divers | Valeur initiale du chaînage. | |
| *steps | divers | Étapes suivantes du chaînage. | |
| parameter | chaîne | "prev" |
Nom à utiliser pour la valeur précédente. |
Valeurs renvoyées
Renvoie la valeur renvoyée par l'étape finale du chaînage.
Exemples
| Créer un enchaînement | {{#af_pipeline: {{#af_list: a | a | b | c }}
| {{#af_reverse: {{{prev}}} }}
| {{#af_unique: {{{prev}}} }}
| {{#af_print: {{{prev}}} }}
}}
|
|
af_print
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse imprime la valeur passée à des fins de débogage. A la différence de #af_show, la valeur n'est pas analysée. Cette fonction ne doit être utilisée qu'à des fins de débogage; utiliser plutôt #af_show pour afficher une valeur au lecteur.
Description
{{#af_print: *values | end=end }}
Paramètres
| Nom | Type | Défaut | Description |
|---|---|---|---|
| *values | divers | Valeurs à imprimer. | |
| end | chaîne | "" |
Chaîne de caractères à ajouter à la fin de chaque valeur imprimée. |
Valeurs renvoyées
Renvoyer la valeur sous forme lisible par un humain.
Exemples
| Imprimer un booléen | {{#af_print: {{#af_bool: yes }} }}
|
true |
| Imprimer une liste | {{#af_print: {{#af_list: a | b | c }} }}
|
|
af_push
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse ajoute la valeur donnée à la fin de la liste.
Description
{{#af_push: array | value }}
Paramètres
- array : tableau
- Tableau dans lequel la valeur sera ajoutée.
- value : divers
- Valeur à ajouter.
Valeurs renvoyées
Renvoie le tableau avec la valeur à l'intérieur.
Exemples
| Poussez une valeur | {{#af_print: {{#af_push: {{#af_list: a | b }} | c }} }}
|
|
af_put
| ArrayFunctions version | ≥ 1.13 |
Cette fonction d'analyse attribue la valeur donnée à l'indice donné. Même chose que #af_set, sauf dans l'ordre des paramètres. Cette fonction d'analyse doit être préférée à #af_set.
Description
{{#af_put: array | value | *indices }}
Paramètres
- array : tableau
- Tableau de destination où l'indice sera mis à jour.
- value : divers
- La valeur correspondant à l'indice.
- *indices : chaîne
- Indice à initialiser. Plusieurs indices peuvent être fournis pour indexer les tableaux imbriqués.
Valeurs renvoyées
Renvoie le tableau avec la valeur à l'index fourni.
Exemples
| Remplacer une valeur existante | {{#af_print: {{#af_put: {{#af_list: a | b | c }} | d | 2 }} }}
|
|
| Créer un nouvel index | {{#af_print: {{#af_set: {{#af_object: foo=bar }} | far | boo }} }}
|
|
| Créer un nouveau sous-tableau | {{#af_print: {{#af_set: {{#af_object: foo=bar }} | far | boo | far }} }}
|
|
af_range
| ArrayFunctions version | ≥ 1.12 |
Cette foinction d'analyse crée un intervalle fini d'entiers.
Le ième élement de l'intervalle est déterminé par la fonction r(i) = start + step * i.
Si le pas est positif, les limites de l'intervalle sont i >= 0 et r(i) < stop.
Si le pas est négatif, les limites sont i >= 0 et r(i) > stop.
Le comportement de cette fonction d'analyse peut être influencé par le paramètre de configuration $wgArrayFunctionsMaxRangeSize.
Description
{{#af_range: start | stop | step }}
Paramètres
| Nom | Type | Défaut | Description |
|---|---|---|---|
| start | entier | Début de l'intervalle. | |
| stop | entier | null |
Fin de l'intervalle (non compris). Si cette valeur est absente, le début deviendra la dernière valeur et la première valeur sera zéro par défaut. |
| step | entier | 1 | Pas entre les valeurs de l'intervalle. |
Valeurs renvoyées
Intervalle fini d'entiers.
Exemples
| Créer un intervalle de 0 à 4 | {{#af_print: {{#af_range: 0 | 5 }} }}
|
|
| Syntaxe alternative pour un intervalle de 0 à 4 | {{#af_print: {{#af_range: 5 }} }}
|
|
| Créer un intervalle de 0 à -4 | {{#af_print: {{#af_range: 0 | -5 | -1 }} }}
|
|
| Créer un intervalle de tous les nombres impairs entre 0 et 10 | {{#af_print: {{#af_range: 1 | 10 | 2 }} }}
|
|
af_reduce
| ArrayFunctions version | ≥ 1.2 |
Cette fonction d'analyse réduit par itération le tableau à une seule valeur en utilisant un rappel.
Il applique callable par itération aux éléments du tableau fourni, afin de réduire le tableau à une seule valeur.
La valeur de l'itération actuelle est passée à l'élément appelé, en même temps que le résultat de l'itération précédente.
Description
{{#af_reduce: array | carry_name | value_name | callable | initial }}
Paramètres
| Nom | Type | Défaut | Description |
|---|---|---|---|
| array | tableau | Tableau à réduire. | |
| carry_name | chaîne | Nom à utiliser pour la retenue. | |
| value_name | chaîne | Nom à utiliser pour la valeur. | |
| callable | chaîne | Rappel à utiliser à chaque itération. | |
| initial | chaîne | "" |
Retenue initiale à utiliser. |
Valeurs renvoyées
Renvoie la valeur résultat.
Exemples
| Utilisation de la réduction pour concaténer les valeurs | {{#af_reduce: {{#af_list: a | b | c }} | c | i | {{{c}}}{{{i}}} }}
|
abc |
| Utiliser la réduction pour inverser puis concaténer les valeurs | {{#af_reduce: {{#af_list: a | b | c }} | c | i | {{{i}}}{{{c}}} }}
|
cba |
| Utiliser la réduction pour construire une équation | {{#af_reduce: {{#af_list: 2 | 3 | 5 | 7 | 11 }} | c | i | {{{c}}} + {{{i}}} | 0 }}
|
0 + 2 + 3 + 5 + 7 + 11 |
af_reverse
| ArrayFunctions version | ≥ 1.11 |
Cette fonction d'analyse inverse le tableau fourni. Elle ne préserve pas les clés numériques.
Description
{{#af_reverse: array }}
Paramètres
- array : tableau
- Tableau à inverser.
Valeurs renvoyées
Renvoie le tableau original inversé.
Exemples
| Inverse une liste | {{#af_print: {{#af_reverse: {{#af_list: a | b | c}} }} }}
|
|
af_search
| ArrayFunctions version | ≥ 1.3 |
Cette fonction d'analyse recherche une valeur donnée dans le tableau fourni, et renvoie la première clé correspondante si la valeur est trouvée.
Description
{{#af_search: array | value }}
Paramètres
- array : tableau
- Tableau dans lequel la recherche est effectuée.
- value : divers
- Valeur à rechercher.
Valeurs renvoyées
Renvoie la première clé qui correspond quand la valeur est trouvée et rien sinon.
Exemples
| Chercher une valeur dans un tableau | {{#af_print: {{#af_search: {{#af_list: a | b | c }} | b }} }}
|
1 |
af_set
| ArrayFunctions version | ≥ 1.0 |
(obsolète depuis v. 1.13.0)
Cette fonction d'analyse initialise la valeur donnée à l'indice donné. Elle est obsolète dans ArrayFunctions 1.13.0 et ne doit plus être utilisée. Elle restera disponible indéfiniment pour la compatibilité arrière. Utiliser #af_put comme alternative.
Description
{{#af_set: value | array | *indices }}
Paramètres
- value : divers
- Valeur à attribuer à l'indice.
- array : tableau
- Tableau dans lequel l'indice sera mis à jour.
- *indices : chaîne
- Indice à utiliser pour la mise à jour. Plusieurs indices peuvent être passés pour indexer les tableaux imbriqués.
Valeurs renvoyées
Renvoie le tableau avec l'indice initialisé avec la valeur donnée.
Exemples
| Remplacer une valeur existante | {{#af_print: {{#af_set: d | {{#af_list: a | b | c }} | 2 }} }}
|
|
| Créer un nouvel index | {{#af_print: {{#af_set: far | {{#af_object: foo=bar }} | boo }} }}
|
|
| Créer un nouveau sous-tableau | {{#af_print: {{#af_set: far | {{#af_object: foo=bar }} | boo | far }} }}
|
|
af_show
| ArrayFunctions version | ≥ 1.4 |
Cette fonction d'analyse imprime la valeur fournie sous forme lisible par un humain.
Le formatage de la valeur est basée sur format.
Description
{{#af_show: value | format=format }}
Paramètres
| Nom | Type | Défaut | Description |
|---|---|---|---|
| value | divers | Valeur à afficher. | |
| format | chaîne | "simple"
|
(introduit dans 1.16.0) Liste de formats séparés par des virgules. La valeur sera affichée en utilisant le premier format qui prend en charge le type de cette valeur. |
Formats (disponible depuis la version 1.16.0)
| Nom | Types reconnus | Description |
|---|---|---|
simple
|
string, integer, float, boolean
|
Représenter une valeur sous forme de chaîne de caractères. Format par défaut. |
table
|
array
|
Formater la valeur en tant que table. |
Valeurs à renvoyer
Renvoyer la valeur sous forme lisible par un humain, formatée avec format.
Exemples
| Afficher une valeur | {{#af_show: Hello World! }}
|
Hello World! |
| Afficher un entier | {{#af_show: {{#af_int: 42 }} | format=simple }}
|
42 |
af_slice
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse extrait une tranche du tableau fourni. Les clés seront réinitialisées et réarrangées.
Description
{{#af_slice: array | offset | length }}
Paramètres
- array : tableau
- Tableau dans lequel une tranche sera sélectionnée.
- offset : entier
- Décalage où doit commencer la tranche. Si la valeur n'est pas négative, la tranche commencera à ce décalage. Si la valeur est négative, la séquence commencera à partir de la fin du tableau.
- length : entier, facultatif
- Longueur de la tranche. Si la longueur est fournie et positive, la tranche contiendra autant d'éléments. Si la longueur est fournie et négative, la tranche s'arrêtera en comptant les éléments à partir de la fin. Si absent, alors la tranche contiendra tout depuis le décalage jusqu'à la fin du tableau.
Valeurs à renvoyer
Tranche.
Exemples
| Obtenir les deux premiers éléments | {{#af_print: {{#af_slice: {{#af_list: a | b | c }} | 0 | 2 }} }}
|
|
| Obtenir le dernier élément | {{#af_print: {{#af_slice: {{#af_list: a | b | c }} | -1 }} }}
|
|
af_sort
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse trie la liste fournie. Elle ne conserve pas les clés numériques.
Description
{{#af_sort: array | descending=descending | caseinsensitive=caseinsensitive }}
Paramètres
| Nom | Type | Défaut | Description |
|---|---|---|---|
| array | tableau | Tableau à trier. | |
| descending | booléen | false |
Indique s'il faut trier la liste dans l'ordre décroissant. |
| caseinsensitive | booléen | false |
Indique s'il faut ignorer la casse lors du tri. |
Valeurs à renvoyer
Renvoie la liste triée.
Exemples
| Trier une liste par ordre croissant | {{#af_print: {{#af_sort: {{#af_list: b | c | a }} }} }}
|
|
| Trier une liste par ordre décroissant | {{#af_print: {{#af_sort: {{#af_list: b | c | a }} | descending=true }} }}
|
|
af_split
| ArrayFunctions version | ≥ 1.1 |
Cette fonction d'analyse divise une chaîne donnée en fonction d'un délimiteur.
Description
{{#af_split: string | delimiter }}
Paramètres
| Nom | Type | Défaut | Description |
|---|---|---|---|
| string | chaîne | Chaîne à segmenter. | |
| delimiter | chaîne | "," |
Délimiteur à utiliser. |
Valeurs à renvoyer
Renvoie la liste résultat.
Exemples
| Segmente une chaîne en fonction des virgules | {{#af_print: {{#af_split: a, b, c }} }}
|
|
| Séparer les mots d'une phrase | {{#af_print: {{#af_split: Lorem ipsum dolor et | \s }} }}
|
|
af_stringmap
| ArrayFunctions version | ≥ 1.6 |
Cette fonction de parser applique un rappel à chaque élément d'une chaîne délimitée et renvoie le résultat dans une chaîne délimitée, optionnellement avec un délimiteur différent. Cette fonction est similaire à la fonction d'analyse #arraymapde Page Forms.
Description
{{#af_stringmap: value | delimiter | value_name | callback | new_delimiter | conjunction }}
Paramètres
| Nom | Type | Défaut | Description |
|---|---|---|---|
| value | chaîne | Chaîne délimitée. | |
| delimiter | chaîne | Délimiteur à utiliser pour segmenter value. Si la chaîne vide est passée, "," est utilisé.
| |
| value_name | chaîne | Nom à donner à la valeur dans le rappel. | |
| callback | chaîne | Rappel à appliquer à chaque élément du tableau. | |
| new_delimiter | chaîne | ", " |
Nouveau délimiteur à insérer entre les éléments associés. |
| conjunction | chaîne | null
|
Délimiteur à placer entre les deux derniers éléments. Cela vous permet de créer une suite plus naturelle, comme "Alice, Bob et Eve". Si aucune valeur n'est fournie, la valeur de new_delimiter est utilisée.
|
Valeurs renvoyées
Renvoie la chaîne résultat délimitée.
Exemples
| Transformer chaque élément en lien | {{#af_stringmap: William Shakespeare, Stephen King, Mark Twain | , | x | [[{{{x}}}]] }}
|
William Shakespeare, Stephen King, Mark Twain |
| Transformer une liste séparée par des virgules en une liste lisible par un humain | {{#af_stringmap: William Shakespeare, Stephen King, Mark Twain | , | x | {{{x}}} | ,\s | and }}
|
William Shakespeare, Stephen King and Mark Twain |
af_template
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse invoquera le modèle donné et passera les valeurs dans le tableau donné en argument. Dans le cas où le tableau donné est un objet, les valeurs seront passées comme des arguments nommés. Dans le cas contraire, elles seront passées comme des arguments numériques.
Description
{{#af_template: name | data }}
Paramètres
- name : chaîne
- Nom du modèle à appeler. Si aucun espace de noms n'est fourni, on suppose que la page est dans l'espace de noms des modèles, sinon on utilise l'espace de noms donné. La page doit exister, pouvoir être incluse et lisible par l'utilisateur, sinon une erreur est donnée.
- data : tableau
- Données à passer dans les paramètres. Les valeurs avec des indices numériques sont transmises dans les arguments positionnels et les valeurs avec des indices de chaîne sont transmises comme des arguments nommés.
Valeurs à renvoyer
Modèle expansé.
Exemples
| Appel d'un modèle avec une liste | {{#af_template: Echo | {{#af_list: a | b }} }}
|
{{Echo|a|b}}
|
| Appel d'un modèle avec un objet | {{#af_template: Echo | {{#af_object: foo=bar | boo=far }} }}
|
{{Echo|foo=bar|boo=far}}
|
af_trim
| ArrayFunctions version | ≥ 1.8 |
Cette fonction d'analyse supprime les caractères donnés du début et de la fin de la chaîne fournie.
L'ordre des caractères n'a pas d'importance.
Il s'arrête dès que le caractère rencontré n'est pas dans characters.
Description
{{#af_trim: string | characters }}
Paramètres
- string : chaîne
- Chaîne à élaguer.
- characters : chaîne
- Caractères à supprimer.
Valeurs à renvoyer
Chaîne élaguée.
Exemples
| Élaguer une chaîne | {{#af_trim: !a! | ! }}
|
a |
| Élaguer chaque chaîne d'une liste | {{#af_print: {{#af_map: {{#af_list: !a! | !b! | !c! }} | v | {{#af_trim: {{{v}}} | ! }} }} }}
|
|
af_unique
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse supprime les valeurs en doublon dans le tableau fourni. Cette fonction ne réinitialise pas les clés.
Description
{{#af_unique: array }}
Paramètres
- array : tableau
- Tableau duquel les doublons doivent être supprimés.
Valeurs à renvoyer
Retourne le tableau où les doublons ont été supprimés.
Exemples
| Supprimer les doublons d'un tableau. | {{#af_print: {{#af_unique: {{#af_list: a | a | b | c | b }} }} }}
|
|
af_unset
| ArrayFunctions version | ≥ 1.0 |
Cette fonction d'analyse supprime la valeur associée à l'index fourni dans le tableau et renvoie le résultat. Les clés numériques ne sont pas réinitialisées après avoir appelé cette fonction.
Description
{{#af_unset: array | *indices }}
Paramètres
- array : tableau
- Tableau duquel la clé fournie sera supprimée.
- *indices : chaîne
- Indice à supprimer. Plusieurs indices peuvent être passés pour indexer les tableaux imbriqués.
Valeurs à renvoyer
Renvoie le tableau dont on a supprimé l'index fourni.
Exemples
| Supprimer un indice de niveau supérieur | {{#af_print: {{#af_unset: {{#af_list: a | b | c }} | 2 }} }}
|
|
| Supprimer un indice de niveau supérieur, clés non réinitialisées | {{#af_print: {{#af_unset: {{#af_list: a | b | c }} | 1 }} }}
|
|
| Supprimer un index imbriqué | {{#af_print: {{#af_unset: {{#af_object: foo={{#af_object: bar=quz | far=buz }} }} | foo | bar }} }}
|
|
af_zip
| ArrayFunctions version | ≥ 1.16 |
Cette fonction d'analyse prend un ou plusieurs tableaux et les réduit ensemble avec les clés, créant un tableau où chaque clé correspond à un tableau contenant toutes les valeurs sous cette clé dans chacun des tableaux d'entrée. Le tableau final ne contiendra que des clés qui étaient présentes dans tous les tableaux d'entrée. Cela signifie que si un tableau d'entrée contient une clé qui n'est pas présente dans l'un des autres tableaux, la clé sera abandonnée et ne fera pas partie du tableau final réduit.
Description
{{#af_zip: array | *arrays }}
Paramètres
- array : tableau
- Premier tableau.
- *arrays : tableau
- Autres tableaux.
Valeurs à renvoyer
Renvoie l'ensemble des tableaux réduits.
Exemples
| Réduire deux listes de longueur égale | {{#af_print: {{#af_zip: {{#af_list: a | b | c }} | {{#af_list: d | e | f }} }} }}
|
|
| Réduire deux listes de longueur différente | {{#af_print: {{#af_zip: {{#af_list: a | b }} | {{#af_list: d | e | f }} }} }}
|
|
| Réduire deux objets avec les mêmes clés | {{#af_print: {{#af_zip: {{#af_object: a=a | b=b }} | {{#af_object: a=c | b=d }} }} }}
|
|
| Réduire deux objets avec des clés différentes | {{#af_print: {{#af_zip: {{#af_object: a=a | b=b }} | {{#af_object: a=c | different=d }} }} }}
|
|
Scribunto
Cette extension est particulièrement utile en combinaison avec Lua, car elle peut être utilisée pour créer un tableau contenant les données nécessaires à la présentation de la page. Ce tableau peut être exporté pour fonctionner avec ArrayFunctions :
local p = {};
function p.world()
return mw.af.export({
["Hello"] = "World"
});
end
return p;
Ce module peut être appelé de la manière suivante :
{{#af_print: {{#invoke: Hello | world }} }}
|
|
mw.af.export
| ArrayFunctions version | ≥ 1.0 |
Cette fonction Lua exporte une table Lua en tant que tableau ArrayFunctions.
Description
mw.af.export( table )
Paramètres
- table : tableau
- Tableau à exporter.
Valeurs renvoyées
Renvoie la table en tant que tableau ArrayFunctions.
mw.af.import
| ArrayFunctions version | ≥ 1.6 |
Cette fonction Lua importe un tableau ArrayFunctions en tant que table Lua.
Description
mw.af.import( array )
Paramètres
- array : tableau
- Tableau à importer.
Valeurs renvoyées
Renvoie la tableau en tant que table Lua.
Semantic MediaWiki
Cette extension s'intègre à Semantic MediaWiki en ajoutant le format de résultat arrayfunctions.
Le format de résultat arrayfunctions est utilisé pour formater les résultats de la requête en tant que tableau ArrayFunctions.
Le résultat est presque identique au résultat de la fonction Lua mw.smw.ask de Semantic Scribunto, sauf que les indices numériques commencent à zéro.
arrayfunctions
| ArrayFunctions version | ≥ 1.14 |
Le format de résultat formate les résultats de la requête en tant que tableau ArrayFunctions.
Description
{{#ask: query | format=arrayfunctions }}
Valeurs renvoyées
Renvoie les résultats de la requête en tant que tableau ArrayFunctions.
Exemples
| Requête simple | {{#af_print: {{#ask:
[[Category:City]]
[[Located in::Germany]]
|?Population
|?Area#km²=Size
|mainlabel=City
|sort=Population
|order=descending
|headers=plain
|format=arrayfunctions
}} }}
|
|
Cargo
Cette extension s'intègre à Cargo en ajoutant le format d'affichage arrayfunctions.
Le format de résultat arrayfunctions est utilisé pour formater les résultats de la requête en tant que tableau ArrayFunctions.
arrayfunctions
| ArrayFunctions version | ≥ 1.15 |
Ce format de résultat formate les résultats de la requête en tant que tableau ArrayFunctions.
Description
no html est nécessaire pour que ArrayFunctions interprète correctement le résultat.{{#cargo_query: parameters | no html | format=arrayfunctions }}
Valeurs à renvoyer
Renvoie le résultat de la requête en tant que tableau ArrayFunctions.
Exemples
| Requête simple | {{#af_print: {{#cargo_query: tables=Books
|no html
|fields=_pageName,Authors,Genres
|format=arrayfunctions
}} }}
|
|
Mots magiques
L'extension définit un certain nombre de mots magiques (variables).
AF_EMPTY
| ArrayFunctions version | ≥ 1.0 |
Ce mot magique renvoie un tableau vide.
C'est utile, car il n'est pas possible de créer un tableau vide avec #af_list ou #af_object.
Description
{{AF_EMPTY}}
Valeurs renvoyées
Renvoyer un tableau vide.
Présentations
-
Présentation au SMWCon 2022 à propos de ArrayFunctions
-
Présentation au EMWCon 2023 à propos de ArrayFunctions
-
Atelier donné au SMWCon 2023 sur la manière de rendre votre wiki compatible avec Parsoid
-
Présentation au SMWCon 2023 à propos de Parsoid et ArrayFunctions
-
Présentation à l'atelier MUD printemps 2025 à propos de ArrayFunctions.
Voir aussi
- Extension:Arrays - extension similaire qui fonctionne en définissant d'abord les tableaux puis en les manipulant. Non compatible avec Parsoid.
- Extension:Scribunto - permet d'inclure des scripts Lua dans les pages du wiki.
Versions
Toutes les modifications notables de ArrayFunctions seront documentées ici.
Le format est basé sur Garder un suivi des modifications, et cette extension est conforme au Semantic Versioning.
v1.17.0 - 2025 août 26
Ajouté
- Ajouter la variable de configuration
$wgArrayFunctionsMaxPipelineLengthpour limiter le nombre total d'étapes dans le chaînage. - Ajouter la catégorie de suivi
Pages using the ArrayFunctions extension(af-tracking-category).
Modifié
- Mises à jour des traductions fournies par translatewiki.net.
Corrigé
- Les intervalles qui dépassent
$wgArrayFunctionsMaxRangeSizesont désormais pris en compte lors de la déclaration de la taille du plus grand intervalle construit dans le rapport des limites de l'analyseur. Auparavant seuls les intervalles qui ne dépassaient pas la limite étaient pris en compte. - Correction de
TypeErrorqui s'est produite lors de la propagation d'une erreur à partir d'un appel imbriqué à la fonction d'analyse.
v1.16.2 - 2025 juin 28
Corrigé
- Correction de l'exception causée par le stockage d'un objet
Messagedans les données d'extension de l'analyseur (T397946). - Assurez-vous que les erreurs sont rendues dans la langue cible de la page au lieu de la langue de l'utilisateur (T397951).
v1.16.1 - 2025 juin 19
Modifié
- Mises à jour des traductions fournies par translatewiki.net.
Corrigé
- Corrige
BadMethodCallExceptioncar basé sur$wgLangdans l'accrocheParserLimitReportPrepare.
v1.16.0 - 2025 juin 10
Ajouté
- Ajouter la variable de configuration
$wgArrayFunctionsForeachIterationLimitpour limiter le nombre total d'itérations qui peuvent être effectuées par#af_foreach. - Ajoutez la variable de configuration
$wgArrayFunctionsMaxRangeSizepour limiter le nombre maximum d'éléments qu'un tableau construit avec#af_rangepeut contenir. - Ajoute la fonction d'analyse
#af_zip. - Ajouter l'indice surchargé
!pour afficher une valeur. - Ajouter les formats
tableetsimplepour '#af_show'. - Ajouter la catégorie de suivi
Pages with ArrayFunctions errors(af-error-category). - Ajout du suivi et de la propagation des erreurs.
Modifié
- Permet à
#af_showd'avoir un format. - Les fonctions d'analyse
#af_sortet#af_ksortcomparent désormais les éléments normalement au lieu de comparer des chaînes. - Mises à jour des traductions fournies par translatewiki.net.
Corrigé
- Correction de l'exception lorsque qu'une chaîne vide est passée à un argument de mot clé.
v1.15.0 - 2025 mai 13
Ajouté
- Ajout du format d'affichage Cargo
arrayfunctions.
Modifié
- Mises à jour des traductions fournies par translatewiki.net.
v1.14.2 - 2025 avril 15
Corrigé
- Supprimer dans le résultat les propriétés sans valeur lorsque le format de résultat
arrayfunctionsest utilisé avec Semantic MediaWiki.
v1.14.1 - 2025 avril 15
Ajouté
- Ajouter la compatibilité avec Semantic MediaWiki 5.0.0.
Modifié
- Mises à jour des traductions fournies par translatewiki.net.
Corrigé
- Rétablir la compatibilité avec MediaWiki 1.35 obsolète.
v1.14.0 - 2025 avril 1
Ajouté
- Ajoutez le format de résultats
arrayfunctionsde Semantic MediaWiki. - Ajouter la fonction d'analyse
#af_pipeline.
Modifié
- Abandonner la compatibilité avec MediaWiki 1.35.
- Mises à jour des traductions fournies par translatewiki.net.
Corrigé
- Corriger l'exception lors de l'utilisation de
#af_templateavec MediaWiki 1.44.
v1.13.0 - 2025 mars 4
Modifié
- Remplacer la fonction d'analyse
#af_setpar#af_put. La fonction d'analyse#af_setreste disponible pour la compatibilité arrière. - Mises à jour des traductions fournies par translatewiki.net.
Corrigé
- Le tableau d'identifiants de variables magiques n'est plus traité comme un tableau associatif, ce qui cassait auparavant la mise en évidence de la syntaxe CodeMirror. (de alex4401)
v1.12.0 - 2025 février 4
Ajouté
- Ajout de la fonction d'analyse
#af_range.
Modifié
- Renommage de la fonction d'analyse
#af_wildcarden#af_groupet ajout d'un alias pour#af_wildcard. - La fonction d'analyse
#af_differencecompare désormais les éléments normalement au lieu de comparer des chaînes. - La fonction d'analyse
#af_existsaccepte désormais plusieurs clés pour vérifier si une clé imbriquée existe. - La fonction d'analyse
#af_intersectcompare désormais les éléments normalement au lieu de comparer des chaînes. - Mises à jour des traductions fournies par translatewiki.net.
v1.11.0 - 2024 décembre 10
Ajouté
- Ajouter les fonction d'analyse suivantes :
#af_flatten#af_wildcard#af_reverse. - Surcharge
#af_getavec des indices spéciaux pour réaliser certaines opérations su rle tableau au lieu de récupérer une clé.
Modifié
- La fonction d'analyse
#af_uniquecompare désormais les éléments normalement au lieu de comparer des chaînes.
v1.10.0 - 2024 novembre 26
Ajouté
- Ajouter la compression ZLIB en utilisant
gzdeflateetgzinflate.
Modifié
- Mises à jour des traductions fournies par translatewiki.net.
v1.9.0 - 2024 mai 2
Ajouté
- Ajouter l'option
delimiterà la fonction d'analyse#af_foreach.
Modifié
- Tous les paramètres de chaîne prennent en charge dorénavant les séquences échappées.
v1.8.0 - 2024 avril 4
Modifié
- Les caractères espace sont désormais supprimés au début et à la fin des valeurs de tableau pour être cohérent avec le comportement des autres paramètres dans MediaWiki.
- Mises à jour des traductions fournies par translatewiki.net.
v1.7.0 - 2023 octobre 24
Ajouté
- Ajout de la fonction d'analyse
#af_ksort. - Ajout de l'option
caseinsensitiveà la fonction d'analyse#af_keysort. - Ajout de l'option
caseinsensitiveà la fonction d'analyse#af_sort.
Modifié
- Mises à jour des traductions fournies par translatewiki.net.
v1.6.0 - 2023 septembre 12
Ajouté
- Ajout de la fonction d'analyse
#af_stringmap. - Ajout de la fonction Lua
mw.af.importpour importer les tableaux ArrayFunctions dans Lua.
Modifié
- Mises à jour des traductions fournies par translatewiki.net.
v1.5.0 - 2023 septembre 7
Ajouté
- Ajout de la fonction d'analyse
#af_difference.
Modifié
- Mises à jour des traductions fournies par translatewiki.net.
v1.4.4 - 2023 juin 30
Modifié
- Mises à jour des traductions fournies par translatewiki.net.
Corrigé
- Correction de la fonction d'analyse
#af_templatepour qu'elle ne vérifie plus explicitement les autorisations de lecture d'un utilisateur puisque la transclusion régulière de modèle ne le fait pas non plus. Auparavant, une erreur était générée.
v1.4.3 - 2023 mai 26
Modifié
- Exporter une valeur
NULL(par exemple via la fonction Luamw.af.export) produit désormais une chaîne vide. Auparavant,NULLgénérait une erreur.
v1.4.2 - 2023 mai 26
Modifié
- La fonction d'analyse
#af_templateaffiche maintenant les modèles inexistants sous forme de lien cassé. Auparavant, une erreur était générée. - Mises à jour des traductions fournies par translatewiki.net.
v1.4.1 - 2023 mai 5
Modifié
- La fonction d'analyse
#af_splitreconnait désormais la chaîne vide comme premier paramètre. Auparavant, une erreur était générée. - Mises à jour des traductions fournies par translatewiki.net.
v1.4.0 - 2023 avril 26
Ajouté
- Ajout de la fonction d'analyse
#af_show.
v1.3.0 - 2023 mars 27
Ajouté
- Ajout de la fonction d'analyse
#af_search.
v1.2.0 - 2023 mars 3
Ajouté
- Add the following parser functions:
#af_intersect#af_merge#af_reduce.
v1.1.0 - 2023 février 3
Ajouté
- Ajouté les fonctions d'analyse
#af_split.
v1.0.1 - 2023 janvier 9
Modifié
- La fonction Lua
mw.af.exportsupporte désormais des paramètres de tout type. Auparavent elle ne prenait en charge que les tableaux.
Corrigé
- Corriger le problème où une exception est générée quand un paramètre est passé à
mw.af.exportet qu'il a un type incorrect.
v1.0.0 - 2023 janvier 7
Ajouté
- Fonctions d'analyse ajoutées :
#af_bool#af_count#af_exists#af_float#af_foreach#af_get#af_if#af_int#af_isarray#af_join#af_keysort#af_list#af_map#af_object#af_print#af_push#af_set#af_slice#af_sort#af_template#af_unique#af_unset
| Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : |
- Stable extensions/fr
- Parser function extensions/fr
- Extensions supporting Composer/fr
- GPL licensed extensions/fr
- Extensions in Wikimedia version control/fr
- ParserFirstCallInit extensions/fr
- ParserGetVariableValueSwitch extensions/fr
- GetMagicVariableIDs extensions/fr
- ScribuntoExternalLibraries extensions/fr
- CargoSetFormatClasses extensions/fr
- All extensions/fr
- Extensions included in wiki.gg/fr
- Array extensions/fr
- Extensions by Wikibase Solutions/fr
