local p = {}
function trim(s)
return (mw.ustring.gsub(s, "^%s*(.-)%s*$", "%1"))
end
function xtrim(s,v)
local a = trim(s or '');
if a and a ~= '' then return a ; else return v; end;
end
function trim_color( s )
local a = trim( s )
--Removes # from value
if a:sub(1,1)=="#" then
return a:sub(2)
else
return a
end
end
function p.Open(options)
local id = options['id']
if id ~= nil
then id = ' id="'..id..'"'
else
id= ''
end
return '<table cellspacing="3px" class="infobox_v2" style="width:22em"'..id..'>'
end
function p.Close(options)
return '</table>'
end
function p.Title(options)
local colspan= tonumber( options[5] ) or 2;
local class_td = trim(options[3] or 'entete map');
local bg_color = trim_color(options[2] or 'E1E1E1');
local txt_color = trim_color(options[4] or '000000');
local res = mw.html.create( 'tr' )
:tag('th')
:addClass(class_td)
:attr('scope', 'col')
:css('line-height', '2em')
:css('background-color', '#'..bg_color)
:css('color', '#'..txt_color)
:attr('colspan', colspan)
:wikitext(trim(options[1] or ''))
:done()
return tostring(res)
end
function p.IcoTitle(options)
local colspan= tonumber( options[5] ) or 2;
local icon =trim(options[3] or 'Nuvola apps important.png');
local bg_color = trim_color(options[2] or 'E1E1E1');
local txt_color = trim_color(options[4] or '000000');
local aright = trim(options['right'] or '');
local ctxt1 = ''
local ctxt2 = ''
if aright ~= ''
then
ctxt1 = '[[file:'..icon..'|45x45px|center|alt=|link=]]';
ctxt2 = '[[file:Pix.gif|45x45px|center|alt=|link=]]';
else
ctxt1 = '[[file:Pix.gif|45x45px|center|alt=|link=]]';
ctxt2 = '[[file:'..icon..'|45x45px|center|alt=|link=]]';
end
local res = mw.html.create( 'tr' )
:tag('th')
:attr('colspan', colspan)
:tag('table')
:attr('cellpadding', 0)
:attr('cellspacing', 0)
:attr('width', '100%')
:css('text-align', 'center')
:tag('tr')
:addClass('entete defaut')
:css('background-color', '#'..bg_color)
:tag('td')
:attr('width', '10%')
:wikitext(ctxt1)
:done()
:tag('td')
:attr('width', '80%')
:css('color', '#'..txt_color)
:wikitext(trim(options[1]))
:done()
:tag('td')
:attr('width', '10%')
:wikitext(ctxt2)
:done()
:done() --tr
:done() -- tab
:done() --th
:done() --tr
return tostring(res)
end
function p.SubTitle(options)
local colspan= options[5] or 2;
local bg_color =trim_color(options[3] or 'E1E1E1');
local txt_color =trim_color(options[4] or '000000');
local showTitle = trim(options[2] or '');
if showTitle ~= ''
then
res = mw.html.create( 'tr' )
:tag('th')
:attr('scope', 'col')
:css('background-color', '#'..bg_color)
:css('color', '#'..txt_color)
:css('text-align', 'center')
:attr('colspan', colspan)
:wikitext(trim(options[1]))
:done()
return tostring(res)
else
return ''
end
end
function p.Line(options)
local colspan= tonumber( options[6] ) or 2;
local bg_color =xtrim(options[4] , 'F9F9F9');
bg_color = trim_color( bg_color )
local txt_color =xtrim(options[5] , '000000');
txt_color = trim_color( txt_color )
local showLine = trim(options[1] or '');
local content = trim(options[2] or '');
local textAlign = xtrim(options[3] , 'center');
local lineHeight = tonumber( options[7] ) or 0;
if content == ''
then content = showLine ;
end;
if showLine ~= ''
then
res = mw.html.create( 'tr' )
:tag('td')
:attr('scope', 'col')
:css('background-color', '#'..bg_color)
:css('color', '#'..txt_color)
:css('text-align', textAlign)
:attr('colspan', colspan)
:wikitext(content)
:done()
if lineHeight~=0
then
res:tag('tr'):tag('td'):css('height', lineHeight..'px')
end
return tostring(res)
else
return ''
end
end
function p.MixedLine(options)
local colspan= tonumber( options[5] ) or '0';
local bg_color = xtrim(options[6] , 'F3F3F3');
bg_color = trim_color( bg_color )
local txt_color = xtrim(options[7] , '000000');
txt_color = trim_color( txt_color )
local showLine = trim(options[2] or '');
local title = trim(options[1] or '');
local content = trim(options[3] or '');
local width = tonumber(options[4]) or 0;
if content == ''
then content = showLine ;
end;
if showLine ~= ''
then
local res = mw.html.create( 'tr' )
local resth = mw.html.create('th')
:attr('scope', 'row')
:css('background-color', '#'..bg_color)
:css('color', '#'..txt_color)
:css('text-align', 'right')
:wikitext(title)
:done()
local restd = mw.html.create( 'td')
-- :css('background-color', '#'..bg_color)
-- :css('color', '#'..txt_color)
:wikitext(content)
:done()
if width~=0
then
resth:attr('width', width..'%')
end
if colspan~=0
then
restd:attr('colspan', colspan)
end
res:node(resth)
res:node(restd)
return tostring(res)
else
return ''
end
end
function p.PrevNextLine(options)
local dprev = trim(options[1] or '');
local dnext = trim(options[2] or '');
local colspan = tonumber( options[5] ) or '2';
local bgc1 = 'transparent';
local bgc2 = 'transparent';
local content1 = '';
local content2 = '';
local link1 = trim(options[3] or '');
local link2 = trim(options[4] or '');
local arrowSize = tonumber(options[5]) or 13;
if dprev == '' and dnext == '' then return ''; end;
if dprev ~= ''
then
bgc1 = '#E6E6E6';
content1 = '[[File:Fleche-defaut-droite.png|'..arrowSize..'px|link='..link1..']]'
end;
if dnext ~= ''
then
bgc2 = '#E6E6E6';
content2 = '[[File:Fleche-defaut-gauche.png|'..arrowSize..'px|link='..link2..']]'
end;
res = mw.html.create( 'tr' )
:tag('td')
:attr('colspan',colspan)
:attr('align','center')
:tag('table')
:css('background-color', '#eeeeee')
:css('margin', '0 0 0 0')
:css('border-collapse', 'collapse')
:attr('cellspacing', 0)
:attr('width', '100%')
:tag('tr')
:tag('td')
:attr('width', '50%')
:tag('table')
:css('background-color', bgc1)
:css('margin', '0 0 0 0')
:css('border-collapse', 'collapse')
:attr('cellspacing', 0)
:attr('width', '100%')
:tag('tr')
:tag('td')
:attr('width', '20')
:attr('align', 'right')
:wikitext(content1)
:done()
:tag('td')
:css('text-align', 'right')
:css('font-size', '80%')
:wikitext(dprev)
:done()
:done()
:done()
:done()
:tag('td')
:attr('width', '50%')
:tag('table')
:css('background-color', bgc2)
:css('margin', '0 0 0 0')
:css('border-collapse', 'collapse')
:attr('cellspacing', 0)
:attr('width', '100%')
:tag('tr')
:tag('td')
:css('text-align', 'left')
:css('font-size', '80%')
:wikitext(dnext)
:done()
:tag('td')
:attr('width', '20')
:attr('align', 'left')
:wikitext(content2)
:done()
:done() -- tr
:done() --tab
:done()--td
:done() -- tr
:done() --tab
:done() -- td
return tostring(res)
end
function p.open(frame) return p.Open(frame.args) end
function p.close(frame) return p.Close(frame.args) end
function p.title(frame) return p.Title(frame.args) end
function p.icoTitle(frame) return p.IcoTitle(frame.args) end
function p.subTitle(frame) return p.SubTitle(frame.args) end
function p.line(frame) return p.Line(frame.args) end
function p.mixedLine(frame) return p.MixedLine(frame.args) end
function p.prevNextLine(frame) return p.PrevNextLine(frame.args) end
return p