« Utilisateur:MORGANA/Essais » : différence entre les versions
m →Le switch : ça marche |
→Modification des modèles utilisés : nowinter |
||
Ligne 193 : | Ligne 193 : | ||
{ {#for| { {#setvar|i|5}} || { {#var|i}} | > | 2 }} || { {#var | i | -- }}|| { {#var|i}}, " } } donne : {{#for| {{#setvar|i|5}} || {{#op | {{#var|i}} | > | 2 }} || {{#var | i | -- }} || {{#var|i}}, " }} | { {#for| { {#setvar|i|5}} || { {#var|i}} | > | 2 }} || { {#var | i | -- }}|| { {#var|i}}, " } } donne : {{#for| {{#setvar|i|5}} || {{#op | {{#var|i}} | > | 2 }} || {{#var | i | -- }} || {{#var|i}}, " }} | ||
Le nowinter marche | Le nowinter marche. Curieusement, alors que la doc. indique que le bloc encadré est converti en commentaire HTML, l'essai montre que le résultat est comparable à un nowiki, le bloc est affiché sans être évalué. |
Version du 24 juillet 2009 à 12:41
Il s'agit là d'une sous-page d'utilisateur.
Essais divers
Le switch
Pour remplacer l’empilement de if
{{Utilisateur:MORGANA/Mod|paramètreNum=2|paramètreCha=un}} donne
CONCUSION
- la deuxième syntaxe
- { { #switch: {{{paramètreNum}}} | 1 = c'était un | 2 = c'était deux | c'était n'importe quoi}} fonctionne correctement.
- La première
- { { #switch | <{{{paramètreNum}}}> | <1> = <c'était un> | <2> = <c'était deux> | <c'était n'importe quoi>}} ne marche pas.
Voyons les if
Les If
Avec un en paramètre
{{Utilisateur:MORGANA/Mod2 |paramètreCha=un }} donne
Avec deux en paramètre
{{Utilisateur:MORGANA/Mod2 |paramètreCha=deux }} donne
Avec trois en paramètre
{{Utilisateur:MORGANA/Mod2|paramètreCha=trois}} donne
Avec 1 en paramètre
{{Utilisateur:MORGANA/Mod2 |paramètreNum=1 }} donne
Avec 2 en paramètre
{{Utilisateur:MORGANA/Mod2 |paramètreNum=2 }} donne
Avec 3 en paramètre
{{Utilisateur:MORGANA/Mod2 |paramètreNum=3 }} donne
Les If en fonction de la page appellante
Si on réussit à ne pas affecter de catégorie au modèle, les catégories des clauses alors et sinon sont toutes les deux affectées à l'appelante si winterprewiki est employé seul. Aucune n'est affectée si winterprewiki est employé avec noinclude.
- Nouvelle stratégie
- le if est dans l'appelante qui, suivant le cas appelle le modèle correspondant à la catégorie désirée.
- Bof ! Même motif, même punition... Les deux catégories sont systématiquement affectées.
- Encore une autre stratégie
- passage de la catégorie par paramètre dans le modèle (cf. WIKI)
- Re bof ! Même motif, même punition... Les deux catégories sont systématiquement affectées. Il faudrait, peut-être, utiliser la syntaxe indiquée, soit { {#if: | | | }}. Pour cela il va falloir, sans doute, enlever Winter avec des effets qu'il faudra étudier...
Dans l'immédiat il faut se contenter de placer les bonnes catégories "à la main" !
- Voyons avec les Parser Functions
Alléluia ! Ça marche !
Les boucles
{{#setvar|i|48}} i = {{#var|i}}
{ {#repeat | 3 || "voir "}}</nowiki> donne : {{#repeat | 3 || "voir "}}
{ {#setvar|i|3}} { {#while|{{#var | i | --}}||"voir "}} donne : {{#setvar|i|3}} {{#while|{{#var | i | --}}||"voir "}}
{ {#setvar|i|2}} { {#op | { {#var|i}} | > | 2 }} donne : {{#setvar|i|2}} {{#op | {{#var|i}} | > | 2 }}
{ {#for| { {#setvar|i|5}} || { {#var|i}} | > | 2 }} || { {#var | i | -- }}|| { {#var|i}}, " }} donne : {{#for| {{#setvar|i|5}} || {{#op | {{#var|i}} | > | 2 }} || {{#var | i | -- }} || {{#var|i}}, " }}
Les guillemets français
Les guillemets anglo-saxons (") sont identiques en début et en fin de mot, ils sont accolés au mot (pas d'espace) : "To be or not to be, that is the question"
Les guillemets français sont différents suivant qu'ils sont placés en début, guillemet ouvrant («), ou en fin, guillemet fermant (»), de mot. Dans les deux cas ils sont séparés du mot par une espace insécable, pour éviter un renvoi à la ligne automatique : « Heureux qui comme Ulysse a fait un beau voyage »
Le modèle insère le groupe espace insécable, guillemet fermant si le paramètre est <f>. Il insère l'ensemble guillemet ouvrant et espace insécable, si le paramètre n'est pas <f> ou est omis.
Exemple :
{{"}}Ou comme cestuy-là qui conquit la toison{{"|f}} donne :
{{#ifeq | | f | »| « }}Ou comme cestuy-là qui conquit la toison
{{#ifeq | f | f | »| « }}
Les opérateurs booléens et les if
initialisation des variables i et j :
{ {#var | i | = | un}}, { {#var | j | = | deux}} donne {{#var | i | = | un}} {{#var | j | = | deux}}
i = { {#var | i}} ; j = { {#var | j}} donne i = {{#var | i}} ; j = {{#var | j}}
le différend de:
{ {#op | { {#var|j}} != un}} donne {{#op | {{#var|j}} != un}}
le "et" vrai
{ {#op | { {#op | { {#var|i}} == un}} and { {#op | { {#var|j}} == deux}}}} donne {{#op | {{#op | {{#var|i}} == un}} and {{#op | {{#var|j}} == deux}}}}
le "et" faux
{ {#op | { {#op | { {#var|i}} == un}} and { {#op | { {#var|j}} == un}}}} donne {{#op | {{#op | {{#var|i}} == un}} and {{#op | {{#var|j}} == un}}}}
le if si le "et" est vrai :
{ {#if | { {#op | { {#op | { {#var|i}} == un}} and { {#op | { {#var|j}} == deux}}}} || vrai || faux}} donne {{#if | {{#op | {{#op | {{#var|i}} == un}} and {{#op | {{#var|j}} == deux}}}} || vrai || faux}}
le if si le "et" est faux :
{ {#if | { {#op | { {#op | { {#var|i}} == un}} and { {#op | { {#var|j}} == un}}}} || vrai || faux}} donne {{#if | {{#op | {{#op | {{#var|i}} == un}} and {{#op | {{#var|j}} == un}}}} || vrai || faux}}
Essais en cours
ben si on voit les balises, c'est fichu !
Modification des modèles utilisés
Essai 1 catégorie conditionnelle
Essai 2 catégorie conditionnelle
le modèle appelé par le if sur page
Utilisateur:MORGANA/Mod4
Utilisateur:MORGANA/ModCat1
Utilisateur:MORGANA/ModCat2
Utilisateur:MORGANA/ModCat0
Utilisateur:MORGANA/ModChoix2
{{#setvar|i|48}} i = {{#var|i}}
bon on se colle un nowinter : <nowinter> {{#repeat | 3 || "voir "}} </nowinter>et fin du nowinter
donne {{#repeat | 3 || "voir "}}
Le reste devrait continuer à fonctionner { {#setvar|i|3} } { {#while|{{#var | i | --}}||"voir "} } donne : {{#setvar|i|3}} {{#while|{{#var | i | --}}||"voir "}}
{ {#setvar|i|2} } { {#op | { {#var|i}} | > | 2 } } donne : {{#setvar|i|2}} {{#op | {{#var|i}} | > | 2 }}
{ {#for| { {#setvar|i|5}} || { {#var|i}} | > | 2 }} || { {#var | i | -- }}|| { {#var|i}}, " } } donne : {{#for| {{#setvar|i|5}} || {{#op | {{#var|i}} | > | 2 }} || {{#var | i | -- }} || {{#var|i}}, " }}
Le nowinter marche. Curieusement, alors que la doc. indique que le bloc encadré est converti en commentaire HTML, l'essai montre que le résultat est comparable à un nowiki, le bloc est affiché sans être évalué.