Moduł:Biuletyn
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
edytujOdczyt:
- 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