Vorlagenprogrammierung | Diskussionen | Lua | Test | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
Diese Seite enthält Code in der Programmiersprache Lua. Einbindungszahl Cirrus
local p = {}
p.certicon = function (frame, certification, icontype, size)
local certtable = {
["S"] = {"silver", "silber"},
["G"] = {"gold", "gold"},
["P"] = {"platinum", "platin"},
["D"] = {"diamond", "diamant"}
}
local numbers = { "", "Double", "Triple", "Quadruple", "Quintuple", "Sextuple", "Septuple", "Octuple", "Nonuple", "Decuple" }
local numbers2 = { "", "Doppel", "Drei", "Vier", "Fünf", "Sechs", "Sieben", "Acht", "Neun", "Zehn", "Elf", "Zwölf" }
local certraw = certification or frame.args[1]
local icontype = icontype or frame.args["icontype"]
-- delete strip markers
if certraw then
certraw = mw.text.unstrip( certraw )
else
certraw = ""
end
local icon
if string.match (certraw, "%[%[Datei:") or string.match (certraw, "%[%[File:") or string.match (certraw, "%[%[Bild:") then
icon = certraw
end
local certraw2
if string.match (certraw, ".%+") then
certraw, certraw2 = string.match (certraw, "(.+)%+(.+)")
end
-- find brackets
local brackets
local brackets2
if string.match (certraw, "%(") then
certraw, brackets = string.match (certraw, "(.+)%((.-)%)")
end
if certraw2 then
if string.match (certraw2, "%(") then
certraw2, brackets2 = string.match (certraw2, "(.+)%((.-)%)")
end
end
local number
local number2
if string.match(certraw, "%d+") then
number = string.match(certraw, "(%d+)")
else
number = 1
end
if certraw2 then
number2 = string.match(certraw2, "(%d+)") or 1
end
local certname
local certname2
for key, value in pairs (certtable) do
if string.match (certraw, key) then
certname = key
end
if certraw2 then
if string.match (certraw2, key) then
certname2 = key
end
end
end
local oldicon
local tooltip
local tooltip2
local newicon
local texticon
local supicon
local caption
local caption2
local capcertname
local capcertname2
if certtable[certname] then
capcertname = string.gsub(certtable[certname][2], "^%l", string.upper)
else
capcertname = certname
end
if certtable[certname2] then
capcertname2 = string.gsub(certtable[certname2][2], "^%l", string.upper)
else
capcertname2 = certname2 or ""
end
-- direct files
if not certtable[certname] then
icon = certraw
else
-- create tooltip and caption
if tonumber(number) > 1 then
if tonumber(number) == 2 then
tooltip = numbers2[tonumber(number)] .. certtable[certname][2]
elseif tonumber(number) < 13 then
tooltip = numbers2[tonumber(number)] .. "fach" .. certtable[certname][2]
else
tooltip = number .. "-fach-" .. capcertname
end
caption = number .. "× " .. capcertname
else
tooltip = capcertname
caption = tooltip
end
if brackets then
tooltip = tooltip .. " (" .. brackets .. ")"
caption = caption .. " (" .. brackets .. ")"
end
if certraw2 then
if tonumber(number2) > 1 then
if tonumber(number2) == 2 then
tooltip2 = numbers2[tonumber(number2)] .. certtable[certname2][2]
elseif tonumber(number2) < 13 then
tooltip2 = numbers2[tonumber(number2)] .. "fach" .. certtable[certname2][2]
else
tooltip2 = number2 .. "-fach-" .. capcertname2
end
caption2 = number2 .. "× " .. capcertname2
else
tooltip2 = capcertname2
caption2 = tooltip2
end
end
if brackets2 then
tooltip2 = tooltip2 .. " (" .. brackets2 .. ")"
caption2 = caption2 .. " (" .. brackets2 .. ")"
end
if tooltip2 then
tooltip = tooltip .. " + " .. tooltip2
end
if caption2 then
caption = caption .. " + " .. caption2
end
-- create old files
local certfile = ""
local certfile2 = ""
--[[ if tonumber(number) > 1 then ONLY SINGLE FILES
if tonumber(number) < 11 then
certfile = numbers[tonumber(number)] .. " "
else
certfile = "Decuple "
end
end
if certraw2 then
if tonumber(number2) > 1 then
if tonumber(number2) < 11 then
certfile2 = numbers[tonumber(number2)] .. " "
else
certfile2 = "Decuple "
end
end
end ]]
certfile = certfile .. certtable[certname][1] .. " record icon.svg"
if certraw2 and certtable[certname2] then
certfile = certfile .. "|15px|link=]][[File:" .. certfile2 .. certtable[certname2][1] .. " record icon.svg"
end
-- create old icon style
oldicon = "<div class='charts-certc'>[[File:" .. certfile .. "|15px|link=|alt=" .. tooltip .. "]]"
oldicon = oldicon .. "<span class='charts-certt'>" .. tooltip .."<i></i></span></div>"
-- create new icon style
if not size then
size = "17"
end
newicon = "<div class='charts-certc'><div class='charts-cert'>[[File:" .. certtable[certname][1] .. " record icon2.svg|"
newicon = newicon .. size .. "px|link=|alt=" .. tooltip .. "]]"
if tonumber(number) then
if tonumber(number) > 1 then
newicon = newicon .. "<div class='charts-certn'"
if tonumber(number2) then
newicon = newicon .. " style='left:50%; z-index:10;'"
end
newicon = newicon .. ">×" .. number .. "</div>"
end
end
newicon = newicon .. "</div>"
if certraw2 and certtable[certname2] then
newicon = newicon .. "<div class='charts-cert' style='margin-left:-8px'>[[File:" .. certtable[certname2][1] .. " record icon2.svg|"
newicon = newicon .. size .. "px|link=|alt=" .. tooltip .. "]]"
if tonumber(number2) then
if tonumber(number2) > 1 then
newicon = newicon .. "<div class='charts-certn'>×" .. number2 .. "</div>"
end
end
newicon = newicon .. "</div>"
end
newicon = newicon .. "<span class='charts-certt'>" .. tooltip .."<i></i></span></div>"
-- create sup icon style
supicon = "<div class='charts-certc'><div class='charts-cert'>[[File:" .. certtable[certname][1] .. " record icon.svg|15px|link=|alt=" .. tooltip .. "]]"
if tonumber(number) then
if tonumber(number) > 1 then
supicon = supicon .. "<div class='charts-certn'"
if tonumber(number2) then
supicon = supicon .. " style='left:50%; z-index:10;'"
end
supicon = supicon .. ">×" .. number .. "</div>"
end
end
supicon = supicon .. "</div>"
if certraw2 and certtable[certname2] then
supicon = supicon .. "<div class='charts-cert' style='margin-left:-5px'>[[File:" .. certtable[certname2][1] .. " record icon.svg|15px|link=|alt=" .. tooltip .. "]]"
if tonumber(number2) then
if tonumber(number2) > 1 then
supicon = supicon .. "<div class='charts-certn'>×" .. number2 .. "</div>"
end
end
supicon = supicon .. "</div>"
end
supicon = supicon .. "<span class='charts-certt'>" .. tooltip .."<i></i></span></div>"
-- create text icon
texticon = "[[File:" .. certfile .. "|15px|link=]] " .. caption
end
local ret = ""
if icon then
ret = ret .. "<div style='display:inline-block;'>" .. icon .. "</div>"
elseif icontype == "text" then
ret = texticon
elseif icontype == "sup" then
ret = supicon
elseif icontype == "new" then
ret = ret .. newicon
elseif icontype == "old" then
ret = ret .. oldicon
else
ret = ret .. supicon
end
return ret
end
return p