« Utilisateur:MORGANA/Essais » : différence entre les versions
Ligne 13 : | Ligne 13 : | ||
<br> {{Utilisateur:MORGANA/Mod|paramètreNum=2|paramètreCha=un}} | <br> {{Utilisateur:MORGANA/Mod|paramètreNum=2|paramètreCha=un}} | ||
'''CONCUSION''' le | '''CONCUSION''' la deuxième syntaxe ne fonctionne, semble-t-il, que si le paramètre est alphabétique ou je ne sais pas m'en servir. La première ne marche pas. | ||
Voyons les if | Voyons les if | ||
=== Les If === | === Les If === |
Version du 19 juillet 2009 à 14:24
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 ne fonctionne, semble-t-il, que si le paramètre est alphabétique ou je ne sais pas m'en servir. La première 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" !
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
{{#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 et n'affiche rien du bloc encadré. La doc indique bien d'ailleurs que le bloc est converti en commentaire HTML.