Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 22: | Zeile 22: | ||
return serie[code] |
return serie[code] |
||
+ | end |
||
+ | |||
+ | local function formatAnmerkung(text) |
||
+ | return " " .. "(" .. text .. ")" |
||
+ | end |
||
+ | |||
+ | local function getAnmerkung(code) |
||
+ | local t = { code = "", anmerkung = "" } |
||
+ | local i = 0 |
||
+ | |||
+ | for s in mw.text.gsplit(code, "%s") do |
||
+ | if i == 0 then |
||
+ | t.code = s |
||
+ | i = i + 1 |
||
+ | else |
||
+ | t.anmerkung = formatAnmerkung(s) |
||
+ | break |
||
+ | end |
||
+ | end |
||
+ | |||
+ | return t |
||
end |
end |
||
Zeile 56: | Zeile 77: | ||
function p.Infobox(frame) |
function p.Infobox(frame) |
||
local args = frame:getParent().args |
local args = frame:getParent().args |
||
− | local eintrag |
+ | local parts, eintrag -- Strings |
local liste = "" |
local liste = "" |
||
for code in mw.text.gsplit(args[1], ',', true) do |
for code in mw.text.gsplit(args[1], ',', true) do |
||
− | + | parts = getAnmerkung(code) |
|
+ | eintrag = getEintrag(parts.code) |
||
if not eintrag then |
if not eintrag then |
||
− | liste = liste .. errMsgCodeFalsch(code) .. "<br />" |
+ | liste = liste .. errMsgCodeFalsch(code) .. parts.anmerkung .. "<br />" |
else |
else |
||
− | liste = liste .. "[[" .. eintrag.titel .. "|" .. eintrag.kurz .. "]]<br />" |
+ | liste = liste .. "[[" .. eintrag.titel .. "|" .. eintrag.kurz .. "]]" .. parts.anmerkung .. "<br />" |
end |
end |
||
end |
end |
Version vom 3. März 2020, 15:49 Uhr
Die Dokumentation für dieses Modul kann unter Modul:Serie/Doku erstellt werden
local p = {}
local serie = {
["1"] = { titel = "Professor Layton und das geheimnisvolle Dorf", kurz = "Das geheimnisvolle Dorf" },
["2"] = { titel = "Professor Layton und die Schatulle der Pandora", kurz = "Die Schatulle der Pandora"},
["3"] = { titel = "Professor Layton und die verlorene Zukunft", kurz = "Die verlorene Zukunft"},
["4"] = { titel = "Professor Layton und der Ruf des Phantoms", kurz = "Der Ruf des Phantoms"},
["5"] = { titel = "Professor Layton und die Maske der Wunder", kurz = "Die Maske der Wunder"},
["6"] = { titel = "Professor Layton und das Vermächtnis von Aslant", kurz = "Das Vermächtnis von Aslant" },
["VS"] = { titel = "Professor Layton vs. Phoenix Wright: Ace Attorney", kurz = "Layton vs. Ace Attorney" },
["MJ"] = { titel = "Layton’s Mystery Journey: Katrielle und die Verschwörung der Millionäre", kurz = "Layton’s Mystery Journey" },
["ED"] = { titel = "Professor Layton und die ewige Diva", kurz = "Die ewige Diva" },
["DL"] = { titel = "Detektei Layton – Katrielles rätselhafte Fälle", kurz = "Detektei Layton" },
["LBMR"] = { titel = "Layton Brothers: Mystery Room", kurz = "Layton Brothers" },
["Shikyo"] = { titel = "Layton Kyōju to Shikyo no Kan", kurz = "Shikyo no Kan" }
}
local function getEintrag(code)
-- Varianten
-- Layton's Mystery Journey
if code == "7" or code == "LMJ" then code = "MJ" end
return serie[code]
end
local function formatAnmerkung(text)
return " " .. "(" .. text .. ")"
end
local function getAnmerkung(code)
local t = { code = "", anmerkung = "" }
local i = 0
for s in mw.text.gsplit(code, "%s") do
if i == 0 then
t.code = s
i = i + 1
else
t.anmerkung = formatAnmerkung(s)
break
end
end
return t
end
local function makeLink(page, text)
if text then text = "|" .. text else text = "" end
return "[[" .. page .. text .. "]]"
end
local function errMsgCodeFalsch(code)
return "<span style=\"font-weight: bold; color: #FE2E2E\" >[[Vorlage:Serie]] meldet: Ungültiger Spielecode \"" .. code .. "\" angegeben</span>"
end
function p.Titel(frame)
local args = frame:getParent().args
local eintrag = getEintrag(args[1])
if not eintrag then return errMsgCodeFalsch(args[1]) end
local kurz = args[2] == "kurz" or args[3] == "kurz"
local link = args[2] ~= "text" and args[3] ~= "text"
local text = eintrag.titel
if kurz then
text = eintrag.kurz
end
if link then
return makeLink(eintrag.titel, text)
else
return text
end
end
function p.Infobox(frame)
local args = frame:getParent().args
local parts, eintrag -- Strings
local liste = ""
for code in mw.text.gsplit(args[1], ',', true) do
parts = getAnmerkung(code)
eintrag = getEintrag(parts.code)
if not eintrag then
liste = liste .. errMsgCodeFalsch(code) .. parts.anmerkung .. "<br />"
else
liste = liste .. "[[" .. eintrag.titel .. "|" .. eintrag.kurz .. "]]" .. parts.anmerkung .. "<br />"
end
end
return mw.text.trim(liste, "<br />")
end
function p.Main(frame)
local args = frame:getParent().args
if args[2] and string.lower(args[2]) == "infobox" then
return p.Infobox(frame)
else
return p.Titel(frame)
end
end
return p