« Module:Bandeau » : différence entre les versions
Aller à la navigation
Aller à la recherche
Modèle>Hlm Z. Aucun résumé des modifications |
Modèle>Hlm Z. Aucun résumé des modifications |
||
| Ligne 87 : | Ligne 87 : | ||
p['_ébauche'] = function (args) | p['_ébauche'] = function (args) | ||
local htmlTexte = mw.html.create() | local htmlTexte = mw.html.create() | ||
local donnees = { | |||
Italie = { | |||
icone = 'Italy looking like the flag.svg', | |||
sujet = 'l’[[Portail:Italie|Italie]]', | |||
selon = '; pour plus d’indications, visitez le [[Projet:Italie|projet Italie]]', | |||
categ = 'Italie' | |||
}, | |||
lac = { | |||
icone = 'Icon river reservoir.svg', | |||
sujet = 'un [[lac]]', | |||
categ = 'lac' | |||
} | |||
} | |||
local ebauches, gestionErreur = {}, {} | |||
for i, ebauche in ipairs(args) do | |||
if donnees[ebauche] then | |||
ebauches[i] = donnees[ebauche] | |||
else | |||
table.insert(gestionErreur, ebauche) | |||
end | |||
end | |||
local parametres = { | local parametres = { | ||
Version du 10 août 2014 à 12:44
La documentation pour ce module peut être créée à Module:Bandeau/doc
--Ce module implémente les modèles de bandeau.
--Standardisation des bandeaux ([[Catégorie:Modèle de bandeau]]).
--Créer une fonction exportable pour 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).
--Gérer les images multiples.
local p = {}
local format = mw.ustring.format
local cfg = {}
cfg.classeSimple = 'simple'
cfg.niveauNeutre = 'neutre'
cfg.formatLien = '[[Fichier:%s|40px|alt=%s|link=]]'
cfg.erreurArgument = 'Paramètre <code>|%s=</code> manquant'
local icones = {
grave = 'Fairytale no.svg',
['modéré'] = 'Emblem-important.svg',
information = 'Information icon.svg',
['ébauche'] = 'Nuvola apps kedit.svg'
}
function p._bandeau(argsBandeau)
args = argsBandeau
local res = mw.html.create('div')
res
:addClass('test-bandeau-' .. (args.classe or cfg.classeSimple))
:addClass('test-bandeau-niveau-' .. (args.niveau or cfg.niveauNeutre))
: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(mw.ustring.format(cfg.formatLien,
args.image,
args['légende'] or ''))
end
end
res
:tag('p')
:addClass('test-bandeau-texte')
:wikitext(args.texte)
:done()
:wikitext(args['supplément'])
return tostring(res)
end
function p._bandeauAvertissement(args)
local htmlTexte = mw.html.create()
htmlTexte
:tag('strong')
:wikitext(args.titre or erreur(true, 'titre'))
:done()
:tag('br')
:done()
:tag('span')
:css('font-size', '0.9em')
:css('line-height', '1.2em')
:wikitext(args.texte or erreur(true, 'texte'))
local parametres = {
classe = 'article',
niveau = args.niveau,
image = args['icône'] or args['icône-complexe'] or icones[niveau],
texte = tostring(htmlTexte),
['supplément'] = args['supplément']
}
return p._bandeau(parametres)
end
p['_ébauche'] = function (args)
local htmlTexte = mw.html.create()
local donnees = {
Italie = {
icone = 'Italy looking like the flag.svg',
sujet = 'l’[[Portail:Italie|Italie]]',
selon = '; pour plus d’indications, visitez le [[Projet:Italie|projet Italie]]',
categ = 'Italie'
},
lac = {
icone = 'Icon river reservoir.svg',
sujet = 'un [[lac]]',
categ = 'lac'
}
}
local ebauches, gestionErreur = {}, {}
for i, ebauche in ipairs(args) do
if donnees[ebauche] then
ebauches[i] = donnees[ebauche]
else
table.insert(gestionErreur, ebauche)
end
end
local parametres = {
classe = 'article',
niveau = args.niveau,
image = args['icône'] or args['icône-complexe'] or icones[niveau],
texte = args.texte,
['supplément'] = args['supplément']
}
return p._bandeau(parametres)
end
function erreur(gestionArg, texte)
local res = mw.html.create('span')
:addClass('error')
:wikitext('Erreur : ')
if gestionArg then
res:wikitext(format(cfg.erreurArgument, texte))
else
res:wikitext(texte)
end
return tostring(res)
end
-- Insertion dans la table p des fonctions appelées par les
-- modèles à l'aide d'un adaptateur de fonction.
function adaptateur(nomFonction)
return function (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] = mw.text.trim(val)
end
end
return p[nomFonction](args)
end
end
local nomsFonction = {'bandeau', 'bandeauAvertissement', 'ébauche'}
for _, nomFonction in ipairs(nomsFonction) do
p[nomFonction] = adaptateur('_' .. nomFonction)
end
return p