« 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 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

--Ce module implémente les modèles de 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). --Gérer les images multiples.

local p = {}

local format = mw.ustring.format

local cfg = {}

cfg.classeSimple = 'simple' cfg.niveauNeutre = 'neutre' cfg.formatLien = '%s' cfg.erreurArgument = 'Paramètre |%s= 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’Italie', selon = '; pour plus d’indications, visitez le 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