Moduł:Grafika: Różnice pomiędzy wersjami
Z Nonsensopedii, polskiej encyklopedii humoru
Ostrzyciel (dyskusja • edycje) M (wsparcie dla końkursów) |
Ostrzyciel (dyskusja • edycje) (+autogalerie i naprawa zaklęć gendel) |
||
(Nie pokazano 11 wersji utworzonych przez 2 użytkowników) | |||
Linia 1: | Linia 1: | ||
local tools = require('Moduł:Narzędzia') |
local tools = require('Moduł:Narzędzia') |
||
local matma = require('Moduł:Matma') |
|||
local linki = require('Moduł:Linki') |
|||
local p = {} |
local p = {} |
||
local function formatFile(smwResult, args, makeStars, defSize) |
|||
local defSize = defSize or 350 |
|||
local podpis = smwResult.printouts['Ma podpis pliku'][1] or '' |
|||
local podpisNielink = linki._linksToPlain(podpis) |
|||
local autor = smwResult.printouts['Ma opis autorstwa'][1] or '' |
|||
local rozmiar = args['rozmiar'] or defSize .. 'x' .. defSize .. 'px' |
|||
local s = '<div class="center ' .. (args.contClass or '') .. |
|||
'" style="font-size: 0.9em; ' .. (args.contStyle or '') .. '">[[' .. |
|||
smwResult.fulltext .. '|center|' .. rozmiar .. '|' .. podpisNielink .. ']]' |
|||
if autor or podpis ~= '' then |
|||
s = s .. '<div style="margin-top: 10px">' .. podpis |
|||
if autor then |
|||
if podpis ~= '' then s = s .. '<br>' end |
|||
local forGender = (smwResult.printouts['Ma autora z Nonsensopedii'][1] or {}).fulltext or '' |
|||
s = s .. '<i>' .. mw.language.new('pl'):gender(forGender, 'Autor: ', 'Autorka: ') |
|||
.. autor .. '</i>' |
|||
end |
|||
s = s .. '</div>' |
|||
end |
|||
if makeStars then |
|||
local konkurs = args['konkurs'] or '' |
|||
local k_width = args['rozmiar_gwiazdek'] or '250px' |
|||
s = s .. '<div style="margin: 0.5em auto 0 auto; max-width: ' .. k_width .. ';">{{#ratepage:' .. |
|||
smwResult.fulltext .. '|' .. konkurs .. '|' .. k_width .. '}}</div>' |
|||
end |
|||
s = s .. '</div>' |
|||
return s |
|||
end |
|||
function p.grafika(frame) |
function p.grafika(frame) |
||
local args = tools.getArgs(frame) |
local args = tools.getArgs(frame) |
||
local file = args['1'] |
local file = matma._chooseRandom( args['1'] or '' ) |
||
if |
if file == nil or file == '' then return '' end |
||
file = mw.text.trim(file) |
|||
local fileLowerPrefix = mw.ustring.sub(mw.ustring.lower(file), 1, 5) |
local fileLowerPrefix = mw.ustring.sub(mw.ustring.lower(file), 1, 5) |
||
Linia 16: | Linia 52: | ||
'[[' .. file .. ']]', |
'[[' .. file .. ']]', |
||
'?Ma podpis pliku', |
'?Ma podpis pliku', |
||
'?Ma |
'?Ma opis autorstwa', |
||
'?Ma autora z Nonsensopedii' |
|||
} |
} |
||
if #smwResult.results ~= 1 then |
|||
local podpis = args['2'] or args['podpis'] or nil |
|||
error('Nie znaleziono pliku ' .. file) |
|||
if not podpis then |
|||
if #smwResult.results == 1 then |
|||
podpis = smwResult.results[1].printouts['Ma podpis pliku'][1] or '' |
|||
else |
|||
podpis = '' |
|||
end |
|||
end |
end |
||
local s = formatFile(smwResult.results[1], args, true, 350) |
|||
local autor = nil |
|||
return frame:preprocess(s) |
|||
if #smwResult.results == 1 then |
|||
end |
|||
autor = smwResult.results[1].printouts['Ma autora'][1] |
|||
end |
|||
function p.galeria(frame) |
|||
local args = { |
|||
'?Ma podpis pliku', |
|||
'?Ma opis autorstwa', |
|||
'?Ma autora z Nonsensopedii', |
|||
-- overridable args to SMW |
|||
limit = 500 |
|||
} |
|||
local imgSize = 200 |
|||
-- apply user's args |
|||
local rozmiar = args['rozmiar'] or '350x350px' |
|||
for k, v in pairs(tools.getArgs(frame)) do |
|||
local s = '<div class="center" style="font-size: 0.9em">[[' .. file .. |
|||
if k == 'rozmiar' then |
|||
'|center|' .. rozmiar .. ']]' |
|||
imgSize = tonumber(v) |
|||
elseif mw.ustring.find(v, '^%?') == nil then |
|||
if autor or podpis ~= '' then |
|||
if tonumber(k) == nil then |
|||
s = s .. '<div style="margin-top: 10px">' |
|||
args[k] = v |
|||
else |
|||
table.insert(args, v) |
|||
end |
|||
end |
|||
end |
end |
||
s = s .. podpis |
|||
local smwResult = mw.smw.getQueryResult(args) |
|||
if autor then |
|||
local s = '<div class="n-autogallery">' |
|||
if podpis ~= '' then s = s .. '<br>' end |
|||
local metaArgs = { |
|||
s = s .. '<i>' .. mw.language.new('pl'):gender(autor, 'Autor: ', 'Autorka: ') |
|||
contStyle = 'width: ' .. math.floor(imgSize * 1.1) .. 'px;', |
|||
.. autor .. '</i>' |
|||
contClass = 'n-autogallery-elem', |
|||
end |
|||
} |
|||
for _, res in ipairs(smwResult.results) do |
|||
if autor or podpis ~= '' then |
|||
s = s .. |
s = s .. formatFile(res, metaArgs, false, imgSize) |
||
end |
end |
||
s = s .. '</div>' |
|||
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) |
return frame:preprocess(s) |
||
end |
end |
Aktualna wersja na dzień 17:58, 17 sty 2022
Moduł dla {{Grafika}}
.
local tools = require('Moduł:Narzędzia')
local matma = require('Moduł:Matma')
local linki = require('Moduł:Linki')
local p = {}
local function formatFile(smwResult, args, makeStars, defSize)
local defSize = defSize or 350
local podpis = smwResult.printouts['Ma podpis pliku'][1] or ''
local podpisNielink = linki._linksToPlain(podpis)
local autor = smwResult.printouts['Ma opis autorstwa'][1] or ''
local rozmiar = args['rozmiar'] or defSize .. 'x' .. defSize .. 'px'
local s = '<div class="center ' .. (args.contClass or '') ..
'" style="font-size: 0.9em; ' .. (args.contStyle or '') .. '">[[' ..
smwResult.fulltext .. '|center|' .. rozmiar .. '|' .. podpisNielink .. ']]'
if autor or podpis ~= '' then
s = s .. '<div style="margin-top: 10px">' .. podpis
if autor then
if podpis ~= '' then s = s .. '<br>' end
local forGender = (smwResult.printouts['Ma autora z Nonsensopedii'][1] or {}).fulltext or ''
s = s .. '<i>' .. mw.language.new('pl'):gender(forGender, 'Autor: ', 'Autorka: ')
.. autor .. '</i>'
end
s = s .. '</div>'
end
if makeStars then
local konkurs = args['konkurs'] or ''
local k_width = args['rozmiar_gwiazdek'] or '250px'
s = s .. '<div style="margin: 0.5em auto 0 auto; max-width: ' .. k_width .. ';">{{#ratepage:' ..
smwResult.fulltext .. '|' .. konkurs .. '|' .. k_width .. '}}</div>'
end
s = s .. '</div>'
return s
end
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 opis autorstwa',
'?Ma autora z Nonsensopedii'
}
if #smwResult.results ~= 1 then
error('Nie znaleziono pliku ' .. file)
end
local s = formatFile(smwResult.results[1], args, true, 350)
return frame:preprocess(s)
end
function p.galeria(frame)
local args = {
'?Ma podpis pliku',
'?Ma opis autorstwa',
'?Ma autora z Nonsensopedii',
-- overridable args to SMW
limit = 500
}
local imgSize = 200
-- apply user's args
for k, v in pairs(tools.getArgs(frame)) do
if k == 'rozmiar' then
imgSize = tonumber(v)
elseif mw.ustring.find(v, '^%?') == nil then
if tonumber(k) == nil then
args[k] = v
else
table.insert(args, v)
end
end
end
local smwResult = mw.smw.getQueryResult(args)
local s = '<div class="n-autogallery">'
local metaArgs = {
contStyle = 'width: ' .. math.floor(imgSize * 1.1) .. 'px;',
contClass = 'n-autogallery-elem',
}
for _, res in ipairs(smwResult.results) do
s = s .. formatFile(res, metaArgs, false, imgSize)
end
s = s .. '</div>'
return frame:preprocess(s)
end
return p