Aide:Modèle/FAQ
A la recherche d'informations sur Aide:Modèle/FAQ ? Vous êtes ici : recherche >> Encyclopédie » Aide:Modèle/FAQ
Cette foire aux questions sur les modèles concerne les modèles de la syntaxe de Wikipédia.
C'est un moyen d'insérer du texte ou du code wiki dans une page, de manière automatisée, dynamique et configurable :
Dans l'espace de noms « Modèle », autrement dit, le modèle appelé par {{Nom du modèle}} se trouve dans la page « Modèle: Nom du modèle ». Les modèles sont catégorisés dans l'arborescence Catégorie:Espace Modèle.
Un modèle d'insertion de texte s'appelle ainsi {{Nom du modèle}}. Les modèles plus compliqués peuvent prendre des paramètres {{Nom du modèle|argument|param=valeur}}. La page « Modèle: Nom du modèle » donne un mode d'emploi.
Les usages les plus courants sont :
Oui, comme pour les articles, l'ancien nom devient une redirection qui continue de fonctionner.
Il n'est pas possible d'utiliser un modèle défini sur un autre projet. Il faut créer un modèle sur la Wikipédia française et y recopier le code source du modèle d'origine.
Oui en préfixant de « subst: » le nom du modèle. Par exemple, {{subst:CURRENTDAY}} insère la valeur du jour courant au moment de la sauvegarde de la page (cette valeur ne varie plus ensuite). Au contraire, {{CURRENTDAY}} insère le jour courant au moment de la visualisation (cette valeur varie avec le temps).
Comme pour un article, mais le nom doit commencer par « Modèle: ».
Créer le modèle « Modèle: Nom du modèle » et y apposer le bandeau {{ébauche|modèle}} ; puis expliquer les besoins dans la page de discussion attenante ; enfin, signaler votre travail au projet modèle.
Voici une version minimale de modèle bien structuré :
<includeonly><!--
-->Texte du modèle pouvant utiliser les paramètres {{{1}}}, {{{2}}}, {{{param}}}.<!--
--></includeonly><noinclude>
{{Documentation modèle}}
Mode d'emploi.
[[Catégorie:Catégorie décrivant le type ou la forme du modèle]]
</noinclude>
Tout le monde, comme pour les articles. Les modèles sensibles peuvent être protégés ou semi-protégés pour éviter la casse (volontaire ou non). Mais, attention, il ne faut pas modifier un modèle qu'on ne comprend pas : une erreur peut se répercuter sur toutes les pages qui l'incluent !
Comme pour un article, il suffit de modifier la page « Modèle: Nom du modèle ». Mais attention, il ne faut pas modifier un modèle qu'on ne comprend pas : une erreur peut se répercuter sur toutes les pages qui l'incluent !
En codant systématiquement défaut pour le premier paramètre d'un modèle « Modèle », l'appel {{modèle}} devient équivalent à {{modèle|défaut}}. Cela marche aussi pour les paramètres nommés : préciser param|défaut dans le code du modèle permet d'appeler {{modèle}} au lieu de {{modèle|param=défaut}}.
Les fonctions d'évaluation conditionnelle #if, #ifeq, #ifexpr, #switch sont prévues pour ça.
{{#if:{{{param|}}}|code si param défini|code sinon}} teste si le paramètre a été précisé et est non vide.
Oui grâce à {{#expr:formule}}. La formule comprend les quatre opérateurs et les parenthèses, les comparaisons, l'arrondi, le modulo et les fonctions booléennes « not », « or », « and ». Les calculs sont faits avec des nombres à virgule flottante.
Oui, avec les fonctions du parseur. Cela nécessite un certain doigté, car les |-, | ou || du tableau sont interprétés comme des séparateurs des arguments de la fonction du parseur. Il faut donc les remplacer par {{!-}}, {{!}} et {{!!}}.
Exemple :
{|
! Titre 1 !! Titre 2
|-
| 1A !! 1B
{{#if:{{{ligne2|}}}|{{!-}}
{{!}} 2A {{!!}} 2B
}}
|}
Non, pas pour l'instant. Pour contourner ce problème, on définit un sous-modèle qu'on appelle n dans le modèle principal. Si n est une variable, on peut combiner avec #if ou #ifexpr pour s'assurer que seuls n appels au sous-modèles sont effectués. Voici un exemple, admettant que le paramètre n soit passé en paramètre du modèle :
<!-- boucle for :
-->{{#ifexpr:{{{n}}} > 0|{{sous-modèle}}}}<!--
-->{{#ifexpr:{{{n}}} > 1|{{sous-modèle}}}}<!--
-->{{#ifexpr:{{{n}}} > 2|{{sous-modèle}}}}<!--
-->{{#ifexpr:{{{n}}} > 3|{{sous-modèle}}}}<!--
-->{{#ifexpr:{{{n}}} > 4|{{sous-modèle}}}}<!--
-->{{#ifexpr:{{{n}}} > 5|{{sous-modèle}}}}<!--
etc. -->
Note : une extension de MediaWiki, mw:Extension:LoopFunctions, non installée sur Wikipédia, permet de le faire.
Non. On ne peut même pas tricher avec un cycle de modèles s'appelant les uns les autres.
La fonction parseur #ifexist permet de tester l'existence d'une page : {{#ifexist:page|existe|n'existe pas}}. Actuellement, il est impossible de tester d'autres conditions (ébauche, redirect, etc.).
Ajouter la documentation dans <noinclude>…</noinclude>. Donner un exemple, expliquer les différents paramètres s'il y a lieu et catégoriser le modèle dans des sous-catégories de Catégorie:Espace Modèle. Voir : Modèle/Comment documenter un modèle ?.
Soit directement dans la partie <noinclude>…</noinclude>, dans laquelle on appose en premier le bandeau {{Documentation modèle}} ; soit dans une sous-page si la documentation est longue. Dans ce cas on appose {{/Documentation}} en haut de la partie <noinclude>…</noinclude> et l'on rédige la documentation sur la sous-page Modèle: Nom du modèle/Documentation.
Il y a parfois des problèmes lorsque cet argument comprend lui-même des appels à des modèles. (Note : le rédacteur de cette FAQ n'a toujours pas bien compris pourquoi.) Un moyen de contourner ce bogue est d'utiliser : {{test|argument 1|2=argument 2}} dans le cas où c'est le second argument de position qui pose problème.
Exemple : problème rapporté pour {{référence nécessaire}}.
Il faut utiliser les modèles {{=}} et {{!}} pour transcrire ces caractères dans les paramètres des modèles.
Note : Les caractères = et | font partie de la syntaxe du modèle : le premier pour séparer les paramètres, le second pour indiquer un paramètre nommé ; MediaWiki n'a pas les moyens de savoir qu'on veut les utiliser pour autre chose.
Première solution : remplacer les | du tableau par {{!}}. Exemple :
{{Mon modèle|
{{(!}}
{{!+}} Légende
{{!-}}
{{!}} col. 1, l. 1 {{!!}} col. 2 l. 1
{{!-}}
{{!}} col. 1, l. 2 {{!!}} col. 2 l. 2
{{!)}}
}}</noinclude>
Deuxième solution : placer la table dans Modèle: Table et appeler {{modèle|{{table}}}}.
Troisième solution : dans certains cas on peut séparer le modèle en {{début modèle}} et {{fin modèle}} et insérer la table entre les deux. Exemple : {{boîte déroulante début}} et {{boîte déroulante fin}} au lieu de {{boîte déroulante}}.
Note : Le caractère | est interprété par MediaWiki comme un séparateur d'argument de modèle, même s'il se trouve à l'intérieur d'une table.
Il faut purger le cache de la page qui inclut le modèle. Le plus simple est d'ajouter ?action=purge à la fin de l'URL dans la barre d'adresse du navigateur.
Note : Le non rafraîchissement est un comportement normal prévu pour épargner les serveurs de la Fondation Wikimédia.
C'est un problème de cache qui ne concerne que les modèles « catégorisants », c'est-à-dire ajoutant une catégorie dans la page qui l'inclut.
Le problème est à deux niveaux :
Note : La seconde partie est un bogue de MediaWiki ; la première un cas particulier du non-rafraîchissement des pages qui incluent des modèles.
Vérifier que la documentation est dans une partie <noinclude>…</noinclude>. Les erreurs fréquentes sont une coquille dans le nom de la balise, l'oubli d'une balise ouvrante ou fermante, et l'ajout de texte supplémentaire au-delà d'un </noinclude>.
Vérifier que la catégorie ou le lien d'interlangue est dans une partie <noinclude>…</noinclude>. Les erreurs fréquentes sont une coquille dans le nom de la balise, l'oubli d'une balise ouvrante ou fermante, et l'ajout de texte supplémentaire au-delà d'un </noinclude>.
Vérifier le parenthésage dans le code du modèle. Une erreur fréquente est de confondre le triple parenthésage des paramètres (param, défaut) avec le double des modèles spéciaux ({{#if:…}}, {{NUMBEROFARTICLES}}).
Vérifier qu'il n'y a pas de sauts de ligne ou des espaces non voulus qui traînent dans le code du modèle. Des erreurs fréquentes sont : séparer les parties <includeonly>…</includeonly> et <noinclude>…</noinclude> par des espaces ou un saut de ligne ; ajouter des sauts de ligne au tout début ou en toute fin de la page en dehors du <noinclude>…</noinclude>.
Pour pallier ce problème on peut, au choix :
Pour tester une valeur booléenne (c'est-à-dire « vrai » ou « faux »), il faut utiliser #ifexpr, car #if ne fait que tester si l'expression est non vide. Ainsi, {{#if:0|vrai|faux}} interprète « vrai » car la chaîne de caractères « 0 » est non vide.
La fonction parseur #expr ne gère pas l'arithmétique entière, tout est fait en nombres à virgule flottante. De fait, div est un synonyme de /. Pour effectuer une division entière, il faut recourir au modulo : {{#expr:(a - (a mod b))/ b}}.
C'est un bogue de MediaWiki (bogue n° 6181). Il n'y a pas d'autre solution pour l'instant que d'aller chercher le numéro de version d'une page dans le lien « Adresse de cette version » de la boîte à outils (c'est le nombre qui suit « oldid= ») puis de l'insérer à la main.
Il doit manquer une barre verticale (symbole : |) dans le code.
Il est tout à fait normal que la condition d'une structure {{ #if:{{{paramètre}}}| <alors texte1> | <sinon texte2> }} soit considérée, lorsque paramètre n'est pas défini, comme vraie et que <alors texte1> soit renvoyé. La raison en est simple : lorsque paramètre n'est pas défini, la chaîne {{{paramètre}}} n'est pas interprétée, et vaut donc {{{paramètre}}}, ce qui n'est ni une chaîne vide, ni une suite d'espaces. La condition est donc considérée comme vraie.
Il faut utiliser la syntaxe {{ #if:{{{paramètre|}}}| <alors texte1> | <sinon texte2> }} pour obtenir le résultat escompté.
Un modèle défini par {{{1}}}<ref>{{{2}}}}</ref> affichera systématiquement {{{2}}} en note, ce qui n'est pas exactement ce à quoi on s'attend. C'est la balise <ref> (ou autre) qui bloque l'interprétation du paramètre. Pour que le code fonctionne, il faut utiliser le modèle spécial {{#tag:}} : {{{1}}}{{#tag:ref| {{{2}}}} }}</ref>. Le second paramètre sera alors bien interprété.
Note : ce modèle crée de vraies notes de bas de page, et non des notes de bas de modèle.
Le contenu de cette page (Aide:Modèle/FAQ) est un minuscule extrait de l'encyclopiédie gratuite en ligne WIKIPEDIA
le webmaster de ce site n'est pas l'auteur de cet article (Aide:Modèle/FAQ). Vous pouvez retrouver l'original de cet article (Aide:Modèle/FAQ) à cette adresse et la liste des auteurs
ici
Vous pouvez modifier ou compléter cet article mais également discuter de son contenu (Aide:Modèle/FAQ) sur le site de WIKIPEDIA France - Contenu (Aide:Modèle/FAQ) disponible sous GNU Free Documentation License.