Moduł:Sterowanie SG
Z Nonsensopedii, polskiej encyklopedii humoru
local tools = require('Moduł:Narzędzia')
local p = {}
local settings = {}
local function mapTitlesToReadable(s, p1, p2)
local split = mw.text.split(s, '#', true)
local result = ''
for i, v in ipairs(split) do
local title = mw.text.trim(v)
if v ~= '' then
result = result .. '\n** [[' .. (p1 or '') .. title .. ']]'
if p2 ~= nil then
result = result .. ' ([[' .. p2 .. title .. ']])'
end
end
end
return result
end
local function parseSettings(frame)
local args = tools.getArgs(frame)
-- artykuł
local amode = args['art_mode'] or ''
local aset = {}
if amode == 'konkurs' then
aset.template = args['art_konkurs'] or 'Brak szablonu'
aset.title = args['art_title'] or 'Konkurs'
aset.readable = '[[' .. aset.template .. ']]'
elseif amode == 'anm' then
aset.template = 'ANM główna'
aset.arg = args['art_medal'] or ''
aset.title = args['art_title'] or 'Artykuł na medal'
aset.readable = '[[' .. aset.arg .. ']] ([[Szablon:ANM/' .. aset.arg .. ']])'
elseif amode == 'promowane' then
aset.template = 'Promowane'
aset.arg = args['art_promowane'] or 'NIE PODANO TYTUŁU ARTYKUŁU'
aset.title = args['art_title'] or 'Promowane'
aset.readable = mapTitlesToReadable(aset.arg, '', 'Szablon:Promowane/')
else -- zakładamy losowy anm
amode = 'losowy anm'
aset.template = 'ANM główna'
aset.title = args['art_title'] or 'Artykuł na medal'
aset.readable = 'jak losowy to losowy, nie?'
end
settings.amode = amode
settings.art = aset
-- grafika
local gmode = args['grafika_mode'] or ''
local gset = {}
if gmode == 'konkurs' then
gset.template = args['grafika_konkurs'] or 'Brak szablonu'
gset.title = args['grafika_title'] or 'Konkurs'
gset.readable = '[[' .. gset.template .. ']]'
elseif gmode == 'gnm' then
gset.template = 'Grafika główna'
gset.arg = args['grafika'] or ''
gset.title = args['grafika_title'] or 'Grafika na medal'
gset.readable = mapTitlesToReadable(gset.arg, ':Plik:')
elseif gmode == 'inna grafika' then
gset.template = 'Grafika główna'
gset.arg = args['grafika'] or ''
gset.title = args['grafika_title'] or 'Dobra grafika'
gset.readable = mapTitlesToReadable(gset.arg, ':Plik:')
else -- zakładamy losową grafikę
gmode = 'losowa grafika'
gset.template = 'Grafika główna'
gset.title = args['grafika_title'] or 'Losowa grafika'
gset.readable = 'jak losowa to losowa, nie?'
end
settings.gmode = gmode
settings.grafika = gset
end
local function infoPanel(frame)
local wt = '== Obecne ustawienia ==\n' ..
'=== Wyróżniony artykuł ===\n' ..
'* Tryb: ' .. settings.amode .. '\n' ..
'* Więcej informacji: ' .. settings.art.readable .. '\n' ..
'* Tytuł sekcji: ' .. settings.art.title .. '\n' ..
'=== Wyróżniona grafika ===\n' ..
'* Tryb: ' .. settings.gmode .. '\n' ..
'* Więcej informacji: ' .. settings.grafika.readable .. '\n' ..
'* Tytuł sekcji: ' .. settings.grafika.title .. '\n'
return frame:preprocess(wt)
end
local function saveSettings(settingsMap)
for k, v in pairs(settingsMap) do
mw.smw.subobject( {
['Steruje stroną'] = 'Strona główna',
['Steruje sekcją'] = k,
['Ma szablon'] = v.template,
['Ma argument'] = v.arg or '',
['Ma tytuł sekcji'] = v.title
} )
end
end
function p.main(frame)
parseSettings(frame)
saveSettings( {
['artykuł'] = settings.art,
['grafika'] = settings.grafika
} )
return infoPanel(frame)
end
return p