Moduł:Sterowanie SG: Różnice pomiędzy wersjami

Z Nonsensopedii, polskiej encyklopedii humoru
(pewnie nie działa)
 
M (bo się admini wywalają o własne nogi)
 
(Nie pokazano 12 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 3: Linia 3:


local settings = {}
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 function parseSettings(frame)
Linia 8: Linia 24:
-- artykuł
-- artykuł
local amode = args['tryb_art'] or ''
local amode = args['art_mode'] or ''
local aset = {}
local aset = {}
if amode == 'konkurs' then
if amode == 'konkurs' then
aset.template = args['konkurs']
aset.template = args['art_konkurs'] or 'Brak szablonu'
aset.title = args['art_title'] or 'Konkurs'
aset.readable = '[[' .. aset.template .. ']]'
aset.readable = '[[' .. aset.template .. ']]'
elseif amode == 'anm' then
elseif amode == 'anm' then
aset.template = 'ANM główna'
aset.template = 'ANM główna'
aset.arg = args['anm']
aset.arg = args['art_medal'] or ''
aset.title = args['art_title'] or 'Artykuł na medal'
aset.readable = '[[' .. aset.arg .. ']] ([[Szablon:ANM/' .. aset.arg .. ']])'
aset.readable = '[[' .. aset.arg .. ']] ([[Szablon:ANM/' .. aset.arg .. ']])'
elseif amode == 'promowane' then
elseif amode == 'promowane' then
aset.template = 'Promowane'
aset.template = 'Promowane'
aset.arg = args['promowane']
aset.arg = args['art_promowane'] or 'NIE PODANO TYTUŁU ARTYKUŁU'
aset.title = args['art_title'] or 'Promowane'
aset.readable = '[[' .. aset.arg .. ']] ([[Szablon:Promowane/' .. aset.arg .. ']])'
aset.readable = mapTitlesToReadable(aset.arg, '', 'Szablon:Promowane/')
else -- zakładamy losowy anm
else -- zakładamy losowy anm
amode = 'losowy anm'
amode = 'losowy anm'
aset.template = 'ANM główna'
aset.template = 'ANM główna'
aset.title = args['art_title'] or 'Artykuł na medal'
aset.readable = 'jak losowy to losowy, nie?'
aset.readable = 'jak losowy to losowy, nie?'
end
end
settings.amode = amode
settings.amode = amode
settings.art = aset
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
end


Linia 35: Linia 82:
'=== Wyróżniony artykuł ===\n' ..
'=== Wyróżniony artykuł ===\n' ..
'* Tryb: ' .. settings.amode .. '\n' ..
'* Tryb: ' .. settings.amode .. '\n' ..
'* Więcej informacji: ' .. settings.art.readable .. '\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)
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
end


function p.main(frame)
function p.main(frame)
parseSettings(frame)
parseSettings(frame)
saveSettings( {
['artykuł'] = settings.art,
['grafika'] = settings.grafika
} )
return infoPanel(frame)
return infoPanel(frame)
end
end

Aktualna wersja na dzień 17:56, 15 lut 2022


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