Extension:Variables

This page is a translated version of the page Extension:Variables and the translation is 100% complete.
Manuel des extensions MediaWiki
Variables
État de la version : stable
Implémentation Fonction d'analyseur
Description Introduit des fonctions d'analyse pour traiter des variables locales valables pour la page courante.
Auteur(s)
Maintenance MGChecker
Dernière version 2.5.1 (2019-07-11)
MediaWiki 1.29+
PHP 5.5+
Modifie la base
de données
Non
Composer mediawiki/variables
Licence Licence ISC
Téléchargement
README
RELEASE-NOTES
  • $wgVariablesAreVolatile
  • $wgVariablesDisabledFunctions
Téléchargements trimestriels 105 (Ranked 59th)
Utilisé par les wikis publics 1,808 (Ranked 201st)
Traduire l’extension Variables sur translatewiki.net si elle y est disponible
Rôle Vagrant variables
Problèmes Tâches ouvertes · Signaler un bogue
Avertissement Avertissement : Cette extension n'est pas compatible avec les plans de parallélisation de l'analyse syntaxique, comme prévu par l'utilisation de Parsoid . Par conséquent, l'avenir de cette extension est incertain et il est probable qu'elle deviendra incompatible avec l'analyseur standard MediaWiki dans quelques années. Pour d'autres informations, voir tâche T250963 et Parsoid/Extension API § No support for sequential, in-order processing of extension tags .
Pour éviter l'avertissement d'obsolencence concernant l'accroche InternalParseBeforeSanitize pour MediaWiki 1.35 - MediaWiki 1.38 , ou la fonction #var_final absente de MediaWiki 1.39 +, veuillez mettre à jour la dernière version (branche master actuellement). Voir tâche T276627 et tâche T250963 pour plus d'informations.

L'extension Variables vous permet de définir une variable sur une page, de l'utiliser ensuite dans cette même page ou dans les modèles inclus dans la page, de changer sa valeur, notamment en fonction de son ancienne valeur, etc.

C'est un peu comme un modèle, très léger et étendu à une seule page, donc vous pouvez utiliser beaucoup de variables sur une page sans ralentir le wiki avec un grand nombre de modèles. Combinez cette extension avec l'extension ParserFunctions pour de meilleurs résultats.

Cette extension ne sera pas activée pour les wikis gérés par la Fondation Wikimedia (WMF).[1][2][3][4] Voir les alternatives.

Affectation d'une valeur à une variable

#vardefine

  • {{#vardefine:nomdevariable | valeurspécifiée }}

Attribue la valeur specifiedvalue à la variable (déjà existante ou introduite ici) variablename.

  • Exemple: {{#vardefine:iconwidth|25}} pour iconwidth = 25

#vardefineecho

  • {{#vardefineecho:nomdevariable | valeurspecifiée }}

Fonctionne exactement comme #vardefine, mais la valeur affectée est imprimée.

  • Exemple : forcer iconwidth = {{#vardefineecho:iconwidth|25}}

Récupérer la valeur d'une variable

#var

La valeur de la variable variablename est obtenue par

  • {{#var:variablename}}

Si cette variable n'est pas définie, ceci renvoie une chaîne vide, sans générer de message d'erreur.

Il est possible d'obtebir une valeur par défaut dans le cas où la variable est vide ou non définie :

  • {{#var:variablename | valeurpardéfaut }}

Ceci est équivalent à :

  • {{#if: {{#var:variablename }} | {{#var:variablename }} | valeurpardéfaut }}

mais c'est bien plus court et mieux organisé. Toutefois, avant la version 2.0, la valeur par défault était toujours développée. Depuis la version 2.0, la valeur par défaut n'est développée que si elle est effectivement utilisée.

La valeur peut être utilisée dans les fonctions du parser, etc.

#varexists

  • {{#varexists:variablename }} renvoie 1 si la variable est déjà définie. Si la variable n'est pas définie, renvoie la valeur void.

Accepte un second et un troisième paramètre pour remplacer ces valeurs.

  • {{#varexists:variablename | valeur-si | valeur-sinon }}

Ce qui équivaut à :

  • {{#if: {{#varexists: variablename }} | valeur-si | valeur-sinon }}

mais c'est tellement plus court et mieux structuré. Toutefois, avant la version 2.5, les deux étaient systématiquement développés. A partir de la version 2.5, les valeurs SI (if) et SINON (else) ne sont développées que lorsqu'elles sont effectivement utilisées.

#var_final

Fonction expérimentale introduite dans Variables version 2.0. Cette fonction affiche la dernière valeur d'une variable à la fin du rendu de page. Naturellement, la valeur sera insérée après que l'analyseur ait parcouru l'intégralité du balisage wiki, donc cette fonction ne peut pas être utilisée dans d'autres fonctions, en attendant que la bonne valeur soit utilisée. Exemple :

  • {{#var_final:nomdevariable | valeurpardéfaut }}

La valeur default sera utilisée si la variable n'existe pas à l'étape finale du rendu de la page ou si sa valeur est une chaîne vide. La valeur par défaut sera développée à l'endroit où la fonction est utilisée, de sorte que le paramètre sera développé, même si cela n'est pas nécessaire.

Exemples

L'extension ParserFunctions doit également être installée pour utiliser #expr.

Calculer x = 2*a + b :

  • {{#vardefine:x|{{#expr:2*{{#var:a}}+{{#var:b}}}}}}

Ajouter un à n :

  • {{#vardefine:n|{{#expr:{{#var:n}}+1}}}}

Installation

  • Téléchargez et placez le(s) fichier(s) dans un répertoire appelé Variables dans votre dossier extensions/.
    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/Variables
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php  :
    wfLoadExtension( 'Variables' );
    
  • Configurer si nécessaire.
  •   Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.

Configuration

Cette extension propose deux paramètres de configuration.

$egVariablesAreVolatile
Permet de désactiver le cadre de l'analyseur marqué comme volatile par l'extension, c'est-à-dire de désactiver la mise en cache du modèle.
Par défaut : true;
$egVariablesDisabledFunctions
Permet de désactiver les fonctions d'analyse spécifiées fournies par cette extension.
Valeur par défaut : [];
Exemple : [ 'var_final', 'vardefineecho' ];

Compatibilité

La version recommandée de l'extension Variables est listée ci-dessous pour les versions récentes de MediaWiki. Il est possible que les versions plus anciennes des extensions fonctionnent également, mais elles n'ont pas été testées avec les versions plus récentes de MediaWiki.


Autres solutions

Puisque cette extension n'est pas autorisée sur les wikis exécutés par la Fondation Wikimedia (WMF), nous vous proposons quelques solutions alternatives :[1][2][3][4]

  • Si vous utilisez Variables comme cache pour des opérations coûteuses, vous pouvez transformer la section où vous en avez besoin en modèle et passer les informations requises en paramètres de modèle à la place. Ceci va fonctionner jusqu'à ce que vous atteigniez la profondeur maximale d'expansion, que vous pouvez augmenter si nécessaire.
  • Si vous utilisez Variables pour effectuer des opérations plus complexes sur les modèles que celles faisables avec de simples Extension:ParserFunctions , et si vous avez des droits suffisants sur le serveur, vous pouvez utiliser à la place la fonctionnalité Lua de Scribunto. Il est possible que vous ne puissiez pas installer Scribunto sur un hôte partagé. Notez que cela n’ajoute pas la prise en charge des Variables globales. Cependant, Extension:VariablesLua ajoute une interface Scribunto pour le magasin de Variables.
  • N'utilisez pas de variables, mais dupliquez les informations dont vous avez besoin en tant que variable. Si ces informations sont obtenues par un appel de modèle coûteux, les performances peuvent en pâtir. Cela fonctionnera jusqu'à ce que vous atteigniez la limite de nombre de noeuds.
  • Si vous avez besoin de variables simplement pour l'auto numérotation, voir Extension:NumerAlpha .

Voir aussi

Références