GW2Wiki:Projets/Réécriture du code des infobox objets/Base Infobox Objet

De Guild Wars 2 Wiki
Aller à la navigation Aller à la recherche

Compétence.jpg

Projets/Réécriture du code des infobox objets/Base Infobox Objet

Rareté
Non spécifiée
Type
[[]]

Pas de description disponible.

— Description en jeu


IMPORTANT[modifier]

Ce modèle est utilisé comme base pour tous les autres modèles d'infobox, merci de le modifier uniquement si vous êtes sûrs que la fonction que vous voulez implémenter sera utilisée par plusieurs infobox différentes. Dans le cas contraire, ne modifiez que le code de l'infobox concernée. Merci. Ce modèle n'est pas prévu pour être directement utilisé, voir plutôt les modèles d'infobox objet, arme, armure, accessoire, consommable, amélioration.

Documentation[modifier]

Ce modèle est prévu pour servir de base aux autres modèles d'infobox. Il contient les différents paramètres de base que la plus grande partie, voire la totalité des infobox décrivant les objets en jeu utilisent. Il a été mis au point dans une optique de flexibilité, ainsi chaque infobox appelant ce modèle dispose de deux espaces où rajouter des informations : elles peuvent apparaître dans l'infobox en elle-même, ou bien apparaître dans la description (Ceci peut-être amené à changer en fonction de l'avancement du projet et des desiderata des différents contributeurs du wiki). Vous trouverez ci-après une description de la totalité des paramètres que ce modèle peut accepter, et ensuite un exemple de création d'une nouvelle infobox. La consultation des pages Aide MetaWiki sur les modèles et Aide MediaWiki sur les modèles est vivement conseillée pour comprendre les différentes notions abordées dans cette documentation.

Paramètres du modèle commun d'infobox[modifier]

Paramètres généraux[modifier]

nom
Optionnel. Nom de l'objet décrit par l'infobox. Par défaut, c'est le nom de la page (macro {{PAGENAME}})
icône
Optionnel. Nom du fichier contenant l'icône de l'objet. Si le paramètre nom a été renseigné, et que le fichier nom.png existe, ce fichier sera affiché. Si le paramètre nom n'a pas été renseigné, alors le modèle vérifie si le fichier {{PAGENAME}}.png existe et l'affiche le cas échéant. Dans le cas où le fichier nom.png (dans le cas où nom a été spécifié), ou le fichier {{PAGENAME}}.png n'existeraient pas, l'icône Compétence.png sera affichée, et en cliquant sur cette icône le contributeur sera redirigé vers la page d'import du fichier dont le nom de destination sera correctement renseigné.
rareté
Obligatoire. Rareté ou couleur de la rareté de l'objet. Voir Modèle:Rareté pour les paramètres acceptables.
description
Optionnel. Description en jeu de l'objet. Ne pas inclure les bonus aux caractéristiques, ceux-ci sont gérés par d'autres paramètres, (voir ci-après).
type-général
Optionnel. Type général de l'objet décrit par l'infobox. Pour l'infobox arme, ce paramètre vaut Arme. Renseigne la propriété sémantique Type d'objet.
prop-type
Optionnel. Nom de la propriété sémantique où doit être stockée un type spécifique à la catégorie d'objet renseignée, par exemple, pour une arme, ce paramètre vaudra type d'arme. Par défaut : Type d'objet
titre-type
Optionnel. Nom du champ Type à afficher dans l'infobox (voir ci dessus). Par défaut "Type". Pour l'infobox consommable, ce paramètre serait Consommable
type
Obligatoire. Type de l'objet décrit par l'infobox. Les modèles d'infobox doivent vérifier que le type donné par l'utilisateur est valide, ce modèle ne fait aucune vérification du type.
niveau
Optionnel. Niveau requis afin d'utiliser, équiper, appliquer, consommer l'objet.
extras-infobox
Optionnel. Paramètre permettant l'insertion d'informations supplémentaires spécifiques à chaque infobox dans la boîte d'infobox.
valeur
Optionnel. Valeur de l'objet indiquée dans l'infobox en jeu, sous la forme orargentbronze (voir Modèle:Prix).
coût
Optionnel. Prix d'achat de l'objet auprès d'un marchand, et non pas au Comptoir de la Compagnie commerciale du Lion Noir, sous la forme orargentbronze (voir Modèle:Prix).
coût-gemme
Optionnel. Valeur en gemmes Gemme.png de l'objet dans la Boutique de la Compagnie commerciale du Lion Noir.
coût-gloire
Optionnel. Prix en gloire Icône gloire.png de l'objet.
coût-karma
Optionnel. Prix en karma Karma.png de l'objet auprès d'un marchand de karma.
coût-laurier
Optionnel. Prix en lauriers Laurier.png de l'objet auprès d'un marchand de laurier.
coût-point
Optionnel. Prix de l'objets en points de compétence Défi de héros.png, notamment pour les objets vendus par Miyani.
coût-spécial
Optionnel. Pour décrire un prix dans une ressource non listée ci-dessus. Par exemple : 300 {{Jeton|la}} pour un prix de 300 Cristal de connaissance.png (voir Modèle:Jeton et Modèle:Trophée festif notamment).
lié-compte
Optionnel. oui pour indiquer que l'objet est lié au compte. Ne pas indiquer dans le cas contraire.
lié
Optionnel. Indique de quelle manière l'objet est lié à l'âme ou au compte du personnage. utilisation : lié à l'âme à l'utilisation, acquistion : lié à l'âme à l'acquisition, oui : lié à l'âme.
event
Optionnel. Indique à quel évènement spécial est apparu ou est lié l'objet. (Voir Modèle:évènement festif).
extras-description
Optionnel. Paramètre permattant l'insertion d'informations supplémentaires spécifiques à chaque infobox après la description de l'objet.
clé-catégories
Optionnel. Comment le wiki doit ranger la page dans le listing de catégorie. Voir Aide:Catégorisation sur Wikipédia
catégories
Optionnel. Liste des catégories, séparées par des esperluettes (caractère &), auquel l'article doit appartenir. Encore une fois, chaque infobox doit fournir un paramètre valide, aucun travail de vérification n'est effectué par ce modèle.
class-infobox
Optionnel. Classe CSS de l'infobox, par défaut : infobox objet.
class-entête
Optionnel. Classe CCS de l'entête de l'infobox, où apparaît le nom de l'objet.
numéro-objet
Obligatoire. Indiquer le numéro de l'objet sur la page (1er -> 1, 2ème-> 2, etc...) pour les sous-objets, ceci est obligatoire pour les pages décrivant plusieurs objets, et peut résulter en une erreur interne du wiki s'il n'est pas renseigné.

Paramètres liés aux pré-requis d'artisanat[modifier]

artificier, bijoutier, chasseur, forgeron d'armes, forgeron d'armures, maître-queux, tailleur, travailleur du cuir
Optionnels. Indique le niveau d'artisanat nécessaire dans le métier afin de pouvoir utiliser l'objet.

Le paramètre prérequis est conservé à fins de compatibilité. Lui préférer l'utilisation des paramètres précédents. L'utilisation d'un des paramètres précédents prend le pas sur l'utilisation du paramètre prérequis, et il ne sera donc pas interprété.

Paramètres liés aux bonus aux caractéristiques[modifier]

agonie
Optionnel. Bonus de résistance à l'agonie conféré par l'objet.
dégâtscritiques, dégâtscritiques2
Optionnels. Bonus aux Dégâts critiques.png Dégâts critiques conféré par l'objet. Ne pas inclure le signe %. Le paramètre dégâtscritiques2 est à utiliser pour les objets élevés donnant un double bonus à la caractéristique.
découvertedemagie, découvertedemagie2
Optionnels. Bonus à la Découverte de magie (bonus du compte).png Découverte de magie conféré par l'objet. Ne pas inclure le signe %. Le paramètre découvertedemagie2 est à utiliser pour les objets élevés donnant un double bonus à la caractéristique.
duréeavantages, duréeavantages2
Optionnels. Bonus à la Concentration.png Durée des avantages conféré par l'objet. Ne pas inclure le signe %. Le paramètre duréeavantages2 est à utiliser pour les objets élevés donnant un double bonus à la caractéristique.
duréealtération, duréealtération2
Optionnels. Bonus à la Durée d'altération.png Durée d'altération conféré par l'objet. Ne pas inclure le signe %. Le paramètre duréealtération2 est à utiliser pour les objets élevés donnant un double bonus à la caractéristique.
guérison, guérison2
Optionnels. Bonus à la Guérison.png Guérison conféré par l'objet. Le paramètre guérison2 est à utiliser pour les objets élevés donnant un double bonus à la caractéristique.
précision, précision2
Optionnels. Bonus à la Précision.png Précision conféré par l'objet. Le paramètre précision2 est à utiliser pour les objets élevés donnant un double bonus à la caractéristique.
puissance, puissance2
Optionnels. Bonus à la Puissance.png Puissance conféré par l'objet. Le paramètre puissance2 est à utiliser pour les objets élevés donnant un double bonus à la caractéristique.
puissancesoins, puissancesoins2
Optionnels. Bonus à la Guérison.png Puissance des soins conféré par l'objet. Le paramètre puissancesoins2 est à utiliser pour les objets élevés donnant un double bonus à la caractéristique.
robustesse, robustesse2
Optionnels. Bonus à la Robustesse.png Robustesse conféré par l'objet. Le paramètre robustesse2 est à utiliser pour les objets élevés donnant un double bonus à la caractéristique.
vitalité, vitalité2
Optionnels. Bonus à la Vitalité.png Vitalité conféré par l'objet. Le paramètre vitalité2 est à utiliser pour les objets élevés donnant un double bonus à la caractéristique.
ordre bonus
Optionnel. oui pour indiquer que les bonus doivent apparaître dans un ordre précis. Dans ce cas utiliser les paramètres bonus 1, bonus 2, ... , bonus 8 décrits ci-après.
bonus 1, bonus 2, ..., bonus 8
Optionnels. Indique à quelle place le bonus concerné (utiliser les noms indiqués ci-dessus) doit se trouver.

Exemple de création d'une infobox[modifier]

Nous allons étudier ici pas à pas la démarche à effectuer lorsque l'on souhaite créer une infobox s'appuyant sur ce modèle de base. Pour cet exemple, nous allons retracer la création de l'infobox arme.

Isolation des caractéristiques du type d'objet[modifier]

En plus des caractéristiques classiques communes à beaucoup d'objets (le nom, la rareté, le type général (ici arme), la valeur, le fait que l'objet soit ou non lié à l'âme, les bonus conférés), les armes possèdent des caractéristiques spécifiques :

  • Son type : Bouclier, arc court, arc long, sceptre, etc...
  • Sa puissance : dégâts de base causés par l'arme.
  • La défense qu'elle confère, dans le cas d'un bouclier
  • Un emplacement d'amélioration
  • L'ensemble d'armes auquel l'arme appartient

Ces paramètres ne sont pas indiqués dans l'infobox commune et doivent donc être rajoutés. Il faut ensuite choisir où ces informations doivent figurer. Le modèle actuel dispose de deux endroits où l'information peut être rajoutée : dans la boîte de l'infobox, ou à la suite de la description.

Choix de l'emplacement de l'information[modifier]

La boîte d'infobox, en haut à droite par défaut, contient les informations les plus importantes concernant l'objet que l'on décrit. Il semble donc logique d'inclure dans cette boîte le type d'arme, si c'est une arme à une ou deux mains, et la défense qu'elle confère. L'emplacement d'amélioration est la plupart du temps vacant, mais dans le cas des armes uniques obtenues à la forge mystique, ainsi que pour les armes légendaires, cet emplacement est occupé par un cachet. Cette information pourrait apparaître dans la boîte d'infobox, toutefois, les modèles actuels permettent, comme cela est fait dans le jeu, d'afficher les effets du cachet ou de l'amélioration appliquée sur une arme. Le texte obtenu serait évidemment trop long pour figurer dans l'infobox, il doit donc figurer à la suite de la description.

Choix du nom des paramètres[modifier]

Comme pour chaque modèle, il est possible de donner des noms aux paramètres, et dans le cas des infobox, où un nombre important de paramètres sont optionnels, et où leur ordre n'est pas important, cela est très fortement conseillé. Pour le type de l'arme, il semble logique d'utiliser un paramètre appelé type. La puissance est indiquée en jeu sous la forme d'un intervalle. Il pourrait être commode d'indiquer la puissance de la même manière sur le wiki, toutefois, il est souhaitable de pouvoir stocker ces informations de manière sémantique, l'utilisation de deux paramètres puissance minimum et puissance maximum que le modèle retranscrira sous forme d'intervalle est plus indiquée. Il semble aussi parfaitement logique d'utiliser un paramètre défense pour indiquer la défense octroyée par un bouclier. Enfin choisissons le paramètre amélioration pour indiquer la présence et/ou le contenu d'un emplacement d'amélioration. Enfin ensemble semble un nom tout à fait logique pour indiquer l'ensemble d'armes auquelle une arme peut appartenir.

Catalogage des valeurs admissibles pour les paramètres[modifier]

Si les paramètres puissance minimum, puissance maximale, défense sont clairement des nombres que le contributeur doit indiquer, dans le cas du paramètre type, l'information indiquée par le contributeur peut prendre différentes formes : certains penseront à mettre la majuscule de début, d'autres non, d'autres penseront aux accents, et certains pas. D'autre part, seul un certain nombre de valeurs sont permises. On pourrait pour cela faire une suite de tests sur le paramètre type pour chaque valeur, à l'aide de {{#ifeq:<chaîne à tester>|<valeur attendue>|<choses à faire si <chaîne à tester>=<valeur attendue> >|<choses à faire dans le cas contraire>}}. Cela est toutefois extrêmement fastidieux, et génère un code lourd et difficile à maintenir. Pour faire cette série de tests de manière plus simple, nous avons accès à la fonction {{#switch: ... }} dont la documentation est accessible ici. Ainsi le test de type peut dont se faire de la manière suivante :

{{#switch: {{lc:{{{type}}}}}
  | arc court = Arc court
  | arc long = Arc long
  | arme environnementale | environnementale = Arme environnementale
  | arme légendaire | légendaire = Arme légendaire
  | baton
  | bâton = Bâton
  | bouclier = Bouclier
  | cor | cors | cor de guerre = Cor de guerre
  | dague = Dague
  | espadon = Espadon
  | épée = Épée
  | focus = Focus
  | fusil = Fusil
  | hache = Hache
  | harpon | fusil-harpon = Harpon
  | jouet = Jouet
  | lance = Lance
  | marteau = Marteau
  | masse = Masse
  | pistolet = Pistolet
  | sceptre = Sceptre
  | torche = Torche
  | trident = Trident}}

Dans ce code, nous appelons la valeur du paramètre type grâce à l'expression {{{type}}}, que nous convertissons en minuscules (Lower Case ou lc en anglais) avant de le confronter à différentes valeurs. Pour ce qui est de l'emplacement d'amélioration, nous utiliserons un modèle déjà présent sur le wiki (Modèle:Emplacement d'amélioration) qui se charge lui même de vérifier si le paramètre fourni est acceptable. Il suffit donc de se référer à sa documentation. Maintenant que nous avons défini les valeurs acceptables pour nos paramètres, nous pouvons donc nous atteler à la rédaction du code à proprement parler.

Rédaction du code de l'infobox[modifier]

Dans le cas de la création d'une infobox depuis zéro, il faudrait créer la page correspondante, dans notre cas, il s'agirait plutôt de modifier la page du modèle existante. Mais tout d'abord intéressons nous aux balises suivantes : <includeonly></includeonly><noinclude></noinclude>. Ces balises permettent de contrôler quelle(s) partie(s) de la page de modèle seront incluses quand le modèle sera invoqué. Tout texte, code, ou élément figurant à l'intérieur des balises <noinclude></noinclude> ne sera pas inclus dans la page concernée. Si des balises <includeonly></includeonly> sont présentes, seul le texte, code, élément compris entre ces deux balises sera inclus lors de l'utilisation du modèle. Passons maintenant à la rédaction à proprement parler de notre modèle. En réalité nous n'allons pas écrire notre modèle à partir de zéro en utilisant des balises HTML et un langage wiki poussé, mais nous allons tout simplement faire appel à notre modèle de base :

{{GW2Wiki:Projets/Réécriture du code des infobox objets/Base Infobox Objet
| nom = {{{nom|}}}
| icône = {{{icône|}}}
| rareté = {{{rareté|}}}
| titre-type = Arme{{!}}Type d'arme
| prop-type = Type d'arme
| type-général = Arme
| niveau = {{{niveau|}}}
| valeur = {{{valeur|}}}
| coût = {{{coût|}}}
| coût-karma = {{{coût-karma|}}}
| coût-gemme = {{{coût-gemme|}}}
| coût-point = {{{coût-point|}}}
| coût-spécial = {{{coût-spécial|}}}
| lié = {{{lié|}}}
| event = {{{event|}}}
| description = {{{description|}}}
| ordre bonus = {{{ordre bonus|}}}
| bonus 1 = {{{bonus 1|}}}
| bonus 2 = {{{bonus 2|}}}
| bonus 3 = {{{bonus 3|}}}
| bonus 4 = {{{bonus 4|}}}
| bonus 5 = {{{bonus 5|}}}
| bonus 6 = {{{bonus 6|}}}
| bonus 7 = {{{bonus 7|}}}
| bonus 8 = {{{bonus 8|}}}
| bonus 9 = {{{bonus 9|}}}
| bonus 10 = {{{bonus 10|}}}
| agonie = {{{agonie|}}}
| dégâtscritiques = {{{dégâtscritiques|}}}
| découvertedemagie = {{{découvertedemagie|}}}
| dégaltération = {{{dégaltération|}}}
| duréeavantages = {{{duréeavantages|}}}
| duréealtération = {{{duréealtération|}}}
| guérison = {{{guérison|}}}
| précision = {{{précision|}}}
| puissance = {{{puissance|}}}
| puissancesoins = {{{puissancesoins|}}}
| robustesse = {{{robustesse|}}}
| vitalité = {{{vitalité|}}}
| dégâtscritiques2 = {{{dégâtscritiques2|}}}
| découvertedemagie2 = {{{découvertedemagie2|}}}
| dégaltération2 = {{{dégaltération2|}}}
| duréeavantages2 = {{{duréeavantages2|}}}
| duréealtération = {{{duréealtération2|}}}
| guérison2 = {{{guérison2|}}}
| précision2 = {{{précision2|}}}
| puissance2 = {{{puissance2|}}}
| puissancesoins2 = {{{puissancesoins2|}}}
| robustesse2 = {{{robustesse2|}}}
| vitalité2 = {{{vitalité2|}}}
| class-infobox = infobox arme
| class-entête = entête
}}

Remarquez que pour le moment nous n'avons introduit que très peu de code spécifique à notre modèle d'infobox. Mais intéressons-nous aux trois paramètres suivants :

| titre-type = Arme{{!}}Type d'arme
| prop-type = Type d'arme
| type-général = Arme
  • Le paramètre titre-type nous permet de définir comment le champ Type de l'infobox va être affiché. Comme ce champs est entouré de doubles crochets signifiant qu'il s'agira d'un lien interne du wiki, il n'est pas nécessaire de les rajouter ici. Remarquez l'emploi du Modèle:!. Ceci permet d'introduire la barre verticale |, mais sans que celle-ci soit considérée comme un séparateur d'arguments pour le modèle. En fait l'inclusion de ce modèle nous permet de créer le lien [[Arme|Type d'arme]] à la place du lien Type de l'infobox.
  • Le paramètre type-général nous permet de définir la propriété Type d'objet comme Arme pour les objets décrits pas l'infobox d'arme.
  • Le paramètre prop-type nous permet de définir le nom de la propriété qui va effectivement stocker le type de l'arme (donc Type d'arme), et dans laquelle nous stockerons le type réel de l'arme en question : arc court, baton, trident, etc...

Nous n'avons pour l'instant pas indiqué les informations qui doivent figurer dans la boîte de l'infobox, remédions à cela :

| extras-infobox = ;[[Attaque|Puissance]]
:{{{puissance minimum|0}}} – {{{puissance maximum|0}}}
{{#if: {{{défense|}}}|
;[[Armure (statistique)|Défense]]
:{{{défense}}}
}}{{#if:{{{set|{{{ensemble|}}}}}};[[Ensemble d'armes|Ensemble]]
:{{{set|{{{ensemble|}}}}}}
}}

Ce code est relativement simple à comprendre, comme ici il s'agit de réécrire une infobox qui existe déjà, nous devons prendre en compte que certains paramètres aient pu être définis autrement auparavant, ce qui est le cas pour le paramètre ensemble, certaines pages contiennent le paramètre set, tandis que d'autres ensemble, nous devons donc prendre en compte les deux notations. Pour comprendre ce que l'écriture {{{set|{{{ensemble|}}}}}} signifie, je vous renvoie aux différentes aides sur les modèles indiquées au début de cette documentation. Il nous reste maintenant à rajouter l'emplacement d'amélioration, du côté de la description, ce que nous faisons de la manière suivante :

| extras-description = {{ #if: {{{amélioration|}}} | :{{#ifeq: {{lc:{{{amélioration}}}}}| vide |{{Emplacement d'amélioration}}| {{Emplacement d'amélioration|{{{amélioration}}}}}
 {{Infobox/Bonus amélioration|{{{amélioration}}}}} }} }}

Le modèle Modèle:Infobox/Bonus amélioration nous permet de pouvoir afficher les effets d'un cachet par exemple. Une fois tout ceci fait, le modèle est presque terminé. Il nous reste juste à créer la chaîne contenant les catégories dans lesquelles une arme doit être rangée, et si nécessaire indiquer la clé de rangement pour le listing de catégorie. Ceci peut-être fait de la manière suivante :

<!--Catégorisation-->
| clé-catégorie = {{{clé-catégorie|}}}
{{#vardefine:catégories|{{#switch: {{lc:{{{type}}}}}
  | arme environnementale | environnementale = Armes environnementales
  | arme légendaire | légendaire = Armes légendaires
  | espadon = Espadons
  | marteau = Marteaux
  | arc long = Arcs longs
  | fusil = Fusils
  | arc court = Arcs courts
  | bâton = Bâtons
  | hache = Haches
  | dague = Dagues
  | masse = Masses
  | pistolet = Pistolets
  | sceptre = Sceptres
  | épée = Épées
  | focus = Focus
  | bouclier = Boucliers
  | torche = Torches
  | cor | cors | cor de guerre = Cors de guerre
  | harpon | fusil-harpon = Harpons
  | lance = Lances
  | trident = Tridents
  | jouet = Jouet}}}}
{{#if:{{{event|}}}|{{#vardefine:catégories|{{#var:catégories}}&Armes {{évènement festif|{{{event}}}|texte pour catégorie=oui}}}}}}
| catégories = {{#var:catégories}}

Nous utilisons ici les fonctions ajoutées par l'extension Variables dont je vous invite à regarder la documentation pour mieux comprendre le code ci dessus. Notez que les différents ajouts que nous avons faits devraient être ajoutés avant les deux dernières accolades fermantes (}}). Et voilà, nous avons créé notre infobox en se basant sur le modèle commun et en y ajoutant les fonctionnalités que nous voulions. Il ne reste plus qu'à documenter notre infobox en indiquant quels sont les paramètres utilisés, et quelle est leur signification. Pour les paramètres communs, il est tout à fait possible de copier les définitions indiquées un peu plus haut dans la documentation. Ceci marque donc la fin de notre tutoriel.