Modul:UK forslag

Fra Wikipedia, den frie encyklopedi
Moduldokumentasjon

Denne modulen gir lenke til fremtidlige konkurranser et gitt antall uker eller måneder fremover i tid.

Hvis konkurransesiden ikke finnes vil modulen vise en lenke med [1] informasjon. Hvis uken/måneden står blank vil den vise lenke til navnelisten for konkurransene.

Eksempler ukens konkurranse:

  • {{#invoke:UK forslag|forslag|1}} lenke til neste ukes konkurranse : Ikke bestemt ennå (føy til forslag)
  • {{#invoke:UK forslag|forslag|5}} lenke til konkurranse om 5 uker : Ikke bestemt ennå (føy til forslag)
  • {{#invoke:UK forslag|forslag|10}} lenke til konkurranse om 10 uker : Ikke bestemt ennå (føy til forslag)
  • {{#invoke:UK forslag|forslag|-10}} lenke til konkurransen for 10 uker siden : Ikke bestemt ennå (føy til forslag)

Eksempler månedens konkurranse:

  • {{#invoke:UK forslag|forslag_mk|1}} lenke til neste måneds konkurranse : Norge / Skandinavia / Arktis (opprett)
  • {{#invoke:UK forslag|forslag_mk|5}} lenke til konkurranse om 5 måneder : Wiki Loves Monuments / Kulturminner (opprett)
  • {{#invoke:UK forslag|forslag_mk|10}} lenke til konkurranse om 10 måneder : Ikke bestemt ennå (føy til forslag)
  • {{#invoke:UK forslag|forslag_mk|-10}} lenke til konkurransen for 10 måneder siden : Norges geografi

Denne modulen benytter seg av underlister for å finne frem til navnene på konkurransene:

local p = {}
local lang = mw.getContentLanguage()

function p.forslag(frame)
    local diff = frame.args[1]
    local week = tonumber(lang:formatDate('W', diff..' week', true))
    local year = tonumber(lang:formatDate('o', diff..' week', true))
    local modname = 'Modul:Ukens konkurranse-liste ' .. year
    local topics = require(modname)
    local topic = topics[week]
	local pagename = string.format("Wikipedia:Konkurranser/Ukens konkurranse %04d-%02d", year, week)

    -- er tema bestemt?
    if topic == "" then
        return "''Ikke bestemt ennå'' <small>([[Modul:Ukens konkurranse-liste " .. year .. "|føy til forslag]])</small>"
    end

    -- sjekk om siden eksisterer
    local page = mw.title.new(pagename)
    if not page.exists then
        local s = topic
        s = s .. frame:preprocess(string.format("&#32;''<small>[{{fullurl:Wikipedia:Konkurranser/Ukens konkurranse %04d-%02d|action=edit&preload=Mal:Ukens_konkurranse_preload}} (opprett)]</small>''", year, week))
        return s
    end
    
    return "[[" .. pagename .. "|" .. topic .. "]]"
end


function p.forslag_mk(frame)
    local diff = frame.args[1]
    local month = tonumber(lang:formatDate('n', diff..' month', true))
    local year = tonumber(lang:formatDate('o', diff..' month', true))
    local key = string.format('%04d-%02d', year, month)
    local modname = 'Modul:Månedens konkurranse'
    local topics = require(modname)
    local topic = topics[key]
	local pagename = string.format("Wikipedia:Konkurranser/Månedens konkurranse %s", key)

    -- er tema bestemt?
    if topic == nil or topic == "" then
        return "''Ikke bestemt ennå'' <small>([[Modul:Månedens konkurranse|føy til forslag]])</small>"
    end

    -- sjekk om siden eksisterer
    local page = mw.title.new(pagename)
    if not page.exists then
        local s = topic
        s = s .. frame:preprocess(string.format("&#32;''<small>[{{fullurl:Wikipedia:Konkurranser/Månedens konkurranse %s|action=edit&preload=Mal:Ukens_konkurranse_preload}} (opprett)]</small>''", key))
        return s
    end
    
    return "[[" .. pagename .. "|" .. topic .. "]]"
end

return p