Modul:UK navboks
Utseende
Denne modulen produserer innholdet til navigasjonsboksene for ukens konkurranse som består av lenker til konkurransene som har blitt holdt innenfor det året.
For det nåværende året viser modulen konkurranser som har blitt holdt opp til og inkludert den nåværende uken samt en boks med fremtidlige konkurranser.
Denne modulen benytter seg av underlister for å finne frem til navnene på konkurransene, disse listene er delt inn etter årstall: 2009 - 2010 - 2011 - 2012 - 2013
Eksempler:
{{#invoke:UK navboks|innhold|2012}}
gir samtlige konkurranser i 2012 :
- 1 Aktuelle vinteridretter
- 2 Stubber
- 3 Håndball-EM 2012
- 4 Sveriges kommuner
- 5 Bilder
- 6 Norske sportsutøvere på engelsk wikipedia
- 7 Ønskelisten
- 8 Spania og Portugal
- 9 Mest besøkte sider
- 10 Mat og drikke
- 11 Białystok
- 12 Årets hvem 1939–1966
- 13 Politiske partier
- 14 Friidrett
- 15 Opprydning
- 16 Kvinner i vitenskapen
- 17 Svenske tettsteder
- 18 Færøyene
- 19 Grunnlovsjubileet 2014
- 20 Korpsmusikk
- 21 Eurovision Song Contest 2012
- 22 Salpeterkrigen
- 23 EM i fotball 2012
- 24 Nye artikler
- 25 Kungliga Ingenjörsvetenskapsakademien
- 26 Byer i Tyrkia
- 27 Stubber
- 28 Hovedsteder i Afrika
- 29 Kjerneartikler
- 30 Sommer-OL 2012
- 31 Sommer-OL 2012
- 32 Delstater i USA
- 33 Norsk film
- 34 Referanser
- 35 Vietnam
- 36 Paralympics
- 37 Portaler
- 38 Flandern
- 39 Kandidater til Nobels fredspris
- 40 Aviser
- 41 Ordførere i Norge
- 42 Opprydning
- 43 Livets dans
- 44 Referanser
- 45 St. Petersburg
- 46 Oppdatering
- 47 Albania
- 48 Stortingsrepresentanter
- 49 EM i håndball
- 50 Belize og Guatemala
- 51 Julemat
- 52 Artikler om kulturminner i Norge
{{#invoke:UK navboks|lastweek|2012}}
gir antall uker i 2012: 52
Eksempler:
{{#invoke:UK navboks|contest_name|2019|3}}
gir navnet på konkurransen i mars 2019:
Biografier{{#invoke:UK navboks|contest_name|2019-03}}
gir navnet på konkurransen i mars 2019:
Biografier
local p = {}
p.lang = mw.getContentLanguage()
p.thisyear = tonumber(p.lang:formatDate( 'o', date, true))
p.thisweek = tonumber(p.lang:formatDate( 'W', date, true))
p.thismonth = tonumber(p.lang:formatDate( 'n', date, true))
function p.entry(year, week, topic)
local pagename = string.format("Wikipedia:Konkurranser/Ukens konkurranse %04d-%02d", year, week)
if year == p.thisyear and week == p.thisweek then
-- sjekk om siden eksisterer
local page = mw.title.new(pagename)
if not page.exists then
local s = "'''" .. week .. "''' " .. topic
s = s .. string.format(" ''<small>[{{fullurl:Wikipedia:Konkurranser/Ukens konkurranse %04d-%02d|action=edit&preload=Mal:Ukens_konkurranse_preload}} (opprett)]</small>", year, week)
return s
end
end
if topic == "" then
return "'''" .. week .. "''' (ikke bestemt)"
end
return "'''" .. week .. "''' [[" .. pagename .. "|" .. topic .. "]]"
end
function p.lastweek(frame)
local year = tonumber(frame.args[1])
local week = tonumber(p.lang:formatDate('W', year ..'-12-31', true))
if week == 1 then
-- vi hopper litt tilbake i tid :)
week = tonumber(p.lang:formatDate('W', year ..'-12-24', true))
end
return week
end
function p.innhold(frame)
local year = tonumber(frame.args[1])
local week = 1
local entries = {}
local endweek = p.lastweek(frame)
if year == p.thisyear then
endweek = p.thisweek
end
local modname = 'Module:Ukens konkurranse-liste ' .. year
local topics = require(modname)
for week = 1, endweek, 1
do
if not (topics[week] == nil) then
table.insert(entries, p.entry(year, week, topics[week]))
end
end
return "\n*" .. frame:preprocess(table.concat(entries, "\n*"))
end
function p.nesteuke(frame)
local week = tonumber(p.lang:formatDate('W', '+1 week', true))
local year = tonumber(p.lang:formatDate('o', '+1 week', true))
-- Sjekk om konkurransen er lagt inn i [[Module:Ukens konkurranse-liste YYYY]]
local modname = 'Module:Ukens konkurranse-liste ' .. year
local topics = require(modname)
local topic = topics[week]
if topic == '' then
return 'Mangler forslag <small>[[' .. modname .. '|(føy til forslag)]]</small>'
end
-- Sjekk om konkurransesiden eksisterer
local pagename = string.format("Wikipedia:Konkurranser/Ukens konkurranse %04d-%02d", year, week)
local page = mw.title.new(pagename)
if not page.exists then
return frame:preprocess(string.format("%s ''<small>[{{fullurl:Wikipedia:Konkurranser/Ukens konkurranse %04d-%02d|action=edit&preload=Mal:Ukens_konkurranse_preload}} (opprett)]</small>''", topic, year, week))
end
-- Konkurransen eksisterer
return string.format("[[%s|%s]]", pagename, topic)
end
-- Skriver ut lenke til månedens konkurranse for en gitt måned
function p.entry_mk(year, month, topic)
local key = string.format('%04d-%02d', year, month)
local pagename = string.format("Wikipedia:Konkurranser/Månedens konkurranse %s", key)
local monthName = p.lang:formatDate( 'F', key .. '-01' )
if year == p.thisyear and month == p.thismonth then
-- sjekk om siden eksisterer
local page = mw.title.new(pagename)
if not page.exists then
local s = monthName .. ": " .. topic
s = s .. string.format(" ''<small>[{{fullurl:Wikipedia:Konkurranser/Månedens konkurranse %s|action=edit&preload=Mal:Ukens_konkurranse_preload}} (opprett)]</small>", key)
return s
end
end
if topic == "" then
return monthName .. ": (ikke bestemt)"
end
return monthName .. ": [[" .. pagename .. "|" .. topic .. "]]"
end
-- Skriver ut lenker til alle månedens konkurranser for et gitt år
-- Til bruk i navboks.
function p.innhold_mk(frame)
local year = tonumber(frame.args[1])
local key, month
local entries = {}
local topics = require('Modul:Månedens konkurranse')
for month = 1, 12, 1
do
key = string.format('%04d-%02d', year, month)
if not (topics[key] == nil) then
table.insert(entries, p.entry_mk(year, month, topics[key]))
end
end
return "\n*" .. frame:preprocess(table.concat(entries, "\n*"))
end
function p.nestemaaned(frame)
local year = tonumber(p.lang:formatDate('o', '+1 month', true))
local month = tonumber(p.lang:formatDate('n', '+1 month', true))
local key = string.format('%04d-%02d', year, month)
-- Sjekk om konkurransen er lagt inn i [[Modul:Månedens konkurranse]]
local topics = require('Modul:Månedens konkurranse')
local topic = topics[key]
if topic == '' then
return 'Mangler forslag <small>[[Module:Månedens konkurranse|(føy til forslag)]]</small>'
end
-- Sjekk om konkurransesiden eksisterer
local pagename = string.format("Wikipedia:Konkurranser/Månedens konkurranse %s", key)
local page = mw.title.new(pagename)
if not page.exists then
return frame:preprocess(string.format("%s ''<small>[{{fullurl:Wikipedia:Konkurranser/Månedens konkurranse %s|action=edit&preload=Mal:Ukens_konkurranse_preload}} (opprett)]</small>''", topic, key))
end
-- Konkurransen eksisterer
return string.format("[[%s|%s]]", pagename, topic)
end
function p.current(frame)
local lang = mw.getContentLanguage()
local month = tonumber(lang:formatDate('n', now, true))
local year = tonumber(lang:formatDate('Y', now, true))
local key = string.format('%04d-%02d', year, month)
local topics = require( 'Modul:Månedens konkurranse')
local topic = topics[key]
return topic
end
function p.contest_name(frame)
local year
local month
if frame.args[1] == nil then
return p.current(frame)
end
if frame.args[2] == nil then
local spl = mw.text.split(frame.args[1], '-', true)
year = tonumber(spl[1])
month = tonumber(spl[2])
else
year = tonumber(frame.args[1])
month = tonumber(frame.args[2])
end
local key = string.format('%04d-%02d', year, month)
local topics = require( 'Modul:Månedens konkurranse')
local topic = topics[key]
return topic
end
return p