« 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 53 : Ligne 53 :


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


--Construction HTML du bandeau
res:addClass('test-bandeau-article test-bandeau-niveau-information plainlinks')
structureHtml('div', 'test-bandeau-article test-bandeau-niveau-information plainlinks')
if argument('image') then
if argument('image') then
structureHtml('div', 'test-bandeau-image', nil, args.image)
res
structureHtmlFin('div')
:tag('div')
:addClass('test-bandeau-image')
:wikitext(args.image)
end
end
structureHtml('p', 'test-bandeau-texte', nil, argument('texte') or erreur(p.erreurArgumentTitre))
res
structureHtmlFin('p')
:tag('p')
structureHtmlFin('div')
:addClass('test-bandeau-texte')
:wikitext(argument('texte') or erreur(p.erreurArgumentTitre))


return tab.concat()
return tostring(res)
end
end


function argument(parametre)
function argument(parametre)
Ligne 78 : Ligne 80 :
function erreur(texte)
function erreur(texte)
return '<span class="error">Erreur : ' .. texte .. '</span>'
return '<span class="error">Erreur : ' .. texte .. '</span>'
end
function structureHtml(balise, class, style, contenu)
tab.insert('<')
  .insert(balise)
if class then
tab.insert(' class="')
  .insert(class)
  .insert('"')
end
if style then
tab.insert(' style="')
  .insert(style)
  .insert('"')
end
tab.insert('>')
  .insert(contenu)
end
function structureHtmlFin(balise)
tab.minsert('</', balise, '>')
end
end


return p
return p

Version du 20 février 2014 à 13:49

--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 TableBuilder = require('Module:TableBuilder')

p.classStructureBoite = 'bandeau-simple plainlinks' p.styleStructureBoite = 'background:#f9f9f9;' 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) args = frame:getParent().args

--Code HTML brut if args.raw then res = frame:preprocess('' .. p._bandeau() .. '') .. '\n:Éxecution : ' .. os.clock() .. 's' return res else return p._bandeau() end end

function p._bandeau() --Construction HTML du bandeau local res = mw.html.create('div')

res :addClass(argument('class') or p.classStructureBoite) :cssText(tostring(argument('style'))) if argument('image') then res :tag('div') :addClass('test-bandeau-image') :wikitext(args.image) end res :tag('p') :addClass('test-bandeau-texte') :wikitext(argument('texte') or erreur(p.erreurArgumentTitre))

return tostring(res) 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 argument('image') then res :tag('div') :addClass('test-bandeau-image') :wikitext(args.image) end res :tag('p') :addClass('test-bandeau-texte') :wikitext(argument('texte') or erreur(p.erreurArgumentTitre))

return tostring(res) end

function argument(parametre) --Test de paramètre vide interprété par Lua if args[parametre] == then return nil end return args[parametre] end

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

return p