Parser function (MediaWiki) : Différence entre versions

De Wicri Manuel
imported>Jacques Ducloy
imported>Jacques Ducloy
m (18 révisions importées)
 
(15 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
Les '''''parser functions''''' constituent une extension de [[MediaWiki]] (<code>ParserFunctions</code>). Elles permettent principalement la génération conditionnelles de pages.
 
Les '''''parser functions''''' constituent une extension de [[MediaWiki]] (<code>ParserFunctions</code>). Elles permettent principalement la génération conditionnelles de pages.
  
Elles sont donc naturellement fortement utilisées dans les modèles mais peuvent s'avérer très utiles dans le cas du réseau Wicri.
+
==Exemple introductif==
  
Voir par exemple : [[Interopérabilité des catégories]].
+
Les ''parser functions'' se présentent comme des modèles avec des noms réservés comme « <code><nowiki>#expr:</nowiki></code> » ou « <code><nowiki>#if:</nowiki></code> ».
 +
 
 +
Plus précisément la fonction « <code><nowiki>#if:</nowiki></code> » obéit à la syntaxe suivante :
 +
:<tt><nowiki>{{#if:</nowiki> ''chaîne test'' | ''valeur retournée si la chaîne test n'est pas vide'' | ''valeur retournée sinon'' <nowiki>}}</nowiki></tt>
 +
 
 +
Dans un modèle, la chaîne à tester peut être matérialisée par la présence d'une option d'appel. Par exemple, le texte « <code><nowiki>{{{lien|}}}</nowiki></code> » est vide si l'option ''lien'' est absente dans la séquence d'appel. Pour rendre actif le lien sur une image en fonction de l'option lien, on pourra écrire :
 +
 
 +
:<code><nowiki>[[File:</nowiki>''monImage''<nowiki> {{#if: {{{lien|}}} |{{!}}link={{{lien}}} |}} ]]</nowiki></code>
 +
 
 +
Si l'option lien est présente avec comme valeur <code>''monLien''</code>, ce qui sera généré sera équivalent à :
 +
:<code><nowiki>[[File:</nowiki>''monImage''<nowiki>|link=</nowiki>''monLien''<nowiki>]]</nowiki></code>
 +
 
 +
Sinon ce qui est généré sera réduit à :
 +
 
 +
:<code><nowiki>[[File:</nowiki>''monImage''<nowiki>]]</nowiki></code>
 +
 
 +
Dans le commande, l'écriture <code><nowiki>{{!}}</nowiki></code> est un appel de modèle qui génère une barre verticale (ici celle qui introduit l'option link).
 +
 
 +
==Quelques fonctions utiles==
 +
===#ifeq===
 +
Cette fonction compare deux chaînes :
 +
:<tt><nowiki>{{#ifeq:</nowiki> ''chaîne 1'' <nowiki>|</nowiki> ''chaîne 2'' <nowiki>|</nowiki> ''valeur générée si égalité'' <nowiki>|</nowiki> ''valeur générée sinon'' <nowiki>}}</nowiki></tt>
 +
;Exemple d'emploi :
 +
Sur le wiki Wicri/Lorraine, dans le modèle [[wicri-lor.fr:Modèle:Header Histoire Univ. Lorraine|Header Histoire Univ. Lorraine]], on teste l'appartenance d'une page qu groupe « rééditions » pour mettre en valeur le lien.
 +
<source lang="html">
 +
      <span style="{{#ifeq: {{{groupe|}}}| rééditions |background-color:yellow;}}">
 +
      [[Prototype:Histoire de l'Université de Lorraine (rééditions numériques)|rééditions]]
 +
  </span>
 +
</source>
 +
 
 +
==Les parser functions dans le réseau Wicri==
 +
 
 +
Elles sont donc naturellement fortement utilisées dans les modèles. Pour le réseau Wicri elles s'avèrent également très utiles pour une génération conditionnelles de pages exportées sur tous les wikis, comme par exemple les catégories, voir : [[Interopérabilité des catégories]].
  
 
==Voir aussi==
 
==Voir aussi==
 
* [http://www.mediawiki.org/wiki/Help:Extension:ParserFunctions/fr manuel d'utilisation sur le site MediaWiki]
 
* [http://www.mediawiki.org/wiki/Help:Extension:ParserFunctions/fr manuel d'utilisation sur le site MediaWiki]

Version actuelle datée du 24 juin 2017 à 18:11

Les parser functions constituent une extension de MediaWiki (ParserFunctions). Elles permettent principalement la génération conditionnelles de pages.

Exemple introductif

Les parser functions se présentent comme des modèles avec des noms réservés comme « #expr: » ou « #if: ».

Plus précisément la fonction « #if: » obéit à la syntaxe suivante :

{{#if: chaîne test | valeur retournée si la chaîne test n'est pas vide | valeur retournée sinon }}

Dans un modèle, la chaîne à tester peut être matérialisée par la présence d'une option d'appel. Par exemple, le texte « {{{lien|}}} » est vide si l'option lien est absente dans la séquence d'appel. Pour rendre actif le lien sur une image en fonction de l'option lien, on pourra écrire :

[[File:monImage {{#if: {{{lien|}}} |{{!}}link={{{lien}}} |}} ]]

Si l'option lien est présente avec comme valeur monLien, ce qui sera généré sera équivalent à :

[[File:monImage|link=monLien]]

Sinon ce qui est généré sera réduit à :

[[File:monImage]]

Dans le commande, l'écriture {{!}} est un appel de modèle qui génère une barre verticale (ici celle qui introduit l'option link).

Quelques fonctions utiles

#ifeq

Cette fonction compare deux chaînes :

{{#ifeq: chaîne 1 | chaîne 2 | valeur générée si égalité | valeur générée sinon }}
Exemple d'emploi 

Sur le wiki Wicri/Lorraine, dans le modèle Header Histoire Univ. Lorraine, on teste l'appartenance d'une page qu groupe « rééditions » pour mettre en valeur le lien.

      <span style="{{#ifeq: {{{groupe|}}}| rééditions |background-color:yellow;}}">
      [[Prototype:Histoire de l'Université de Lorraine (rééditions numériques)|rééditions]]
   </span>

Les parser functions dans le réseau Wicri

Elles sont donc naturellement fortement utilisées dans les modèles. Pour le réseau Wicri elles s'avèrent également très utiles pour une génération conditionnelles de pages exportées sur tous les wikis, comme par exemple les catégories, voir : Interopérabilité des catégories.

Voir aussi