« Module:Infobox/Core » : différence entre les versions
De Nefald
Autres actions
Aucun résumé des modifications Balises : Modification par mobile Modification par le web mobile |
erreur suite implémentation CSS |
||
| Ligne 1 : | Ligne 1 : | ||
local | local p = {} | ||
local getArgs = require('Module:Arguments').getArgs | local getArgs = require('Module:Arguments').getArgs | ||
local | function p.build(args, config) | ||
if not args.nom or args.nom == '' then | |||
return '<div class="error">Nom requis pour l\'infobox</div>' | |||
end | |||
local root = mw.html.create('div') | |||
:addClass('infobox-table') | |||
:attr('role', 'table') | |||
-- En-tête avec nom | |||
local header = mw.html.create('div') | |||
:addClass('infobox-header') | |||
local | if args.image and args.image ~= '' then | ||
local imageDiv = mw.html.create('div') | |||
:addClass('infobox-image') | |||
if | |||
local imageSize = args.tailleimage or '280px' | |||
local imageCode = string.format('[[Fichier:%s|%s|center', args.image, imageSize) | |||
if args.legende and args.legende ~= '' then | |||
imageCode = imageCode .. '|' .. args.legende | |||
end | |||
imageCode = imageCode .. ']]' | |||
imageDiv:wikitext(imageCode) | |||
header:node(imageDiv) | |||
end | |||
local titleDiv = mw.html.create('div') | |||
:addClass('infobox-title') | |||
:wikitext(args.nom) | |||
header:node(titleDiv) | |||
if args.soustitre and args.soustitre ~= '' then | |||
local subtitleDiv = mw.html.create('div') | |||
:addClass('infobox-subtitle') | |||
:wikitext(args.soustitre) | |||
header:node(subtitleDiv) | |||
end | |||
root:node(header) | |||
-- Corps avec les champs | |||
local body = mw.html.create('div') | |||
:addClass('infobox-body') | |||
for _, section in ipairs(config.sections or {}) do | |||
if section.titre then | |||
local sectionDiv = mw.html.create('div') | |||
:addClass('infobox-section-title') | |||
:wikitext(section.titre) | |||
body:node(sectionDiv) | |||
end | |||
for _, champ in ipairs(section.champs or {}) do | |||
if args[champ.cle] and args[champ.cle] ~= '' then | |||
local rowDiv = mw.html.create('div') | |||
:addClass('infobox-row') | |||
local labelDiv = mw.html.create('div') | |||
:addClass('infobox-label') | |||
:wikitext(champ.label) | |||
local valueDiv = mw.html.create('div') | |||
:addClass('infobox-value') | |||
:wikitext(args[champ.cle]) | |||
rowDiv:node(labelDiv):node(valueDiv) | |||
body:node(rowDiv) | |||
end | |||
end | |||
end | end | ||
root:node(body) | |||
return tostring(root) | |||
return | |||
end | end | ||
return p | return p | ||