Moduł:Grafika: Różnice pomiędzy wersjami

Z Nonsensopedii, polskiej encyklopedii humoru
M (Wycofano ostatnie edycje autorstwa Ryk2; przywrócono ostatnią wersję autorstwa Ostrzyciel.)
Znacznik: rewert
M (...potem to rozkminię)
Linia 35: Linia 35:
local rozmiar = args['rozmiar'] or '350x350px'
local rozmiar = args['rozmiar'] or '350x350px'
local s = '<div class="center" style="font-size: 0.9em">[[' .. file ..
local s = '<div class="center" style="font-size: 0.9em">[[' .. file ..
'|center|' .. rozmiar .. '|' .. podpis .. ']]'
'|center|' .. rozmiar .. ']]'
if autor or podpis ~= '' then
if autor or podpis ~= '' then

Wersja z 15:13, 11 lis 2020

Moduł dla {{Grafika}}.


local tools = require('Moduł:Narzędzia')
local matma = require('Moduł:Matma')
local p = {}

function p.grafika(frame)
	local args = tools.getArgs(frame)
	local file = matma._chooseRandom( args['1'] or '' )
	if file == nil or file == '' then return '' end
	
	local fileLowerPrefix = mw.ustring.sub(mw.ustring.lower(file), 1, 5)
	if fileLowerPrefix ~= 'plik:' and fileLowerPrefix ~= 'file:' then
		file = 'Plik:' .. file
	end
	
	local smwResult = mw.smw.getQueryResult{
		'[[' .. file .. ']]',
		'?Ma podpis pliku',
		'?Ma autora'
	}
	
	local podpis = args['2'] or args['podpis'] or nil
	if not podpis then
		if #smwResult.results == 1 then
			podpis = smwResult.results[1].printouts['Ma podpis pliku'][1] or ''
		else
			podpis = ''
		end
	end
	
	local autor = nil
	if #smwResult.results == 1 then
		autor = smwResult.results[1].printouts['Ma autora'][1]
	end
	
	local rozmiar = args['rozmiar'] or '350x350px'
	local s = '<div class="center" style="font-size: 0.9em">[[' .. file ..
		'|center|' .. rozmiar .. ']]'
		
	if autor or podpis ~= '' then
		s = s .. '<div style="margin-top: 10px">'
	end
		
	s = s .. podpis
	
	if autor then
		if podpis ~= '' then s = s .. '<br>' end
		s = s .. '<i>' .. mw.language.new('pl'):gender(autor, 'Autor: ', 'Autorka: ')
			.. autor .. '</i>'
	end
	
	if autor or podpis ~= '' then
		s = s .. '</div>'
	end
	
	local konkurs = args['konkurs'] or ''
	s = s .. '<div style="margin: 0.5em auto 0 auto; max-width: 250px;">{{#ratepage:' ..
		file .. '|' .. konkurs .. '|250px}}</div></div>'
	
	return frame:preprocess(s)
end

return p