Uwaga |
---|
Moduł:Kalendarium: Różnice pomiędzy wersjami
Przejdź do nawigacji
Przejdź do wyszukiwania
wikizrodla>Zdzislaw (zdjęcie także z Wikidata) |
m (1 wersja) |
(Brak różnic)
|
Wersja z 10:46, 19 lip 2021
Użycie
Moduł pozwala na wyświetlenie wybranego dnia z Kalendarium.
Opis parametrów
Standardowa składnia jest następująca:
{{#invoke:Kalendarium|dzien|nr_dnia(opcjonalny)|nr_miesiąca(opcjonalny)|zdjęcie(opcjonalny)|więcej(opcjonalny)}}
,
- gdzie:
nr_dnia
- dzień miesiąca, dla którego ma zostać wygenerowane Kalendarium,- można użyć wartości predefiniowanych
dzisiaj
lubjutro
(domyślna wartość todzisiaj
).
- można użyć wartości predefiniowanych
nr_miesiąca
- miesiąc, dla którego ma zostać wygenerowane Kalendarium, (domyślnie, przy braku wartości, bieżący miesiąc).zdjęcie
- umieszczenie tego słowa jako czwartego parametru powoduje wyszukanie (i jeżeli istnieje) i wyświetlenie miniatury zdjęcia pierwszego autora z danego wycinka Kalendarium.więcej
- wyświetla link w dolnym prawym rogu "więcej..." do strony Wedateka:Kalendarium.
W przypadku, gdy w Kalendarium brak jest danego dnia, zostanie wyszukany kolejny "zajęty" dzień, w przypadku gdy brak jest także jakiegokolwiek kolejnego dnia w Kalendarium zostanie wyświetlone Kalendarium ogólne dla danego miesiąca lub (w przypadku braku) pierwszy "zajęty" dzień z Kalendarium dla danego miesiąca. (zobacz ostatni przykład poniżej).
Przykład
wywołanie | wynik |
---|---|
Dla bieżącego dnia:{{#invoke:Kalendarium|dzien|dzisiaj}} lub{{#invoke:Kalendarium|dzien}}
|
|
Dla bieżącego dnia:{{#invoke:Kalendarium|dzien|dzisiaj||zdjęcie|więcej}} lub{{#invoke:Kalendarium|dzien|||zdjęcie|więcej}} ze zdjęciem
|
|
Dla dnia jutrzejszego:{{#invoke:Kalendarium|dzien|jutro}}
|
|
Dla dowolnego dnia bieżącego miesiąca (np. 15-tego):{{#invoke:Kalendarium|dzien|15}}
|
|
Dla dowolnego dnia danego miesiąca (np. 14 czerwca):{{#invoke:Kalendarium|dzien|14|06}}
|
|
Dla dowolnego dnia danego miesiąca ze zdjęciem (np. 14 czerwca):{{#invoke:Kalendarium|dzien|14|06|zdjęcie}}
|
|
Chcemy wyświetlić Kalendarium ogólne dla bieżącego miesiąca, (lub w przypadku braku dla 1-szego dnia miesiąca), wpisujemy nieistniejący dzień (np. 39): {{#invoke:Kalendarium|dzien|39}}
|
|
Chcemy wyświetlić Kalendarium ogólne dla miesiąca (np. dla marca), wpisujemy nieistniejący dzień (np. 35 marzec): {{#invoke:Kalendarium|dzien|35|03}}
|
|
-- Funkcja dzien zwraca jeden dzień z kalendarium
local p = {}
function p.dzien( frame )
local polskie_nazwy = mw.language.new( 'pl' )
local dzien = frame.args[1]
local miesiac = frame.args[2]
local zdjecie = frame.args[3]
local more = frame.args[4]
local dzien_liczba = 1
local miesiac_slownie = 'styczeń'
-- dodatkowa zmienna 'dzien_liczba' aby pozostawić oryg. 'dzien' z parametru
-- do wygenerowania miesiąca (dla jutra) oraz ewent. przyszłych funkcji
-- 'miesiac_slownie' j.w.
if dzien == 'dzisiaj' or dzien == nil or dzien == '' then
dzien_liczba = tonumber(polskie_nazwy:formatDate( 'j','now',true ))
elseif dzien == 'jutro' then
dzien_liczba = tonumber(polskie_nazwy:formatDate( 'j','now + 1 day',true ))
elseif tonumber(dzien) ~= nil then
dzien_liczba = tonumber(dzien)
end
if tonumber(miesiac) == nil or miesiac == '' then
if dzien == 'jutro' then
miesiac_slownie = polskie_nazwy:formatDate( 'F','now + 1 day',true )
else
miesiac_slownie = polskie_nazwy:formatDate( 'F','now',true )
end
else
if tonumber(miesiac)>0 and tonumber(miesiac) <13 then
miesiac_slownie = polskie_nazwy:formatDate( 'F','2000-'..miesiac..'-01',true )
end
end
local kalend_miesiac = frame:expandTemplate{ title = 'Rocznica/' .. miesiac_slownie, args = {} }
local dl = string.len( kalend_miesiac )
local pocz = 1
while (dzien_liczba <= 31) do
pocz = string.find( kalend_miesiac, '%* ' .. dzien_liczba .. ' ')
if pocz ~= nil then break end
dzien_liczba = dzien_liczba + 1
end
if pocz==nil then
pocz = 1
end
local kalend_dzien = string.sub( kalend_miesiac, pocz)
local kon = string.find( kalend_dzien, '\n%* ',2)
if kon==nil then
kon = string.len( kalend_dzien )
end
kalend_dzien = string.sub( kalend_dzien, 1, kon-1)
--dodaje zejęcie pierwszego autora w danym okresie kalendarium (jeżeli istnieje)
local zdjecie_code = ''
if zdjecie == 'zdjęcie' then
local autor_zdjecie = mw.ustring.match( kalend_dzien, 'Autor:[^|^%]]*')
if autor_zdjecie ~= nil then
local autor_link = '[[' .. autor_zdjecie .. '|' .. mw.ustring.gsub(autor_zdjecie, 'Autor:', '') .. ']]'
local autora = mw.title.makeTitle( '', autor_zdjecie )
local autora_content = autora:getContent()
local test_zdjecia = mw.ustring.match(autora_content, '|[%s]-Grafika[%s]-=[%s]-.-|')
if test_zdjecia == nil then
zdjecia_link = ''
-- jeżeli nie ma zdjęcia w parametrze na stronie Autora spróbuj pobrać zdjęcie z Wikidata
local itemid = mw.wikibase.getEntityIdForTitle( autor_zdjecie )
if itemid then
local item = mw.wikibase.getEntityObject( itemid )
if item then
local prop = item:formatPropertyValues('P18').value
if prop ~= '' then
zdjecia_link = prop
end
end
end
else
zdjecia_link = mw.text.trim(mw.ustring.sub(test_zdjecia, mw.ustring.find( test_zdjecia, '=' ) + 1, -2) )
end
if zdjecia_link ~= nil and zdjecia_link ~= '' then
zdjecie_code = '\n<gallery heights=150px widths=105px mode="packed-hover" style="float:right;">\n'
zdjecie_code = zdjecie_code .. 'File:' .. zdjecia_link .. '|link=' .. autor_zdjecie .. '|' .. autor_link .. "\n"
zdjecie_code = zdjecie_code .. '</gallery>\n'
end
end
end
if more == 'więcej' then
kalend_dzien = kalend_dzien .. '{{clear}}\n<div style="font-size:85%;text-align:right">[[Wikiźródła:Kalendarium#' .. mw.ustring.upper(mw.ustring.sub(miesiac_slownie,1,1)) .. mw.ustring.sub(miesiac_slownie,2) .. '|więcej...]]</div>'
end
return frame:preprocess{ text = zdjecie_code .. kalend_dzien}
end
return p