Module:Bandeau

De Lagny-sur-Marne Wiki
Révision datée du 9 février 2014 à 22:23 par Hlm Z. (discussion)
Aller à : navigation, rechercher

La documentation pour ce module peut être créée à Module:Bandeau/doc

--Ce module implémente le modèle {{Bandeau}}.
 
local p = {}

p.classStructureBoite = 'class="bandeau-simple plainlinks"'
p.styleStructureBoite = 'style="width:80%; margin:0 auto 1em; padding:0.5em; background:#f9f9f9; border-color:#aaa;"'
p.styleStructureImage = 'style="display:table-cell; vertical-align:middle; width:50px;"'
p.styleStructureTexte = 'style="display:table-cell; vertical-align:middle;"'

local TableBuilder = require('Module:TableBuilder')

function p.bandeau(frame)
	args = frame:getParent().args
	tab = TableBuilder.new()

	structureHtml('div', p.classStructureBoite, p.styleStructureBoite)
	structureHtml('div', nil, p.styleStructureImage, args.image)
	structureHtmlFin('div')
	structureHtml('p', nil, p.styleStructureTexte, args.texte)
	structureHtmlFin('p')
	structureHtmlFin('div')
	structureHtmlFin('div')

    --Code HTML brut
    if args.raw then
    	res = frame:preprocess('<nowiki>' .. tab.concat() .. '</nowiki>') .. '\n:Éxecution : ' .. os.clock() .. 's'
        return res
	else
		return tab.concat()
	end
end

function structureHtml(balise, class, style, contenu)
	tab.insert('<')
	   .insert(balise)

	if class and style then
	   tab.insert(' ')
	      .insert(class)
	      .insert(' ')
	      .insert(style)
	else
		tab.insert(' ')
		   .insert(class or style)
	end

	tab.insert('>')
	   .insert(contenu)
end

function structureHtmlFin(balise)
	tab.minsert('</', balise, '>')
end

return p