Modul:Person: Unterschied zwischen den Versionen

1.957 Bytes hinzugefügt ,  Freitag um 16:22
+ zeileBeruf()
(Shoah global aktiviert)
(+ zeileBeruf())
Markierung: Zurückgesetzt
Zeile 2: Zeile 2:


local com = require("Modul:Common")
local com = require("Modul:Common")
local str = require("Modul:String")
local fab = require("Modul:Faktenbox")
local fab = require("Modul:Faktenbox")
local smw = require("Modul:SMW")
local smw = require("Modul:SMW")
Zeile 83: Zeile 84:
t = t .. fab.zeile{fbdata = fbdata, attr_name = "Todesursache", attr_val = fbdata.shoah["Todesursache"], val_show_only = true}
t = t .. fab.zeile{fbdata = fbdata, attr_name = "Todesursache", attr_val = fbdata.shoah["Todesursache"], val_show_only = true}
end
end
t = t .. fab.zeile{fbdata = fbdata, attr_name = "Beruf", delimiter = ";"}
t = t .. p.zeileBeruf(fbdata)
t = t .. fab.zeile{fbdata = fbdata, attr_name = "Partei", delimiter = ";"}
t = t .. fab.zeile{fbdata = fbdata, attr_name = "Partei", delimiter = ";"}
t = t .. fab.zeile{fbdata = fbdata, attr_name = "Eigenart", delimiter = ";"}
t = t .. fab.zeile{fbdata = fbdata, attr_name = "Eigenart", delimiter = ";"}
Zeile 143: Zeile 144:
-- mw.logObject(ask_result[1], "ask_result[1]")
-- mw.logObject(ask_result[1], "ask_result[1]")
     return ask_result[1]
     return ask_result[1]
end
function p.zeileBeruf(fbdata)
-- mw.log("zeileBeruf(fbdata)")
-- mw.logObject(fbdata.pargs, "fbdata.pargs")
-- Konsolenzeile zum Debuggen:
-- =p.zeileBeruf{attr={list={}},pargs={Beruf="Tester",Geschlecht="weiblich"}}
local t = ""
local beruf = fbdata.pargs["Beruf"] or ""
if beruf ~= "" then
-- Berufe-Liste durchiterieren
for _, beruf in ipairs(str.splitAndStrip(beruf, ";")) do
local beruf_page = beruf -- default
local geschlecht = fbdata.pargs["Geschlecht"] or ""
-- Beruf-Seite ermitteln
local selector = "[[:+]][[KlassenName::Beruf]]"
selector =
selector .. "[[Wörterbuch::Einzahl weiblich=" .. beruf .."]] OR " ..
selector .. "[[Wörterbuch::Einzahl männlich=" .. beruf .."]] OR " ..
selector .. "[[Wörterbuch::Einzahl divers=" .. beruf .."]]"
local query = {selector, "?#-", "?Wörterbuch", ["limit"] = 1}
-- Wörterbuch befragen
local beruf_woerterbuch = mw.smw.ask(query)
if beruf_woerterbuch ~= nil then
beruf_page = beruf_woerterbuch[1][1]
beruf_woerterbuch = beruf_woerterbuch[1]["Wörterbuch"]
local tmp = {}
for i, v in pairs(beruf_woerterbuch) do
tmp[i] = str.splitAndStrip(beruf_woerterbuch[i], "=")
tmp[tmp[i][1]] = tmp[i][2]
end
beruf_woerterbuch = tmp
-- weibliche/männliche Form ermitteln
if geschlecht == "weiblich" then
beruf = beruf_woerterbuch["Einzahl weiblich"] or beruf
elseif geschlecht == "männlich" then
beruf = beruf_woerterbuch["Einzahl männlich"] or beruf
elseif geschlecht == "divers" then
beruf = beruf_woerterbuch["Einzahl divers"] or beruf
end
end
-- Beruf zu Liste und Attributen hinzufügen
if t ~= "" then
t = t .. ", "
end
t = t .. "[[" .. beruf_page .. "|" .. beruf .. "]]"
smw.addAttrToList(fbdata.attr.list, "Beruf", beruf_page)
end
t = "<dt>Beruf</dt><dd>" .. t .. "</dd>"
end
-- mw.logObject(t, "t")
-- mw.logObject(fbdata.attr.list, "fbdata.attr.list")
return t
end
end


return p
return p