Module:Infobox
Révision datée du 16 mars 2013 à 11:19 par Tpt (discussion) (Nouvelle page : local Infobox = {} function Infobox:new( args ) --Object initialisation local object = { text = "", title = mw.title.getCurrentTitle() } setmetata...)
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