Modul:ÖDOK

Från Wikipedia

Dokumentation [visa] [redigera] [historik] [rensa sidcachen]


Denna modul används av {{Offentligkonstlista}} för att generera cellen i bildkolumnen.

local p = {}

function p.makeCell( frame )
    local pargs = frame:getParent().args
    local fop = p.fopOrNot( frame )
    text = ''
    if pargs['bild'] ~= "" and pargs['bild'] ~= nil then
        text = ' style="text-align:center; font-size: smaller;" | [[Bild:' .. pargs['bild'] .. '|120x120px|kantlinje|' .. pargs['titel'] .. ']]'
        if pargs['commonscat'] ~= ""  and pargs['commonscat'] ~= nil then
        	text = text .. '[[Commons:Category:' .. pargs['commonscat'] .. '|Fler bilder]]'
        end
        return text
    else
        text = text .. 'data-sort-value=""|<span style="float:right;vertical-align:middle;" class="odok">'
    end
    text = text .. p.warningButtons(frame, fop )
    if pargs['commonscat'] ~= ""  and pargs['commonscat'] ~= nil then
        text = text .. '&emsp;[[Bild:Filefind.svg|x14px|Se fler bilder av detta konstverk|link=commons:Category:' .. pargs['commonscat'] .. ']]'
    end
    if pargs['id'] ~= ""  and pargs['id'] ~= nil then
        text = text .. p.uploadButtons(frame, fop )
    end
    text = text .. '&nbsp;</span>'
    return text
end

function p.warningButtons( frame, fop )
    if fop == "unfree" then
        return '[[Bild:Stop x nuvola.svg|x13px|Det är troligen inte ok att ladda upp en bild av detta konstverk|link=commons:COM:FOP#Sweden]]'
    else
        return ''
    end
end

function p.uploadButtons( frame, fop )
    if fop == "free" then
        return '&emsp;[[Bild:Edit add.svg|x14px|Ladda upp en bild av detta konstverk|link=' .. p.campaignLink( frame, false ) .. ']]'
    else
        return ''
    end
end

function p.fopOrNot( frame )
    local pargs = frame:getParent().args
    local inomhus = pargs['inomhus']
    local fri = pargs['fri']
    if fri == "pd" or fri == "cc" then
        return 'free'
    else
        if inomhus == "ja" then
            return 'unfree'
        else
            return 'fop'
        end
    end
end

function p.campaignLink( frame, isFop )
    local pargs = frame:getParent().args
    --split id, same as {{#titleparts:{{{id|}}}
    local id = p.titleparts(pargs['id'])
    --make description
    local description = pargs['titel']
    if pargs['årtal'] ~= "" and pargs['årtal'] ~= nil then
        description = description .. ' (' .. pargs['årtal'] .. ')'
    end
    if pargs['konstnär'] ~= "" and pargs['konstnär'] ~= nil then
        description = description .. ' - ' .. pargs['konstnär']
    end
    if pargs['beskrivning'] ~= "" and pargs['beskrivning'] ~= nil then
        description = description .. '. ' .. pargs['beskrivning']
    end
    --
    url = '//commons.wikimedia.org/wiki/special:uploadWizard?campaign=' .. p.url_encode('ÖDOK') .. '&' .. p.url_encode('fields[0]') .. '=' .. p.url_encode(id[1]) .. '&' .. p.url_encode('fields[1]') .. '=' .. p.url_encode(id[2])
    if isFop then
        url = url .. '&' .. p.url_encode('fields[2]') .. '=FOP'
    end
    url = url .. '&descriptionlang=sv&description=' .. p.url_encode(description)
    if pargs['lat'] ~= "" and pargs['lat'] ~= nil then
        url = url .. '&lat=' .. pargs['lat'] .. '&lon=' .. pargs['lon']
    end
    if pargs['commonscat'] ~= ""  and pargs['commonscat'] ~= nil then
        url = url .. '&categories=' .. p.url_encode(pargs['commonscat'])
    end
    return url
end

function p.titleparts(str)
    a = {}
    if (str) then
        i = 1
        for value in string.gmatch(str, "[^/]+") do
            a[i] = value
            i = i + 1
        end
    end
    return a
end

function p.url_encode(str)
    if (str) then
        str = string.gsub (str, "\n", "\r\n")
        str = string.gsub (str, "([^%w %-%_%.%~])",
            function (c) return string.format ("%%%02X", string.byte(c)) end)
        str = string.gsub (str, " ", "+")
    end
    return str    
end
 
return p