Moduł:Wybrane sekcje
Wygląd
Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Wybrane sekcje/opis
local p = {}
function get_title(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 get_title(page_name)
else
return work_title
end
end
function turn_into_link(link_target, text)
return '[[' .. link_target .. '|' .. text .. ']]'
end
function p.show_titles(frame)
if(not (frame.args[1] == 'dzieło' or frame.args[1] == 'osoba' or frame.args[1] == 'temat')) then
return 'Jako parametr należy podać jeden z następujących parametrów: "dzieło", "osoba" lub "temat".'
end
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==')
elseif(frame.args[1] == "osoba") then
table.insert(title_list, '==Wybrane osoby==')
elseif(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] .. ': ' .. turn_into_link(link, get_title(page_name)) .. '<br /><br />')
end
return table.concat(title_list, '\n')
end
function p.generate_titles_table(frame)
local no_of_templates = 53
local titles_table = {}
local link_base = 'Szablon:Główna/'
local current_week = tonumber(os.date('%V'))
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 = get_title(mw.title.new(work_title_link))
local person_title = get_title(mw.title.new(person_title_link))
local topic_title = get_title(mw.title.new(topic_title_link))
local styles_to_add = '"text-align: center;';
if week_number == current_week then
styles_to_add = styles_to_add .. ' background-color: var(--background-color-neutral, #eaecf0); color: var(--color-base, inherit);"'
end
table.insert(titles_table, '|-style = ' .. styles_to_add)
table.insert(titles_table, '|' .. week_number)
table.insert(titles_table, '|' .. turn_into_link(work_title_link, work_title))
table.insert(titles_table, '|' .. turn_into_link(person_title_link, person_title))
table.insert(titles_table, '|' .. turn_into_link(topic_title_link, topic_title))
end
table.insert(titles_table, '|}')
return table.concat(titles_table, '\n')
end
return p