Extension:WSArrays/fr

L'extension WSArrays (ou ComplexArrays) crée un ensemble supplémentaire de fonctions d'analyse qui utilisent les tableaux multidimensionnels et les tableaux associatifs.

Fonctions
Cette extension définit plus de 20 fonctions d'analyse :



complexarraydefine
Cette fonction crée un nouveau tableau identifié par key.

Explications

 * key (obligatoire) &mdash; nom du tableau
 * array (obligatoire) &mdash; tableau en WSON, ou en utilisant un délimiteur.
 * delimiter (optionnel, valeur par défaut : ) &mdash; délimiteur utilisé pour définir un tableau simple.
 * noparse (optionnel) &mdash; arguments pour dire à l'analyseur syntaxique quoi rechercher dans array (voir Utiliser l'anayseur).

complexarraydefinedarrays
Cette fonction de débogage crée un nouveau tableau contenant les clés de tous les tableaux actuellement définis.

Explications

 * key (obligatoire) &mdash; nom du tableau qui contiendra les clés des tableaux définis actuellement



complexarrayprint
Cette fonction imprime les valeurs du tableau dans un format personnalisé.

Explication

 * key (obligatoire) &mdash; nom du (sous-) tableau à imprimer
 * options (optionnel):
 * markup &mdash; imprimer le résultat en WSON.
 * noparse (optionnel) &mdash; initialiser à true pour dire à l'analyseur de ne pas traiter la sortie selon la syntaxe wiki.

Exemples
On dispose d'un tableau foobar :


 * 0
 * foo: bar
 * baz: quz
 * 1
 * foo: quz
 * baz: bar
 * 2
 * baz: bar
 * foo: bar
 * 3
 * baz: . UNIQ347fb3f0c7f3d9c-5

complexarraysize
Cette fonction d'analyse renvoie la taille d'un (sous-) tableau.

Explanation

 * key (obligatoire) &mdash; nom du (sous-) tableau
 * options (optionnel) :
 * top &mdash; ne comptez que le nombre d'éléments dans le tableau principal (et non pas récursivement).

Exemples
On dispose d'un tableau foobar :


 * 0
 * foo: bar
 * baz: quz
 * 1
 * foo: quz
 * baz: bar
 * 2
 * baz: bar
 * foo: bar

complexarrayslice
Cette fonction d'analyse peut extraire une tranche de tableau.

Explanation

 * new_key (obligatoire) &mdash; nom du tableau à créer
 * key (obligatoire) &mdash; nom du tableau à segmenter
 * offset (obligatoire) &mdash; Avec un décalage positif le nouveau tableau commencera à cet index dans le premier tableau. Si le décalage est négatif, il est compté à partir de la fin du premier tableau.
 * length (optionnel) &mdash; longueur du nouveau tableau.

Exemples
On dispose d'un tableau foobar :


 * 0
 * foo: bar
 * baz: quz
 * 1
 * baz: bar
 * foo: bar
 * 2
 * boo: bar
 * far: quz
 * 3
 * foo: quux
 * bar: bar

complexarraysearch
Cette fonction d'analyse sémantique recherche un mot clé dans un tableau et renvoie la clé correspondant à cette  valeur. Renvoie 0 si rien n'est trouvé.

Explications

 * key (obligatoire) &mdash; nom du tableau dans lequel se fera la recherche
 * keyword (obligatoire) &mdash; mot-clé à rechercher.

Examples
On dispose d'un tableau foobar :


 * 0
 * foo: bar
 * baz: quz
 * 1
 * baz: bar
 * foo: bar
 * 2
 * boo: bar
 * far: quz
 * 3
 * foo: quux
 * bar: bar

complexarraysearcharray
Cette fonction d'analyse syntaxique recherche un mot clé dans un tableau et  crée un nouveau tableau avec les clés en cas de correspondance. S'il n'y a pas de correspondance, elle renvoie 0.

Explanation

 * new_key (obligatoire) &mdash; nom du tableau à créer contenant toutes les clés
 * key (obligatoire) &mdash; nom du tableau dans lequel se fera la recherche
 * keyword (obligatoire) &mdash; mot clé à rechercher.

Examples
On dispose d'un tableau foobar :


 * 0
 * foo: bar
 * baz: quz
 * 1
 * baz: bar
 * foo: bar
 * 2
 * boo: bar
 * far: quz
 * 3
 * foo: quux
 * bar: bar

complexarrayunset
Cette fonction désactive la clé fournie.

Explanation

 * key (obligatoire) &mdash; clé à désactiver

Examples
On dispose d'un tableau foobar :


 * foo
 * bar
 * qux
 * baz

complexarrayaddvalue
Cette fonction d'analyse syntaxique ajoute une valeur ou un sous-tableau à un tableau existant, ou remplace un sous-tableau existant par cette valeur.

Explanation

 * key (obligatoire) &mdash; nom du sous-tableau à créer
 * value (obligatoire) &mdash; une valeur en texte simple ou un sous-tableau dans n'importe quel langage de balisage pris en charge.

Examples
On dispose d'un tableau foobar :


 * 0
 * foo: bar
 * baz: quz
 * 1
 * foo: quz
 * baz: bar
 * 2
 * baz: bar
 * foo: bar

complexarrayreset
Cette fonction d'analyse syntaxique réinitialise un ou tous les tableaux.

Explanation

 * key (optionnel) &mdash; nom du tableau à désactiver et si ce nom est à vide alors tous les tableaux seront désactivés.

complexarraysort
Cette fonction d'analyse syntaxique trie un tableau.

Explanation

 * key (obligatoire) &mdash; tableau à trier
 * options (optionnel) :
 * multisort &mdash;tri multisort du tableau
 * asort &mdash; tri asort du tableau
 * arsort &mdash; tri arsort du tableau
 * krsort &mdash; tri krsort du tableau
 * natcasesort &mdash; tri natcasesort du tableau
 * natsort &mdash; tri natsort du tableau
 * rsort &mdash; tri rsort du tableau
 * shuffle &mdash; mélange le tableau
 * keysort &mdash; trier un tableau à deux dimensions en fonction des valeurs d'une clé du deuxième tableau. Vous pouvez modifier l'ordre à descendant en ajoutant ,desc dans les options (donc keysort,desc).
 * sortingkey (optionnel, nécessaire quand keysort est utilisé) &mdash; clé pour trier le tableau quand keysort est utilisé.

Voir la documentation PHP pour les algorithmes de tri.

Examples
On dispose d'un tableau foobar :


 * 0
 * foo: bar
 * baz: quz
 * 1
 * foo: quz
 * baz: bar
 * 2
 * baz: bar
 * foo: bar

complexarrayunique
Cette fonction d'analyse supprime les clés et les valeurs dupliquées d'un tableau.

Explications

 * key (obligatoire) &mdash; nom du tableau.

complexarraypush
Cette fonction d'analyse rajoute une nouvelle valeur ou un sous-tableau à la fin d'un (sous-) tableau existant.

Explications

 * key (obligatoire) &mdash; nom du (sous-) tableau
 * value (obligatoire) &mdash; valeur en texte simple ou dans un des langages de balisage pris en charge.
 * noparse (optionnel) &mdash; arguments pour dire à l'analyseur ce qu'il faut rechercher dans subject (voir l'utilisation de l'analyseur).

Exemples
On dispose d'un tableau foobar :


 * 0
 * foo: bar
 * baz: quz
 * 1
 * foo: quz
 * baz: bar
 * 2
 * baz: bar
 * foo: bar

complexarrayextract
Cette fonction d'analyse crée un nouveau tableau à partir d'un sous-tableau.

Explication

 * new_key (obligatoire) &mdash; nom du tableau à créer
 * subarray (obligatoire) &mdash; sous-tableau à extraire.

Exemples
On dispose d'un tableau foobar :


 * 0
 * foo: bar
 * baz: quz
 * 1
 * baz: bar
 * foo: bar

complexarraymerge
Cette fonction d'analyse crée un nouveau tableau en fusionnant deux ou plusieurs tableaux.

Explication

 * new_key (obligatoire) &mdash; nom du tableau à créer
 * key1 (obligatoire) &mdash; nom du premier tableau
 * key2 (obligatoire) &mdash; nom du deuxième tableau
 * keyn (optionnel) &mdash; nom du nième tableau
 * options
 * recursive &mdash; fusion récursive
 * recursive &mdash; fusion récursive

Exemples
On dispose d'un tableau foobar :


 * 0
 * foo: bar
 * baz: quz
 * 1
 * baz: bar
 * foo: bar

et un tableau boofar :


 * 0
 * boo: bar
 * far: quz
 * 1
 * foo: quux
 * bar: bar

complexarraydiff
Cette fonction d'analyse calcule la différence entre deux ou plusieurs tableaux et range le résultat dans un nouveau tableau. Il encode la fonction PHP  pour la protéger.

Explications

 * new_key (obligatoire) &mdash; nom du tableau à créer
 * key1 (obligatoire) &mdash; nom du premier tableau
 * key2 (obligatoire) &mdash; nom du deuxième tableau
 * keyn (optionnel) &mdash; nom du nième tableau
 * keyn (optionnel) &mdash; nom du nième tableau

complexarraypusharray
Cette fonction d'analyse crée un nouveau tableau en ajoutant un ou plusieurs tableaux à la fin d'un premier tableau.

Explications

 * new_key (obligatoire) &mdash; nom du tableau à créer
 * key1 (obligatoire) &mdash; nom du premier tableau
 * key2 (obligatoire) &mdash; nom du deuxième tableau
 * keyn (optionnel) &mdash; nom du nième tableau
 * keyn (optionnel) &mdash; nom du nième tableau

Exemples
On dispose d'un tableau foobar :


 * 0
 * foo: bar
 * baz: quz
 * 1
 * baz: bar
 * foo: bar

et un tableau boofar :


 * 0
 * boo: bar
 * far: quz
 * 1
 * foo: quux
 * bar: bar

complexarraymap
Cette fonction d'analyseur fait une itération sur un tableau et associe chaque valeurs à une clé.

Explication

 * key (obligatoire) &mdash; nom du tableau à analyser pour extraire les clés
 * mapping_key (obligatoire) &mdash; mot clé à remplacer dans le sujet
 * subject (obligatoire) &mdash; chaîne sur laquelle se fera l'analyse des correspondances
 * delimiter (optionnel) &mdash; délimiteur ajouté à chaque ligne sauf la dernière
 * show (optionnel) &mdash; initialiser à  pour afficher la clé de correspondance lorsqu'aucune valeur de chaîne n'existe pour cette clé.

Exemples
On dispose d'un tableau foobar :


 * 0
 * bar
 * quz
 * 1
 * bar
 * bar
 * 2
 * bar
 * quz
 * 3
 * quux

complexarraymaptemplate
Cette fonction d'analyse associe le contenu d'un tableau dans un modèle.

Explication

 * key (obligatoire) &mdash; nom du tableau à analyser
 * template (obligatoire) &mdash; nom du modèle a associer au tableau

Exemples
Nous avons respectivement un tableau appelé foobar, un tableau appelé boofar et un tableau appelé bazbar :

foobar:
 * 0
 * foo: bar
 * baz: quz
 * 1
 * baz: bar
 * foo: bar
 * 2
 * foo: quz
 * baz: bar
 * bar
 * bex
 * box

boofar:
 * foobar
 * bazbar
 * boofar

bazbar:
 * foo: bar
 * boo: far

Anonymous
Ces fonctions utilisent des tableaux anonymes. La fonction gère à la fois la définition et la sortie du tableau. Vous n'avez pas besoin de définir un tableau à l'avance.

complexarrayarraymap
Cette fonction d'analyse est très similaire à complexarraymap, mais l'entrée et la sortie sont gérées dans la même fonction (ce qui la rend anonyme).

Explication

 * value (obligatoire) &mdash; valeur à segmenter
 * delimiter (obligatoire) &mdash; délimiteur à utiliser pour la segmentation
 * variable (obligatoire) &mdash; chaîne à remplacer dans formula
 * formula (obligatoire) &mdash; chaîne où variable est à remplacer
 * new_delimiter (obligatoire) &mdash; délimiteur entre les résultats.

complexarrayparent
Cette fonction renvoie la clé du parent de la clé donnée.

Explication

 * key (obligatoire) &mdash; clé à partir de laquelle la clé parent doit être renvoyée

Exemples


Opérateur Wairudokado
L'opérateur Wairudokado (en japonais: ワイルドカード, prononcé Wairudokādo, signifiant joker; en hommage à l'opérateur de résolution de vue de PHP) est un opérateur puissant qui donne aux utilisateurs la possibilité d'utiliser les jokers pour manipuler ou imprimer les sous-tableaux.

Exemple
Cet opérateur peut être utilisé sur chaque fonction d'analyseur qui prend en charge les sous-tableaux (comme ). Supposons que nous disposions du tableau foobar :


 * 0
 * name: Foo
 * 1
 * name: Bar
 * 2
 * name: Baz
 * 3
 * name: Bex

Et nous voulions imprimer chaque valeur de name. Nous pouvons utiliser un pour faire une itération sur l'ensemble et imprimer chaque valeur séparément, mais nous pouvons également utiliser un opérateur Wairudokado dans la fonction #complexarrayprint.

Semantic MediaWiki
Cette extension présente un nouveau format pour afficher les résultats Semantic MediaWiki. Pour le nouveau format, utiliser. Parce que l'impression du résultat définit un nouveau complexarray, vous devez fournir un nom pour ce tableau en utilisant ; si   est laissé vide, l'impression du résultat imprimera le tableau en tant que WSON.



Variables sémantiques
Une liste de variables sémantiques est incluse dans complexarray lorsque vous demandez une liste de pages. Les variables suivantes sont incluses :


 * catitle: titre de la page
 * cafullurl: URL complète de la page
 * canamespace: espace de noms dans lequel la page existe
 * caexists: indique si la page existe ou non (0/1)
 * cadisplaytitle: displaytitle de la page



Paramètres supplémentaires
WSArrays définit deux nouveaux paramètres :


 * name: nom du tableau à créer
 * simple: option pour masquer les variables sémantiques des résultats des pages ainsi que pour cacher les préfixes mailto: sur les résultats des courriels (valeurs : yes / no, par défaut : yes)



Voir les tableaux complexes comme des tables
Si Semantic MediaWiki génère une table lorsque le format est, vous devez d'abord vérifier si vous avez initialisé   à. Si c'est le cas et que cela ne fonctionne toujours pas, WSArrays n'a peut-être pas pu créer un lien symbolique du dossier SemanticMediaWiki au dossier WSArrays. Ce lien peut être créé manuellement en copiant le fichier  du dossier racine de l'extension vers.



Ecrire des extensions
Alors que WSArrays fournit de nombreuses fonctions pour manipuler et afficher des tableaux, parfois elles ne suffisent pas. Pour cette raison, nous fournissons une interface pour étendre facilement la fonctionnalité des WSArrays avec de nouvelles fonctions d'analyse.

Les extensions sont rangées dans le dossier extensions/. Chaque extension est implémentée comme une classe dérivée de. Le nom du fichier dans lequel cette classe sera trouvée doit être le même que le nom de la classe elle-même (sensible à la casse). Par exemple pour la classe  on aura. La classe doit implémenter au moins les méthodes suivantes :



Renvoyer le résultat
est exécuté par l'accroche de l'analyseur. Vous pouvez lire ici comment écrire des fonctions d'analyseur. La documentation ci-dessous est spécifique à WSArrays.



Gérer les tableaux
Tous les tableaux de WSArrays doivent être stockés en tant qu'objet ComplexArray. Si vous voulez manipuler un tableau existant, vous devez convertir l'objet ComplexArray en array, manipuler le tableau, puis le convertir à nouveau en objet ComplexArray.

ou en utilisant  :



Enregistrer l'extension
Pour activer l'extension, vous devez ajouter le nom de l'extension et les alias dans.

Ajoutez ceci à  :



Usage de l'analyseur
WSArrays utilise l'analyseur de différentes manières. Pour utiliser WSArrays au maximum, il est important de le savoir. Ceci ne s'applique qu'aux fonctions d'analyse suivantes :


 * 
 * 
 * 



Comment WSArrays utilise l'analyseur
WSArrays gère l'analyseur en utilisant SFH_OBJECT_ARGS. De cette façon, les arguments de l'analyseur sont passés comme des objets PPNode au lieu de texte simple. Cela permet l'expansion conditionnelle de l'arbre d'analyse (voir doc.wikimedia.org pour plus d'informations). En utilisant SFH_OBJECT_ARGS nous pouvons dire à l'analyseur de ne pas traiter les éléments et de renvoyer le texte brut fourni par l'utilisateur, que nous pouvons ensuite analyser dans WSArrays.



Comment contrôler l'utilisation
Différentes personnes ont des besoins différents, c'est pourquoi nous vous permettons de contrôler l'utilisation de l'analyseur. Une fois de plus, cette documentation ne s'applique qu'aux fonctions d'analyseur listées ci-dessus.

Par défaut, toutes les entrées sont automatiquement analysées par l'analyseur syntaxique avant d'être transférées à WSArrays (sauf pour 'map' dans et ). Cela vous permet d'utiliser les paramètres du modèle ainsi que les mots magiques et les modèles lors de la manipulation ou la définition des tableaux. Mais ce n'est pas toujours ce que vous voulez. Par exemple, quand vous voulez utiliser un modèle très complexe à l'intérieur d'un tableau, et que vous ne voulez pas tout casser lorsque vous utilisez dessus, vous pouvez dire à WSArrays de ne pas analyser l'entrée. Si vous imprimez ensuite le tableau, le modèle est imprimé comme s'il était inclus entre des balises nowiki.



Qu'adviendra-t-il si on souhaite faire l'analyse syntaxique du modèle ultérieurement ?
Ne pas analyser entièrement le modèle est probablement ce que vous ne voulez pas. WSArrays indique à l'analyseur de traiter l'élément quand c'est nécessaire, par exemple lorsqu'il est utilisé sur une carte ou lorsqu'on l'imprime comme une valeur.

Arguments
Vous pouvez inclure les arguments suivants en tant que liste séparée par des virgules dans le paramètre noparse de toute fonction applicable.



Utiliser WSArrays dans d'autres extensions
WSArrays fournit une interface pour utiliser, manipuler et créer facilement des tableaux à partir de toute extension du wiki.

Initialisation
Pour utiliser l'interface, inclure ainsi la classe  dans votre extension :



Obtenir le contenu d'un tableau
Le contenu du tableau foobar peut être obtenu ainsi :

<span id="Getting_the_contents_of_a_subarray">

Obtenir le contenu d'un sous-tableau
Le contenu de foobar[Foo][Bar] peut être obtenu ainsi :

<span id="Changing_the_contents_of_an_array">

Modifier le contenu d'un tableau
Le contenu de l'ensemble foobar peut être modifié ainsi :

Le contenu d'une valeur spécifique ou d'un sous-ensemble peut également être modifié ainsi :

<span id="Unsetting_an_array">

Désactiver un tableau
Un tableau peut être désactivé ainsi :

Configuration
WSArrays possède quelques paramètres de configuration.


 * option pour sauter le contrôle de version et de forcer l'initialisation de WSArrays, accepte un booléen (valeur par défaut : ). Ceci peut bloquer votre wiki.
 * option pour sauter le contrôle de version et de forcer l'initialisation de WSArrays, accepte un booléen (valeur par défaut : ). Ceci peut bloquer votre wiki.


 * Option pour activer l'imprimante des résultats Semantic MediaWiki, accepte un booléen (valeur par défaut: ). En initialisant ceci à true, si vous n'avez pas correctement installé l'imprimante de résultat (voir ) votre wiki ne fonctionnera pas.
 * Option pour activer l'imprimante des résultats Semantic MediaWiki, accepte un booléen (valeur par défaut: ). En initialisant ceci à true, si vous n'avez pas correctement installé l'imprimante de résultat (voir ) votre wiki ne fonctionnera pas.

<span id="See_also">

Voir aussi

 * Extension Arrays - permet de travailler avec des tableaux simples.