Extension:Variables
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 |
Licence | Licence ISC |
Téléchargement | README RELEASE-NOTES |
|
|
Téléchargements trimestriels | 85 (Ranked 63rd) |
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 |
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.
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}}
pouriconwidth = 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 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/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.
MediaWiki version | Variables version |
---|---|
1.19–1.22 | 2.1.x |
1.23–1.28 | 2.2.x |
1.29–1.34 | 2.5.x |
1.35–1.39 | 2.5.x (deprecated) |
1.40+ | unsupported (WIP) |
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
- Extension:PhpTags
- Extension:MyVariables – Crée de nouvelles variables au sens de MediaWiki
- Extension:Loops – Fournit des fonctions d'analyseur pour l'exécution de boucles
- Extension:Arrays – Créez un tableau et fournissez des fonctions de tableau (telles que la recherche, le fractionnement et le tri) et définissez des opérations (telles que l'intersection, l'union et le diff)
- Extension:HashTables – Nouvelles fonctions d'analyse pour la gestion des tables de hachage dans MediaWiki
Références
- ↑ 1.0 1.1 phab:T9865
- ↑ 2.0 2.1 phab:T65324
- ↑ 3.0 3.1 phab:T113859
- ↑ 4.0 4.1 phab:T151192
Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : Cette liste ne fait pas autorité. Certaines fermes de wikis ou hôtes et / ou paquets peuvent contenir cette extension même s'ils ne sont pas listés ici. Vérifiez toujours cela avec votre ferme de wikis ou votre hôte ou votre paquet avant de confirmer. |
- Stable extensions/fr
- Parser function extensions/fr
- ISC licensed extensions/fr
- Extensions in Wikimedia version control/fr
- ParserClearState extensions/fr
- ParserFirstCallInit extensions/fr
- All extensions/fr
- Extensions included in BlueSpice/fr
- Extensions included in Canasta/fr
- Extensions included in Fandom/fr
- Extensions included in Miraheze/fr
- Extensions included in Open CSP/fr
- Extensions included in ProWiki/fr
- Extensions included in semantic::core/fr
- Extensions included in Telepedia/fr
- Extensions included in wiki.gg/fr
- Extensions included in WikiForge/fr
- Modifiable variables extensions/fr