Ustaw nowy numer bieżącego wydania Biuletynu

Moduł służy do wyświetlania strony głównej Biuletynu Stowarzyszenia. Głównym zadaniem jest operowanie na numerach wydań.

Informacje o bieżącym wydaniu i/lub datach wydawania są dostępne do edycji po kliknięciu powyższego przycisku.

Funkcje edytuj

Odczyt:

  • CurrentIssue - nazwa podstrony określająca wydanie bieżące, np. 2019-01
  • FutureIssue - nazwa podstrony określająca kolejne wydanie (robocze), np. 2019-02
  • RawData - dostęp w wikikodzie do zawartości tej strony z danymi

Generowanie elementów strony głównej:

  • ArchiveNavigation - generuje linki do poprzednich numerów
  • FutureIssueInfo - dane o przyszłym wydaniu w rubryce "wydanie w przygotowaniu"
  • CreateNewIssueLink - pokazuje link z preloadem szablonu biuletynu "wydanie w przygotowaniu" do stworzenia podstrony nowego numeru

local wydania_ = mw.loadData('Moduł:Biuletyn/wydania')
local wydania = wydania_['v1']
local wydania_v2 = wydania_['v2']

local lng = mw.language.getContentLanguage()

function StronaWydania(numer, rok)
	if numer < 10 then numer = 0 .. numer end
	return (rok or wydania["rok"]).."-"..numer
end

local Biuletyn = {}

--v2
function Biuletyn.CurrentIssue_v2(frame)
	for rok, wydania_roku in pairs(wydania_v2) do
		for n, wydanie in pairs(wydania_roku) do
			return frame:preprocess("[[Plik:"..wydanie[2]..".pdf|mały|centruj|Biuletyn WMPL Numer "..wydanie[1].."]]")
		end
	end
end

function Biuletyn.ArchiveGallery(frame)
	print_wikitext = {}
	
	for rok, wydania_roku in pairs(wydania_v2) do
		table.insert(print_wikitext, "==="..rok.."===\n<gallery mode=\"packed\" heights=\"220\">")
		
		for n, wydanie in pairs(wydania_roku) do
			table.insert(print_wikitext, "Plik:"..wydanie[2]..".pdf|Numer "..wydanie[1])
		end
		
		table.insert(print_wikitext, "</gallery>")
	end
	
	return frame:preprocess(table.concat(print_wikitext, "\n"))
end

--zwracają podstawowe dane
function Biuletyn.CurrentIssue()
	return StronaWydania(wydania["numer"])
end

function Biuletyn.FutureIssue(frame)
	local numer = wydania["ostatnie_numery"][wydania["rok"]] and 1 or wydania["numer"]+1
	local rok = wydania["rok"]+(numer == 1 and 1 or 0)
	if (frame) then return StronaWydania(numer, rok) else return StronaWydania(numer, rok), rok, numer end
end

function Biuletyn.RawData(what)
	return wydania[what.args[1]]
end

--zwracają elementy interfejsu
function Biuletyn.ArchiveNavigation(frame)
	ostatnie_numery = wydania["ostatnie_numery"]
	table.insert(ostatnie_numery, wydania["rok"], wydania["numer"])

	archiwum_wiersze_lat = {}
	
	for rok=2019, wydania["rok"] do
		wydania_z_roku = {}
		for wydanie=1, ostatnie_numery[rok] do table.insert(wydania_z_roku, "[[Biuletyn/" .. StronaWydania(wydanie, rok) .. "|"..wydanie.."]]") end
		if ostatnie_numery[rok] ~= 0 then archiwum_wiersze_lat[rok] = "'''"..rok.."''': "..table.concat(wydania_z_roku, " ") else archiwum_wiersze_lat[rok] = "" end
	end

	return frame:preprocess(table.concat(archiwum_wiersze_lat, "<br />", 2019, wydania["rok"]))
end

function Biuletyn.CurrentIssueDate()
	return lng:formatDate("d xg", wydania["rok"].."-"..wydania["data_wydania"][2].."-"..wydania["data_wydania"][1])
end

function Biuletyn.FutureIssueInfo()
	local podstrona, rok, numer = Biuletyn.FutureIssue()
	local data_wyd = rok.."-"..wydania["data_kolejnego_wydania"][2].."-"..wydania["data_kolejnego_wydania"][1]
	return "zamknięcie numeru: "..lng:formatDate("d xg", data_wyd.." -"..wydania["termin_przygotowania"].." day")..", data wydania: "..lng:formatDate("d xg", data_wyd)
end

function Biuletyn.CreateNewIssueLink()
	local podstrona, rok, numer = Biuletyn.FutureIssue()
	new_page = "Biuletyn/"..podstrona
	future = mw.title.new(new_page, 0)

	if(not future.exists) then
		return "[//pl.wikimedia.org/wiki/" .. new_page .. "?action=edit&preload=Biuletyn/preload&preloadparams%5B1%5D=" .. numer .. "&preloadparams%5B2%5D=" .. rok .. " Utwórz]"
	end
end

return Biuletyn