Modul:UK navboks
Hopp til navigering
Hopp til søk
Dokumentasjon for denne modulen kan opprettes på Modul:UK navboks/dok
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