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