Moduł:Information

Z Nonsensopedii, polskiej encyklopedii humoru

Moduł generujący tabelkę w szablonie {{Information}} i ustawiający odpowiednie własności semantyczne. Instrukcję korzystania znajdziesz na stronie Nonsensopedia:Opisywanie grafik.

Zobacz też: Moduł:InformationProvider, który pobiera informacje o plikach.


local tools = require('Module:Narzędzia')
local props = {}
local rows = {}

-- funkcje lokalne

-- funkcja pomocnicza do scalania tabel atrybutów
local function appendProps(key, value)
	props[key] = props[key] or {}
	table.insert(props[key], value)
end

local function addRow(id, name, content, trid)
	local row = '<tr style="vertical-align: top"'
	
	if trid then
		row = row .. '; id="' .. trid .. '">'
	else
		row = row .. '>'
	end
	
	row = row .. '<td id="' .. id .. '" style="background: #ccf; text-align: right; padding-right: 0.4em; width: 15%; font-weight:bold">'
	row = row .. name .. '</td>'
	row = row .. '<td>' .. content .. '</td></tr>'
	table.insert(rows, row)
end

local function getTable()
	local s = 
		'<table class="information-template toccolours" style="width: 100%;" cellpadding="4">'
		.. table.concat(rows)
		.. '</table>'
	return s
end

local function processParts(args)
	local prows = {}
	
	local function pPart(num)
		local row = '<tr><td>' .. args['psource' .. num] .. '</td>'
		row = row .. '<tr><td>' .. (args['pauthor' .. num] or '') .. '</td>'
		local plic = (args['plic' .. num] or 'nolic')
	end
	
	if args['psource'] ~= nil then pPart('') end
	
	for i = 1, 50 do
		if args['psource' .. i] ~= nil then pPart(i)
		else break end
	end
end

-- funkcje eksportowane
local p = {}

-- zrób cuda
function p.information(frame)
	local args = tools.getArgs(frame)
	local demo = args['demo'] ~= nil
	
	-- caption
	if args['caption'] then
		appendProps('Ma podpis pliku', args['caption'])
		addRow('fileinfotpl_caption', 'Podpis', args['caption'])
	else
		appendProps('Nie ma podpisu pliku', true)
	end
	
	-- description
	if args['description'] then
		appendProps('Ma opis', args['description'])
		addRow('fileinfotpl_desc', 'Opis', args['description'])
	else
		appendProps('Nie ma opisu', true)
		addRow('fileinfotpl_desc', 'Opis', "''Brak''")
	end
	
	-- confirmation
	if args['confirmation'] then
		appendProps('Ma potwierdzenie licencji', args['confirmation'])
		addRow('fileinfotpl_confirmation', 'Potwierdzenie licencji', args['confirmation'])
	end
	
	mw.smw.set(props)
	return getTable()
end

return p