« Module:Bandeau » : différence entre les versions

De Lagny-sur-Marne Wiki
Aller à la navigation Aller à la recherche
0x010D (discussion | contributions)
Aucun résumé des modifications
0x010D (discussion | contributions)
Aucun résumé des modifications
Ligne 11 : Ligne 11 :
local p = {}
local p = {}


local format = mw.ustring.format
p.classeSimple = 'simple'
p.classeSimple = 'simple'
p.niveauNeutre = 'neutre'
p.niveauNeutre = 'neutre'
Ligne 28 : Ligne 29 :
end
end


return _bandeau(args)
return p._bandeau(args)
end
end


function _bandeau(argsBandeau)
function p._bandeau(argsBandeau)
args = argsBandeau
args = argsBandeau
local res = mw.html.create('div')
local res = mw.html.create('div')
Ligne 39 : Ligne 40 :
:addClass('test-bandeau-niveau-' .. (args.niveau or 'neutre'))
:addClass('test-bandeau-niveau-' .. (args.niveau or 'neutre'))
:addClass('plainlinks')
:addClass('plainlinks')
:cssText(args.style)
:cssText(args.style) --Provisoire
 
if args.image then
if args.image then
local detectionImage = res:tag('div')
local imageFormat = res:tag('div')
:addClass('test-bandeau-image')
:addClass('test-bandeau-image')


if mw.ustring.sub(args.image, 1, 1) == '[' then
if mw.ustring.sub(args.image, 1, 1) == '[' then
detectionImage:wikitext(args.image)
imageFormat:wikitext(args.image)
else
else
detectionImage:wikitext(mw.ustring.format('[[Fichier:%s|40px|alt=%s|link=]]',
imageFormat:wikitext(format('[[Fichier:%s|40px|alt=%s|link=]]',
args.image,
args.image,
args['légende'] or ''))
args['légende'] or ''))
Ligne 59 : Ligne 60 :


return tostring(res)
return tostring(res)
end
function p.bandeauAvertissement(args)
local icones = {
grave = 'Fairytale no.svg',
['modéré'] = 'Emblem-important.svg',
information = 'Information icon.svg',
['ébauche'] = 'Nuvola apps kedit.svg'
}
local htmlTexte = mw.html.create()
:tag('strong')
:wikitext(args.titre or erreur('Paramètre |titre= introuvable'))
:done()
:tag('br')
:done()
:wikitext(args.texte)
local bandeau = p._bandeau({
classe = 'article',
niveau = args.niveau,
image = args['icône'] or icones[niveau],
texte = tostring(htmlTexte)
})
return bandeau
end
end



Version du 25 juillet 2014 à 21:56

--Ce module implémente le modèle Modèle:Bandeau.

--Standardisation des bandeaux (). --Créer une fonction exportable pour le modèle Modèle:Bandeau (ns:all). --Créer une fonction exportable pour les bandeaux d'article (ns:0). --Créer une fonction exportable pour les bandeaux de section (ns:0). --Créer une fonction exportable pour les bandeaux d'ébauche (ns:0). --Créer une fonction exportable pour les bandeaux de discussion (ns:1). --Créer une fonction exportable pour les bandeaux système (ns:8).

local p = {}

local format = mw.ustring.format p.classeSimple = 'simple' p.niveauNeutre = 'neutre' p.styleStructureImage = 'display:table-cell; vertical-align:middle; width:50px;' p.styleStructureTexte = 'display:table-cell; vertical-align:middle;' p.erreurArgumentTitre = 'Paramètre « texte » manquant'

function p.bandeau(frame) local args = {} local argsParent = frame:getParent().args

--Paramètres vides interprétés par Lua for cle, val in pairs(argsParent) do if val ~= then args[cle] = val end end

return p._bandeau(args) end

function p._bandeau(argsBandeau) args = argsBandeau local res = mw.html.create('div')

res :addClass('test-bandeau-' .. (args.classe or 'simple')) :addClass('test-bandeau-niveau-' .. (args.niveau or 'neutre')) :addClass('plainlinks') :cssText(args.style) --Provisoire

if args.image then local imageFormat = res:tag('div') :addClass('test-bandeau-image')

if mw.ustring.sub(args.image, 1, 1) == '[' then imageFormat:wikitext(args.image) else imageFormat:wikitext(format('%s', args.image, args['légende'] or )) end end res :tag('p') :addClass('test-bandeau-texte') :wikitext(args.texte or erreur(p.erreurArgumentTitre))

return tostring(res) end

function p.bandeauAvertissement(args) local icones = { grave = 'Fairytale no.svg', ['modéré'] = 'Emblem-important.svg', information = 'Information icon.svg', ['ébauche'] = 'Nuvola apps kedit.svg' }

local htmlTexte = mw.html.create() :tag('strong') :wikitext(args.titre or erreur('Paramètre |titre= introuvable')) :done() :tag('br') :done() :wikitext(args.texte)

local bandeau = p._bandeau({ classe = 'article', niveau = args.niveau, image = args['icône'] or icones[niveau], texte = tostring(htmlTexte) })

return bandeau end

function erreur(texte) return 'Erreur : ' .. texte .. '' end

function p.ebauche(frame) --Construction HTML du bandeau d'ebauche args = frame:getParent().args local res = mw.html.create('div')

res:addClass('test-bandeau-article test-bandeau-niveau-information plainlinks') if args.image then res :tag('div') :addClass('test-bandeau-image') :wikitext(args.image) end res :tag('p') :addClass('test-bandeau-texte') :wikitext(args.texte or erreur(p.erreurArgumentTitre))

return tostring(res) end

return p