Module:Infobox
Apparence
La documentation pour ce module peut être créée à Module:Infobox/doc
local Infobox = {}
function Infobox:new( args )
--Object initialisation
local object = {
text = "",
title = mw.title.getCurrentTitle()
}
setmetatable(object, {
__index = Infobox,
__tostring = function( self ) return self:tostring() end
})
--Open main div
local str = '<div class="infobox_v3 '
if args.class then
str = str .. args.class
end
str = str ..'"'
if args.width then
str = str .. ' style="width: ' .. args.width .. 'em"'
end
object.text = str .. '>'
return object
end
function Infobox:addTitle( args )
local str = '<p class="entete '
if args.icon then
str = str .. 'icon ' .. args.icon
end
if args.class then
str = str .. args.class
end
str = str .. '"'
if args.background then
local style = {}
style['background-color'] = args.background
if args.border-color then
style['border-color'] = args.border-color
else
style['border-color'] = args.background
end
if args.color then
style['color'] = args.color
end
str = str .. 'style="' .. formatStyle( style ) .. '"'
end
str = str .. '>'
if args.text then
str = str .. args.text
else
str = str .. self.title.text
end
self.text = self.text .. str .. '</p>'
end
function Infobox:tostring()
return self.text .. '</div>'
end
--Create a style property value from an array CSS property = CSS value
function formatStyle( args )
local elems = {}
for args = key, val do
elems.add( key .. ':' .. val )
end
return table.concat( elems, '; ' )
end
local p = {}
function p.new( args )
return Infobox:new( args )
end
function p.test()
local a = Infobox:new( {} )
a:addTitle( {} )
return a
end
return p