Modul:ÖDOK
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 .. ' [[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 .. ' </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 ' [[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