Module:Fiche : Différence entre versions

De Binding of Isaac: Rebirth Wiki
Aller à : navigation, rechercher
(Optimisation et fonction Dlc inutile)
(Renommage catégorie)
 
(204 révisions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
 
local Tableau
 
local Tableau
  
local modDlc = require( 'Module:Dlc' )
 
 
local modElements = require( 'Module:Elements' )
 
local modElements = require( 'Module:Elements' )
local modIcone = require( 'Module:Icone' )
+
local police = require( 'Module:Police' )
local modSucces = require( 'Module:Succes' )
 
  
  
--[[ FONCTIONS ARGUMENTS INITIAUX : DEBUT ]]
+
function p.mode( f, listeModes )
--[[ FONCTIONS ARGUMENTS OBJET ]]
+
local moduleFiche = require( f:getTitle() )
 
+
local args = moduleFiche.args( f )
function p.argsObjet( f )
+
local disp = mw.text.split( args.disp, '-')
return {
 
animation = f:getParent().args['animation'],
 
citation = f:getParent().args['citation'],
 
deblocage = f:getParent().args['déblocage'],
 
description = f:getParent().args['description'],
 
disp = f:getParent().args['disp'],
 
dlc = f:getParent().args['dlc'],
 
grille = f:getParent().args['grille'],
 
grilleold = f:getParent().args['gerilleold'],
 
id = f:getParent().args['id'],
 
imageCase = f:getParent().args['image-case'],
 
imageNom = f:getParent().args['image-nom'],
 
imageTableau = f:getParent().args['image-tableau'],
 
larmes = f:getParent().args['larmes'],
 
liste = f:getParent().args['liste'],
 
nom = f:getParent().args['nom'],
 
personnage = f:getParent().args['personnage'],
 
recharge = f:getParent().args['recharge'],
 
remplaceimage = f:getParent().args['remplaceimage'],
 
remplacenom = f:getParent().args['remplacenom'],
 
Type = f:getParent().args['type'],
 
visible = f:getParent().args['visible']
 
}
 
end
 
 
 
--[[ FONCTIONS ARGUMENTS INITIAUX : FIN ]]
 
 
 
--[[ FONCTIONS D'OBJETS : DEBUT ]]
 
--[[ FONCTION MODE OBJET ]]
 
 
 
function p.modeObjet( f )
 
local args = p.argsObjet( f )
 
 
local page = modElements.page( args.nom )
 
local page = modElements.page( args.nom )
local blocage = mw.text.split( args.disp, '-')
+
local modes = {}
 
 
if blocage[2] == 'dlc' then
+
for index, objet in pairs( args ) do
page.valeur.dlc = args.dlc
+
if objet == '' then
 +
args[index] = nil
 +
end
 
end
 
end
 
 
if args.disp == 'nom' then
+
if not page.valeur.dlc then
return p.modeObjetNom( f, page.valeur.dlc )
+
page.valeur.dlc = ''
else
 
return "''Mode d'affichage inconnu <sup>[<nowiki/>[" .. args.nom .. "]<nowiki/>]</sup>'' [[Catégorie:Mode de modèle manquant]]"
 
 
end
 
end
end
+
 
+
if disp[2] == 'dlc' then
--[[ FONCTION MODE OBJET NOM ]]
+
page.valeur.dlc = args.dlc
 
+
elseif disp[2] == 'nodlc' then
function p.modeObjetNom( f, icone )
+
page.valeur.dlc = 'Booster Pack 10'
local dlc = p.dlc( f )
 
if dlc ~= nil and icone then
 
Tableau = dlc
 
 
end
 
end
 
 
local lien = p.lien( f, true )
+
if listeModes then
Tableau = Tableau .. lien
+
local tableauModes = mw.text.split( listeModes, '%s/%s' )
+
local i = 1
return Tableau
 
end
 
 
 
--[[ FONCTION FICHE OBJET ]]
 
 
 
function p.ficheObjet( f )
 
local args = p.argsObjet( f )
 
local affichage = mw.text.split( args.disp, ', ' )
 
 
if args.visible ~= 0 then
 
local nom = p.nom( args.nom, args.remplacenom )
 
Tableau = '{| class="wikitable" style="border:solid #45264D; float:right; max-width:400px"' .. '\n! style="background:#45264D; width:300px; font-size:10pt; color:#FFFFFF; font-weight:bold" |' .. nom
 
 
 
local dlc = modDlc.icon( args.dlc )
+
repeat
if dlc ~= nil then
+
modes[tableauModes[i]] = true
Tableau = Tableau .. '<br>' .. dlc
+
i = i + 1
end
+
until not tableauModes[i]
 
local image = p.image( f , false )
 
Tableau = Tableau .. '\n|-\n| style="text-align:center; font-size:9pt" | ' .. image
 
 
if args.personnage ~= nil and args.personnage ~= '' then
 
local personnage = p.images( f , 'personnage' )
 
Tableau = Tableau .. '\n|-\n! Apparence du personnage\n|-\n| style="text-align:center; font-weight:normal" | ' .. personnage
 
end
 
 
if args.larmes ~= nil and args.larmes ~= '' then
 
local larmes = p.images( f , 'larmes' )
 
Tableau = Tableau .. '\n|-\n! Apparence des larmes\n|-\n| style="text-align:center; font-weight:normal" | ' .. larmes
 
end
 
 
local Type = p.type( f )
 
Tableau = Tableau .. '\n|-\n! Type d\'objet\n|-\n| style="text-align:center;font-weight:normal" | ' .. Type
 
 
Tableau = Tableau .. '\n|-\n! ID de l\'objet\n|-\n| style="text-align:center;font-weight:normal" | ' .. args.id
 
 
Tableau = Tableau .. '\n|-\n! Citation\n|-\n| style="text-align:center;font-weight:normal" | ' .. args.citation
 
 
if args.animation == nil and args.animation == '' then
 
Tableau = Tableau .. '\n|-\n! Animation\n|-\n| style="text-align:center; font-weight:normal" | ' .. args.animation
 
end
 
 
if args.recharge ~= nil and args.recharge ~= '' then
 
local recharge = p.recharge( args.recharge )
 
Tableau = Tableau .. '\n|-\n! Temps de rechargement\n|-\n| style="text-align:center; font-weight:normal" | ' .. recharge
 
end
 
 
if args.liste ~= nil and args.liste ~= '' then
 
local liste = p.liste( f )
 
Tableau = Tableau .. '\n|-\n! Liste de génération\n|-\n| style="text-align:center; font-weight:normal" | ' .. liste
 
end
 
 
if args.deblocage ~= nil and args.deblocage ~= '' then
 
local deblocage = p.deblocage( f )
 
Tableau = Tableau .. '\n|-\n! Méthode de déblocage\n|-\n| style="text-align:center; font-weight:normal" | ' .. deblocage
 
end
 
 
Tableau = Tableau .. '\n|}'
 
 
end
 
end
 
 
return Tableau
+
if args.temp == args.nom or args.temp == '{{{1}}}' then
end
+
if args.disp == '{{{2}}}' then
 
+
return moduleFiche.fiche( args, page )
--[[ FONCTIONS D'OBJETS : FIN ]]
+
elseif disp[1] == 'case' and modes.case then
 
+
return moduleFiche.case( args, page )
--[[ FONCTIONS GENERALES : DEBUT ]]
+
elseif disp[1] == 'nom' and modes.nom then
--[[ FONCTION NOM ]]
+
return moduleFiche.nom( args, page )
 
+
elseif disp[1] == 'tableau' and modes.tableau then
function p.nom( nom, remplacenom )
+
if disp[2] == 'simple' and modes.tableauSimple or disp[3] == 'simple' and modes.tableauSimple then
if remplacenom == nil or remplacenom == '' then
+
return moduleFiche.tableauSimple( args, page )
return nom
+
else
else
+
return moduleFiche.tableau( args, page )
return remplacenom
+
end
 +
elseif disp[1] == 'phraseIntro' and modes.phraseIntro then
 +
return moduleFiche.intro( args )
 +
else
 +
return "''Mode d'affichage inconnu <sup>[<nowiki/>[" .. args.nom .. "]<nowiki/>]</sup>'' [[Catégorie:Mode de fiche inconnu]]"
 +
end
 
end
 
end
 
end
 
end
  
--[[ FONCTION LIEN ]]
 
  
function p.lien( f, mode )
+
function p.nom( nom, remplaceNom, mode )
local nom = p.nom( f )
+
local nomFinal = remplaceNom or nom
 
 
if mode then
+
if remplaceNom ~= nil and remplaceNom ~= '' then
return '[[' .. f:getParent().args['nom'] .. '|' .. nom .. ']]'
+
nomFinal = remplaceNom
 +
end
 +
if mode == 1 then
 +
return nom .. '|' .. nomFinal
 +
elseif mode == 2 then
 +
return '[[' .. nom .. '|' .. nomFinal .. ']]'
 +
elseif mode == 3 then
 +
return nomFinal
 
else
 
else
return f:getParent().args['nom'] .. '|' .. nom
+
return police.titre( 'TeamMeat', nomFinal, 2 )
 
end
 
end
 
end
 
end
  
--[[ FONCTION IMAGE ]]
 
  
function p.image( f , lien )
+
function p.image( nom, remplaceNom, remplaceImage, _t, lien, _sD, _sF, _e )
local image = f:getParent().args['nom']
+
local n = 1
local remplaceimage = f:getParent().args['remplaceimage']
+
local _i = nom
local typeimage = f:getParent().args['typeimage']
+
local _l = ''
local taillepcpl = f:getParent().args['taille-pcpl']
+
local autres = false
 
 
if remplaceimage == nil or remplaceimage == '' then
+
_e = _e or '.png'
image = '[[Image:' .. image .. '_Icon.'
+
if remplaceImage ~= nil and remplaceImage ~= '' then
if typeimage == nil or typeimage == '' then
+
local image = mw.text.split( remplaceImage, '%s' )
image = image .. 'png'
+
else
+
if image[1] then
image = image .. typeimage
+
repeat
 +
if image[n]:find( '%.' ) then
 +
_e = image[n]
 +
elseif image[n]:find( 'px' ) or image[n]:find( '%%' ) then
 +
_t = image[n]
 +
elseif not autres then
 +
_i = image[n]
 +
autres = true
 +
else
 +
_c = '[[Catégorie:Paramètres d\'image inconnus]]'
 +
end
 +
n = n + 1
 +
until not image[n]
 
end
 
end
else
 
image = '[[Image:' .. remplaceimage
 
 
end
 
end
 
 
if lien then
 
if lien then
+
_l = p.nom( nom, remplaceNom, 1 )
 
else
 
else
if taillepcpl == nil or taillepcpl == '' then
+
_l = ''
image = image .. '|70px]]'
 
else
 
image = image .. '|' .. taillepcpl .. 'px]]'
 
end
 
 
end
 
end
 
 
return image
+
return '[[Image:' .. _sD .. _i .. _sF .. _e .. '|' .. _t .. '|lien=' .. _l .. ']]'
 
end
 
end
  
--[[ FONCTION AUTRES IMAGES ]]
 
  
function p.images( f , arg )
+
function p.citation( citation, italique )
local image = mw.text.split( f:getParent().args[arg], '%s' )
+
local phrase
local nom = mw.text.split( image[1], '%.' )
+
local _c = ''
local ext = ''
 
 
 
if nom[1] == nil or nom[1] == '' then
+
if citation:find( 'vf' ) then
nom[1] = f:getParent().args['nom']
+
phrase = mw.text.split( citation, '%)%s' )
end
+
phrase[1] = mw.text.trim( phrase[1], 'vo%(' )
if nom[2] == nil or nom[2] == '' then
+
phrase[2] = mw.text.trim( phrase[2], 'vf%(' )
nom[2] = 'png'
+
phrase[2] = mw.text.trim( phrase[2], '%)' )
end
+
if italique then
if arg == 'personnage' then
+
_c = "[[Fichier:Drapeau_EN.png|18px|lien=|Texte original]] ''\"" .. phrase[1] .. "\"''<br/>[[Fichier:Drapeau_FR.png|18px|lien=|Traduction française]] ''\"" .. phrase[2] .. "\"''"
ext = '_App'
+
else
elseif arg == 'larmes' then
+
_c = '[[Fichier:Drapeau_EN.png|18px|lien=|Texte original]] "' .. phrase[1] .. '"<br/>[[Fichier:Drapeau_FR.png|18px|lien=|Traduction française]] "' .. phrase[2] .. '"'
ext = '_Tears'
+
end
 +
else
 +
phrase = mw.text.trim( citation, 'vo%(' )
 +
phrase = mw.text.trim( citation, '%)' )
 +
if italique then
 +
_c = "''\"" .. phrase .. "\"''"
 +
else
 +
_c = '"' .. phrase .. '"'
 +
end
 
end
 
end
 
 
return '[[Image:' .. nom[1] .. ext .. '.' .. nom[2] .. '|' .. image[2] .. ']]'
+
return _c
 
end
 
end
  
--[[ FONCTION TYPE ]]
 
  
function p.type( f )
+
function p.recharge( recharge, mode )
local Type = f:getParent().args['type']
+
local args = mw.text.split( recharge, ',%s' )
 +
local _i = ''
 +
local imgParam
 
 
if Type == 'objet actif' then
+
if mode == 1 then
return '[[Objets#Objets Actifs|Objet Actif]]'
+
imgParam = '|15px|lien='
elseif Type == 'objet passif' then
 
return '[[Objets#Objets Passifs|Objet Passif]]'
 
elseif Type == 'babiole' then
 
return '[[Babioles|Babiole]]'
 
elseif Type == 'carte' then
 
return '[[Cartes et Runes#Cartes|Carte]]'
 
elseif Type == 'carte spéciale' then
 
return '[[Cartes et Runes#Cartes Spéciales|Carte Spéciale]]'
 
elseif Type == 'rune' then
 
return '[[Cartes et Runes#Runes|Rune]]'
 
elseif Type == 'consommable' then
 
return '[[Cartes et Runes#Autres|Consommable]]'
 
 
else
 
else
return Type
+
imgParam = '|6px|lien='
 
end
 
end
end
 
 
--[[ FONCTION RECHARGE ]]
 
 
function p.recharge( f )
 
local args = mw.text.split( f, ', ' )
 
local _i = ''
 
 
 
if args[1] == '1' then
 
if args[1] == '1' then
_i = '[[Image:Recharge_1.png]]'
+
_i = '[[Image:Recharge_1.png' .. imgParam .. '|Recharge à 1 cran]]'
 
elseif args[1] == '2' then
 
elseif args[1] == '2' then
_i = '[[Image:Recharge_2.png]]'
+
_i = '[[Image:Recharge_2.png' .. imgParam .. '|Recharge à 2 crans]]'
 
elseif args[1] == '3' then
 
elseif args[1] == '3' then
_i = '[[Image:Recharge_3.png]]'
+
_i = '[[Image:Recharge_3.png' .. imgParam .. '|Recharge à 3 crans]]'
 
elseif args[1] == '4' then
 
elseif args[1] == '4' then
_i = '[[Image:Recharge_4.png]]'
+
_i = '[[Image:Recharge_4.png' .. imgParam .. '|Recharge à 4 crans]]'
 
elseif args[1] == '6' then
 
elseif args[1] == '6' then
_i = '[[Image:Recharge_6.png]]'
+
_i = '[[Image:Recharge_6.png' .. imgParam .. '|Recharge à 6 crans]]'
 
elseif args[1] == '12' then
 
elseif args[1] == '12' then
_i = '[[Image:Recharge_12.png]]'
+
_i = '[[Image:Recharge_12.png' .. imgParam .. '|Recharge à 12 crans]]'
 
elseif args[1] == 'utilisation unique' then
 
elseif args[1] == 'utilisation unique' then
_i = '[[Image:Recharge_one_time.png]]'
+
_i = '[[Image:Recharge_one_time.png' .. imgParam .. '|Utilisation unique]]'
 +
elseif args[1] == 'infinie' then
 +
_i = '[[Image:Recharge_unlimited.png' .. imgParam .. '|Infinie]]'
 
elseif string.find( args[1], 's' ) then
 
elseif string.find( args[1], 's' ) then
_i = '[[Image:Recharge_time.png]]'
+
_i = '[[Image:Recharge_time.png' .. imgParam .. '|Recharge en ' .. mw.text.trim( args[1], 's' ) .. ' secondes]]'
 
end
 
end
 
 
return _i .. ' &nbsp;' .. f
+
if mode == 1 then
 +
return _i
 +
else
 +
return _i .. ' &nbsp;' .. recharge
 +
end
 
end
 
end
  
--[[ FONCTION LISTE ]]
 
  
function p.liste( f )
+
function p.grilleCollection( grille, maxColonne, maxLigne, texte )
local args = f:getParent().args['liste']
+
local args = mw.text.split( grille, '%s' )
local listes = mw.text.split( args, ', ' )
+
local colonne = tonumber( args[2] )
 +
local ligne = tonumber( args[3] )
 +
local _t = ''
 +
local _g = ''
 
 
local icones = modIcone.liste( listes, 'm' )
+
if texte then
 +
_t = '(page ' .. args[1] .. ', colonne ' .. args[2] .. ', ligne ' .. args[3] .. ')'
 +
end
 
 
return icones
+
_g = '\n<table class="wikitable" style="margin:1em auto 1em auto; line-height:0">'
end
 
 
 
--[[ FONCTION DÉBLOCAGE ]]
 
 
 
function p.deblocage( f )
 
local args = f:getParent().args['déblocage']
 
 
 
local deblocage = modSucces.deblocage( args )
+
for i=1, maxLigne, 1 do
 +
if ligne == i then
 +
_g = _g .. '<tr style="background-color:#CCC">'
 +
else
 +
_g = _g .. '<tr>'
 +
end
 +
for j=1, maxColonne, 1 do
 +
if colonne == j and ligne == i then
 +
_g = _g .. '<td style="background-color:#888"></td>'
 +
elseif colonne == j then
 +
_g = _g .. '<td style="background-color:#CCC"></td>'
 +
else
 +
_g = _g .. '<td></td>'
 +
end
 +
end
 +
_g = _g .. '</tr>'
 +
end
 
 
return deblocage
+
_g = _g .. '</table>'
end
 
 
 
--[[ FONCTIONS GRILLE COLLECTION ]]
 
 
 
function p.grillecollection( f )
 
local args = f:getParent().args['grille']
 
local arg = mw.text.split( args, '%s' )
 
 
 
return '{{GrilleCollection |' .. arg[1] .. '|' .. arg[2] .. '|' .. arg[3] .. '}}'
 
end
 
 
 
function p.grillecollectionold( f )
 
local args = f:getParent().args['grilleold']
 
local arg = mw.text.split( args, '%s' )
 
 
 
return '{{GrilleCollectionOld |' .. arg[1] .. '|' .. arg[2] .. '|' .. arg[3] .. '}}'
+
return _t .. _g
 
end
 
end
 
--[[ FONCTIONS GENERALES : FIN ]]
 
  
 
return p
 
return p

Version actuelle datée du 28 juin 2017 à 12:19

Template-info.png Documentation

Fonction mode( f, listeModes ) [modifier le wikicode]

Cette fonction met en place la structure d'un module fiche.
ArgumentsRenvois
f (frame)
  • Frame de la page utilisée.
  • Nécessite trois paramètres, en plus de ceux spécifiques à chaque fiche :
    disp (string)
    • Mode d'affichage, utilisé lors d'une transclusion. Doit avoir pour valeur {{{2}}}.
    temp (string)
    • Nom de l'élément auquel la fiche est dédiée, utilisé lors d'une transclusion. Doit avoir pour valeur {{{1}}}.
    nom (string)
    • Nom de l'élément auquel la fiche est dédiée.
  • Toute valeur nulle sur ou syntaxe non respectée sur l'un de ces trois paramètres nuira directement au bon fonctionnement des Fiches.
listeModes (string)
  • Liste des modes utilisés par la fiche, séparés par  /  :
    • case
    • nom
    • tableau
    • tableauSimple (nécessite tableau)
    • phraseIntro
    • Le mode fiche est présent par défaut et n'a pas besoin d'être ajouté.
  • Type : (function)
  • Fonction correspondant au mode demandée de la fiche correspondante.
  • Renvoie deux arguments :
    args (table)
    • Renvoyé par la fonction args( f ) de la fiche correspondante.
    page (table)
  • Renvoie une valeur (string) si le mode demandé dans disp n'existe pas.

Fonction nom( nom, remplaceNom, mode ) [modifier le wikicode]

Cette fonction gère l'affichage du titre d'une fiche.
ArgumentsRenvois
nom (string)
  • Valeur de l'argument nom contenu dans le tableau args de la fonction mode( f, listeModes ).
remplaceNom (string)
  • Texte à afficher, s'il est différent de la valeur de nom.
  • Peut prendre une valeur nulle.
mode (int)
  • Apparence du titre à renvoyer :
    • 0 ou nil renvoie le texte avec la police TeamMeat de la fonction titre( police, texte, taille ) du Module:Police.
    • 1 renvoie le contenu du paramètre |lien= d'une image MediaWiki.
    • 2 renvoie le titre avec un lien vers la page correspondante. À utiliser sur des transclusions.
    • 3 renvoie le titre sans autre modification.
  • Type : (string)
  • Dépend de la valeur de l'argument mode.

Fonction image( nom, remplaceNom, remplaceImage, _t, lien, _sD, _sF, _e ) [modifier le wikicode]

Cette fonction renvoie un fichier selon les paramètres entrés par l'utilisateur.
ArgumentsRenvois
nom (string)
  • Valeur de l'argument nom contenu dans le tableau args de la fonction mode( f, listeModes ).
remplaceNom (string)
  • Texte à afficher sur le fichier, s'il est différent de la valeur de nom.
  • Peut prendre une valeur nulle.
remplaceImage (string)
  • Nom du fichier, sans l'espace de nom, l'extension et les chaînes de caractères supplémentaires s'il est différent de la valeur de nom.
  • Peut prendre une valeur nulle.
_t (string)
  • Taille initiale du fichier en pixels (ex. : 60x60px).
lien (boolean)
  • Indique si le fichier doit avoir un lien.
_sD (string)
  • Caractères à ajouter avant le nom du fichier (ex. : Boss_).
_sF (string)
  • Caractères à ajouter après le nom du fichier, avant l'extension (ex. : _App).
_e (string)
  • Optionnel. Extension initiale du fichier (ex. : .gif).
  • Prend pour valeur .png si sa valeur est nulle.
  • Type : (string)
  • Fichier au format MediaWiki.

Fonction citation( citation, italique ) [modifier le wikicode]

Cette fonction affiche la citation d'un élément.
ArgumentsRenvois
citation (string)
  • Citation en anglais.
  • Pour la citation traduite en français, entrer : vo(CitationEN) vf(CitationFR).
italique (boolean)
  • Optionnel. Indique si le texte doit être en italique.
  • Type : (string)

Fonction recharge( recharge, mode ) [modifier le wikicode]

Cette fonction affiche la recharge d'un objet activable.
ArgumentsRenvois
recharge (string)
  • Type de recharge :
    • 1, 2, 3, 4, 6 ou 12.
    • utilisation unique pour un objet disparaissant après utilisation.
    • infinie pour un objet sans recharge.
    • 6s pour un objet se rechargeant au fil du temps.
mode (int)
  • Apparence de la recharge à renvoyer :
    • 0 ou nil renvoie l'image de la recharge et le texte associé.
    • 1 renvoie l'image de la recharge de grande taille.
  • Type : (string)

Fonction grilleCollection( grille, maxColonne, maxLigne, texte ) [modifier le wikicode]

Cette fonction renvoie une grille de collection, la case demandée sélectionnée.
ArgumentsRenvois
grille (string)
  • Position de la case à sélectionner.
  • Entrer la page, la colonne puis la ligne, en séparant les valeurs par un espace.
maxColonne (int)
  • Nombre de colonnes à afficher dans la grille.
maxLigne (int)
  • Nombre de lignes à afficher dans la grille.
texte (boolean)
  • Optionnel. Indique si l'emplacement de la case sélectionné doit être écrit au-dessus de la fiche.
  • Type : (string)

local p = {}
local Tableau

local modElements = require( 'Module:Elements' )
local police = require( 'Module:Police' )


function p.mode( f, listeModes )
	local moduleFiche = require( f:getTitle() )
	local args = moduleFiche.args( f )
	local disp = mw.text.split( args.disp, '-')
	local page = modElements.page( args.nom )
	local modes = {}
	
	for index, objet in pairs( args ) do
		if objet == '' then
			args[index] = nil
		end
	end
	
	if not page.valeur.dlc then
		page.valeur.dlc = ''
	end
	
	if disp[2] == 'dlc' then
		page.valeur.dlc = args.dlc
	elseif disp[2] == 'nodlc' then
		page.valeur.dlc = 'Booster Pack 10'
	end
	
	if listeModes then
		local tableauModes = mw.text.split( listeModes, '%s/%s' )
		local i = 1
		
		repeat
			modes[tableauModes[i]] = true
			i = i + 1
		until not tableauModes[i]
	end
	
	if args.temp == args.nom or args.temp == '{{{1}}}' then
		if args.disp == '{{{2}}}' then
			return moduleFiche.fiche( args, page )
		elseif disp[1] == 'case' and modes.case then
			return moduleFiche.case( args, page )
		elseif disp[1] == 'nom' and modes.nom then
			return moduleFiche.nom( args, page )
		elseif disp[1] == 'tableau' and modes.tableau then
			if disp[2] == 'simple' and modes.tableauSimple or disp[3] == 'simple' and modes.tableauSimple then
				return moduleFiche.tableauSimple( args, page )
			else
				return moduleFiche.tableau( args, page )
			end
		elseif disp[1] == 'phraseIntro' and modes.phraseIntro then
			return moduleFiche.intro( args )
		else
			return "''Mode d'affichage inconnu <sup>[<nowiki/>[" .. args.nom .. "]<nowiki/>]</sup>'' [[Catégorie:Mode de fiche inconnu]]"
		end
	end
end


function p.nom( nom, remplaceNom, mode )
	local nomFinal = remplaceNom or nom
	
	if remplaceNom ~= nil and remplaceNom ~= '' then
		nomFinal = remplaceNom
	end
	if mode == 1 then
		return nom .. '|' .. nomFinal
	elseif mode == 2 then
		return '[[' .. nom .. '|' .. nomFinal .. ']]'
	elseif mode == 3 then
		return nomFinal
	else
		return police.titre( 'TeamMeat', nomFinal, 2 )
	end
end


function p.image( nom, remplaceNom, remplaceImage, _t, lien, _sD, _sF, _e )
	local n = 1
	local _i = nom
	local _l = ''
	local autres = false
	
	_e = _e or '.png'
	if remplaceImage ~= nil and remplaceImage ~= '' then
		local image = mw.text.split( remplaceImage, '%s' )
		
		if image[1] then
			repeat
				if image[n]:find( '%.' ) then
					_e = image[n]
				elseif image[n]:find( 'px' ) or image[n]:find( '%%' ) then
					_t = image[n]
				elseif not autres then
					_i = image[n]
					autres = true
				else
					_c = '[[Catégorie:Paramètres d\'image inconnus]]'
				end
				n = n + 1
			until not image[n]
		end
	end
	if lien then
		_l = p.nom( nom, remplaceNom, 1 )
	else
		_l = ''
	end
	
	return '[[Image:' .. _sD .. _i .. _sF .. _e .. '|' .. _t .. '|lien=' .. _l .. ']]'
end


function p.citation( citation, italique )
	local phrase
	local _c = ''
	
	if citation:find( 'vf' ) then
		phrase = mw.text.split( citation, '%)%s' )
		phrase[1] = mw.text.trim( phrase[1], 'vo%(' )
		phrase[2] = mw.text.trim( phrase[2], 'vf%(' )
		phrase[2] = mw.text.trim( phrase[2], '%)' )
		if italique then
			_c = "[[Fichier:Drapeau_EN.png|18px|lien=|Texte original]] ''\"" .. phrase[1] .. "\"''<br/>[[Fichier:Drapeau_FR.png|18px|lien=|Traduction française]] ''\"" .. phrase[2] .. "\"''"
		else
			_c = '[[Fichier:Drapeau_EN.png|18px|lien=|Texte original]] "' .. phrase[1] .. '"<br/>[[Fichier:Drapeau_FR.png|18px|lien=|Traduction française]] "' .. phrase[2] .. '"'
		end
	else
		phrase = mw.text.trim( citation, 'vo%(' )
		phrase = mw.text.trim( citation, '%)' )
		if italique then
			_c = "''\"" .. phrase .. "\"''"
		else
			_c = '"' .. phrase .. '"'
		end
	end
	
	return _c
end


function p.recharge( recharge, mode )
	local args = mw.text.split( recharge, ',%s' )
	local _i = ''
	local imgParam
	
	if mode == 1 then
		imgParam = '|15px|lien='
	else
		imgParam = '|6px|lien='
	end
	if args[1] == '1' then
		_i = '[[Image:Recharge_1.png' .. imgParam .. '|Recharge à 1 cran]]'
	elseif args[1] == '2' then
		_i = '[[Image:Recharge_2.png' .. imgParam .. '|Recharge à 2 crans]]'
	elseif args[1] == '3' then
		_i = '[[Image:Recharge_3.png' .. imgParam .. '|Recharge à 3 crans]]'
	elseif args[1] == '4' then
		_i = '[[Image:Recharge_4.png' .. imgParam .. '|Recharge à 4 crans]]'
	elseif args[1] == '6' then
		_i = '[[Image:Recharge_6.png' .. imgParam .. '|Recharge à 6 crans]]'
	elseif args[1] == '12' then
		_i = '[[Image:Recharge_12.png' .. imgParam .. '|Recharge à 12 crans]]'
	elseif args[1] == 'utilisation unique' then
		_i = '[[Image:Recharge_one_time.png' .. imgParam .. '|Utilisation unique]]'
	elseif args[1] == 'infinie' then
		_i = '[[Image:Recharge_unlimited.png' .. imgParam .. '|Infinie]]'
	elseif string.find( args[1], 's' ) then
		_i = '[[Image:Recharge_time.png' .. imgParam .. '|Recharge en ' .. mw.text.trim( args[1], 's' ) .. ' secondes]]'
	end
	
	if mode == 1 then
		return _i
	else
		return _i .. ' &nbsp;' .. recharge
	end
end


function p.grilleCollection( grille, maxColonne, maxLigne, texte )
	local args = mw.text.split( grille, '%s' )
	local colonne = tonumber( args[2] )
	local ligne = tonumber( args[3] )
	local _t = ''
	local _g = ''
	
	if texte then
		_t = '(page ' .. args[1] .. ', colonne ' .. args[2] .. ', ligne ' .. args[3] .. ')'
	end
	
	_g = '\n<table class="wikitable" style="margin:1em auto 1em auto; line-height:0">'
	
	for i=1, maxLigne, 1 do
		if ligne == i then
			_g = _g .. '<tr style="background-color:#CCC">'
		else
			_g = _g .. '<tr>'
		end
		for j=1, maxColonne, 1 do
			if colonne == j and ligne == i then
				_g = _g .. '<td style="background-color:#888"></td>'
			elseif colonne == j then
				_g = _g .. '<td style="background-color:#CCC"></td>'
			else
				_g = _g .. '<td></td>'
			end
		end
		_g = _g .. '</tr>'
	end
	
	_g = _g .. '</table>'
	
	return _t .. _g
end

return p