Przejdź do zawartości

Moduł:Wybrane sekcje

Z Wikicytatów, wolnej kolekcji cytatów

Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Wybrane sekcje/opis

local p = {}

function getTitle(page_name)
	page_content = page_name:getContent()
	local work_title = string.match(page_content, '{{center|(.*)}}')
	if work_title == nil then
		page_name = mw.title.new('Szablon:' .. string.match(page_content, '{{(.*)}}'))
		return getTitle(page_name)
	else
		return  work_title
	end
end

function p.show_titles(frame)
	local title_list = {}
	local no_of_templates = 53
	local link_base = 'Szablon:Główna/' .. frame.args[1] .. '/'
	local last_added_work = ''
	local current_week = tonumber(os.date('%V'))
	table.insert(title_list, '==Obecny tydzień==')
	table.insert(title_list, 'Obecny tydzień: ' .. current_week)
	table.insert(title_list, '----')
	page_name = mw.title.new(link_base .. current_week)
	page_content = frame:expandTemplate{title = (link_base .. current_week)}
	table.insert(title_list,  page_content .. '<br clear="all" />')
	if(frame.args[1] == "dzieło") then
		table.insert(title_list, '==Wybrane dzieła==')
	end
	if(frame.args[1] == "osoba") then
		table.insert(title_list, '==Wybrane osoby==')
	end
	if(frame.args[1] == "temat") then
		table.insert(title_list, '==Wybrane tematy==')
	end
	for week_number = 1, no_of_templates, 1 do
		table.insert(title_list, 'Numer tygodnia: ' .. week_number .. '<br />')
		link = link_base .. week_number
		page_name = mw.title.new(link)
		table.insert(title_list, frame.args[1] .. ': [[' .. link .. '|' .. getTitle(page_name) .. ']]<br /><br />')
	end
	return table.concat(title_list, '\n')
end

function turn_into_link(text, link_target)
	return '[[' .. link_target .. '|' .. text .. ']]'
end

function p.generate_titles_table(frame)
	local no_of_templates = 53
	local titles_table = {}
	local link_base = 'Szablon:Główna/'
	table.insert(titles_table, '{|class="wikitable"')
	table.insert(titles_table, '!Tydzień!!Dzieło!!Osoba!!Temat')
	table.insert(titles_table, '|-')
	for week_number = 1, no_of_templates, 1 do
		local work_title_link = link_base .. 'dzieło/' .. week_number
		local person_title_link = link_base .. 'osoba/' .. week_number
		local topic_title_link = link_base .. 'temat/' .. week_number
		
		local work_title = getTitle(mw.title.new(work_title_link))
		local person_title = getTitle(mw.title.new(person_title_link))
		local topic_title = getTitle(mw.title.new(topic_title_link))
		table.insert(titles_table, '|-')
		table.insert(titles_table, '|style = "text-align: center"|' .. week_number)
		table.insert(titles_table, '|style = "text-align: center"|' .. turn_into_link(work_title, work_title_link))
		table.insert(titles_table, '|style = "text-align: center"|' .. turn_into_link(person_title, person_title_link))
		table.insert(titles_table, '|style = "text-align: center"|' .. turn_into_link(topic_title, topic_title_link))
	end
	table.insert(titles_table, '|}')
	return table.concat(titles_table, '\n')
end

return p