Moduł:Pdmix
Generuje komunikat dla Szablonu {{MixPD}}
function split2D(source, delimiter1, delimiter2)
local elements = {}
local pattern2 = '([^'..delimiter2..']+)'
local pattern12 = '[^'..delimiter1..']+'..delimiter1
local pattern11 = delimiter1..'[^'..delimiter2..']+'
string.gsub(source, pattern2, function(value) elements[string.gsub(value,pattern11,"")] = string.gsub(value,pattern12,""); end);
return elements
end
function pdtext( frame )
local argumenty = frame.args
local args = {}
if argumenty[2] == nil and argumenty[1] ~= nil and argumenty[1] ~= '' and (argumenty[1]:sub(1,3) == "a1=" or argumenty[1]:sub(1,3) == "t1=") then
args=split2D(argumenty[1], "=", ";")
else
args=frame.args
end
local wynik = "''Tekst jest '''[[Wikiźródła:Prawa autorskie|własnością publiczną]]''' ('''public domain'''). Szczegóły licencji na "
local aut={}
local tlum={}
for k,v in pairs(args) do
if (k == 1 or string.sub(k,1,1) == 'a') and (v ~= '' and v ~= nil) then
table.insert (aut,v)
end
if (k == 2 or string.sub(k,1,1) == 't') and (v ~= '' and v ~= nil) then
table.insert (tlum,v)
end
end
if (#aut + #tlum) > 1 then
wynik = wynik .. "stronach "
else
wynik = wynik .. "stronie "
end
if #aut > 1 then
wynik = wynik .. "autorów:"
elseif #aut == 1 then
wynik = wynik .. "autora:"
end
for k,v in pairs(aut) do
wynik = wynik .. " [[Autor:" .. v .. "|" .. v .. "]],"
end
if #aut > 0 then
wynik = string.sub( wynik, 1, #wynik-1 )
end
if #tlum > 0 and #aut > 0 then
wynik = wynik .. " i"
else
wynik = wynik .. " "
end
if #tlum > 1 then
wynik = wynik .. " tłumaczy:"
elseif #tlum == 1 then
wynik = wynik .. " tłumacza:"
end
for k,v in pairs(tlum) do
wynik = wynik .. " [[Autor:" .. v .. "|" .. v .. "]],"
end
wynik = string.sub( wynik, 1, #wynik-1 )
wynik = wynik .. ".''"
return wynik
end
function pdkod ( pdkomunikat )
local div_image = mw.html.create( 'div' )
div_image
:css( 'float', 'left' )
:wikitext( '[[Image:PD-icon.svg|20px|alt=|link=]]' )
local div_main = mw.html.create( 'div' )
div_main
:css( {['text-align']='center', ['font-size']='90%'} )
:node(div_image)
:wikitext( pdkomunikat )
local div_ramka = mw.html.create( 'div' )
div_ramka
:attr('id', 'Template_law')
:addClass( 'toccolours' )
:css( 'border-width', '1px 0 0 0' )
:node(div_main)
local kod = '<br>' .. tostring(div_ramka:allDone())
return kod
end
local p = {}
function p.pdtext( frame )
return pdkod( pdtext( frame:getParent() ) )
end
return p