Extension: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.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 |
|
|
Téléchargements trimestriels | 164 (Ranked 64th) |
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 |
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.
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 obtenir les meilleurs résultats.
#var_final
parser function is shown as deprecated in MediaWiki 1.35 or above, due to changes in the parser. However, it will continue to work in this versions. See tâche T276627 and tâche T236809 for further information.
Affectation d'une valeur à une variable
#vardefine
{{#vardefine:nomdevariable|valeurspecifie}}
Attribue la valeur "specified value" à la variable (déjà existante ou introduite) "variablename".
- Example:
{{#vardefine:iconwidth|25}}
makingiconwidth = 25
#vardefineecho
{{#vardefineecho:nomdevariable|valeurspecifie}}
Fonctionne exactement comme #vardefine
, mais la valeur affectée est imprimée.
- Exemple: making
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î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
Fonction expérimentale introduite dans les variables versions 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 a parcouru l'intégralité du balisage wiki, donc cette fonction ne peut pas être utilisée dans d'autres fonctions, en attendant la bonne valeur est 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 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 #expr
doit également être installée pour utiliser ParserFunctions .
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/
. - 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
- Permet de désactiver le cadre d'analyse marqué comme volatile par l'extension, c'est-à-dire de désactiver la mise en cache de 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é
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), nous vous proposons quelques solutions alternatives :[1][2][3][4]
- Si vous utilisez des 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. Cela fonctionnera jusqu'à ce que vous atteigniez la expansion depth limit. This will work until you reach the expansion depth limit, which can be increased if necessary.
- Si vous utilisez des Variables pour effectuer des opérations de modèle plus complexes que possible avec des Extension: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.
- 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.
- If you require variables just for autonumbering, you could look into 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 paquets et / ou les fermes de wikis suivants : Cette liste ne fait pas autorité. Certaine fermes de wikis ou d'hébergeurs peuvent contenir ce extension même s'ils ne figurent pas ici. Vérifiez toujours cela dans votre environement avant de confirmer. |