Extension:Variables
Variables État de la version : stable |
|
---|---|
Implémentation | Fonction d'analyseur |
Description | Introduit des fonctions de parser pour traiter des variables valables locales à la page courante. |
Auteur(s) |
|
Maintenance | MGChecker |
Dernière version | 2.5.2 (2019-07-11) |
MediaWiki | 1.29+ |
PHP | 5.5+ |
Modifications de la base de données |
Non |
Licence | Licence ISC |
Téléchargement | README RELEASE-NOTES |
|
|
Traduire l’extension Variables sur translatewiki.net | |
Rôle Vagrant | variables |
Problèmes | Tâches ouvertes · Signaler un bogue |
L'extension Variables vous permet de définir une variable sur une page, de l'utiliser ensuite dans cette même page ou dans des modèles inclus dans la page, de changer sa valeur, notamment en utilisant son ancienne valeur, etc.
It is much like a template, only very lightweight and scoped to only a single page, so you can use many variables on a page without slowing down the wiki with huge numbers of templates. Combine this extension with the ParserFunctions extension for best results.
Assigning a value to a variable
#vardefine
{{#vardefine:variablename|specifiedvalue}}
Assigns the value specifiedvalue to the (already existing or hereby introduced) variable variablename.
- Example:
{{#vardefine:iconwidth|25}}
making iconwidth = 25
#vardefineecho
{{#vardefineecho:variablename|specifiedvalue}}
Works exactly as #vardefine
, but the affected value is printed.
- Exemple: making iconwidth = <code>{{#vardefineecho:iconwidth|25}}</code>
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înevide, sans générer de message d'erreur.
Il est possible de définir une valeur pour 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 cours et mieux organisé.Toutefois, avant la version 2.0, la valeur par défault vaé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 des 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ètres 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é(e)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
Experimental new function introduced in Variables 2.0. This function will output the final, last value a variable has at the end of the page rendering. Naturally, the value will be inserted after the parser went over the entire wiki markup, so this function can't be used in other functions, expecting the right value is being used. Example:
{{#var_final:variablename | defaultvalue}}
The default value will be used if the variable doesn't exist at the final page rendering stage or if its value is an empty string. The default will be expanded right where the function is used, so the parameter will be expanded, even if it won't be needed.
Exemples
The ParserFunctions extension must also be installed to use #expr.
Compute x = 2*a + b
:
{{#vardefine:x|{{#expr:2*{{#var:a}}+{{#var:b}}}}}}
Add one to n:
{{#vardefine:n|{{#expr:{{#var:n}}+1}}}}
Installation
- Téléchargez et placez le(s) fichiers (s) dans un répertoire appelé
Variables
dans votre dossierextensions/
. - Ajoutez le code suivant à la fin de votre fichier LocalSettings.php :
wfLoadExtension( 'Variables' );
- Configure as required
Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.
Pour les utilisateurs de MediaWiki 1.30 ou précédents :
Les instructions ci-dessus décrivent la nouvelle procédure pour installer cette extension en utilisant wfLoadExtension()
.
Si vous avez besoin d'installer cette extension sur les précédentes versions de MediaWiki (1.30 ou antérieur), à la place de wfLoadExtension( 'Variables' );
, vous devez utiliser :
require_once "$IP/extensions/Variables/Variables.php";
Configuration
Cette extension propose deux paramètres de configuration.
$egVariablesAreVolatile
- Allows to disable the parser frame being marked as volatile by the extension, i.e. disable template caching.
- Default:
true;
$egVariablesDisabledFunctions
- Allows to disable specified parser functions provided by this extension.
- Valeur par défaut:
[];
- Exemple :
[ 'var_final', 'vardefineecho' ];
Compatibilité
Les versions recommandées de l'extension Variables est listée ci-dessous pour chaque version récente 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.
1.19 | 1.20 | 1.21 | 1.22 | 1.23 | 1.24 | 1.25 | 1.26 | 1.27 | 1.28 | 1.29 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 | master | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2.x | 2.1.x | 2.2.x | 2.5.x, master |
Autres solutions
Puisque cette extension n'est pas autorisée dans les wikis opérés par la Wikimedia Foundation (WMF)[1][2][3][4], nous vous proposons quelques solutions alternatives :
- If you use Variables as cache for expensive operations, you can transform the section where you need them into a template and pass the required information as template parameters instead. This will work until you reach the expansion depth limit.
- Si vous utilisez des Variables pour effectuer des opérations de modèle plus complexes que possible avec des ParserFunctions simples, vous pouvez utiliser la fonctionnalité Lua de Scribunto. 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.
- Don't use variables, instead duplicate the information you need as a variable. If that information is acquired by an expensive template call, performance may suffer. This will work until you reach the node count limit.
Voir aussi
- Extension:PhpTags
- Extension:MyVariables - Creates new variables in the MediaWiki sense
- Extension:Loops - Provides parser functions for performing loops
- Extension:Arrays - Create an array and provide array functions (such as search, split, and sort) and set operations (such as intersect, union and diff)
- Extension:HashTables - New parser functions for handling hash tables in MediaWiki
References
- ↑ 1.0 1.1 phab:T9865
- ↑ 2.0 2.1 phab:T65324
- ↑ 3.0 3.1 phab:T113859
- ↑ 4.0 4.1 phab:T151192