Modul:Person/Work: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:
local fab = require("Modul:Faktenbox")
local fab = require("Modul:Faktenbox")
local smw = require("Modul:SMW")
local smw = require("Modul:SMW")
local ber = require("Modul:Beruf")


function p.Faktenbox(frame)
function p.Faktenbox(frame)
Zeile 147: Zeile 148:


function p.zeileBeruf(fbdata)
function p.zeileBeruf(fbdata)
mw.log("zeileBeruf(fbdata)")
-- mw.log("zeileBeruf(fbdata)")
mw.logObject(fbdata.pargs, "fbdata.pargs")
-- mw.logObject(fbdata.pargs, "fbdata.pargs")
-- Konsolenzeile zum Debuggen:
-- Konsolenzeile zum Debuggen:
-- =p.zeileBeruf{attr={list={}},pargs={Beruf="Tester",Geschlecht="weiblich"}}
-- =p.zeileBeruf{attr={list={}},pargs={Beruf="Tester",Geschlecht="weiblich"}}
Zeile 154: Zeile 155:
local beruf = fbdata.pargs["Beruf"] or ""
local beruf = fbdata.pargs["Beruf"] or ""
if beruf ~= "" then
if beruf ~= "" then
-- Berufe-Liste durchiterieren
for _, beruf in ipairs(str.splitAndStrip(beruf, ";")) do
for _, beruf in ipairs(str.splitAndStrip(beruf, ";")) do
local beruf_page = beruf -- default
local beruf_fullpagename = ber.getBerufFullpagename(beruf)
local geschlecht = fbdata.pargs["Geschlecht"] or ""
if beruf_fullpagename ~= nil then
-- Beruf-Seite ermitteln
local geschlecht = fbdata.pargs["Geschlecht"] or "männlich" -- männlich = generisch Maskulin
local selector = "[[:+]][[KlassenName::Beruf]]"
beruf =
selector = selector ..
ber.getBeruf(beruf_fullpagename, "Einzahl", geschlecht) or
"[[Wörterbuch::Einzahl weiblich=" .. beruf .."]] OR " ..
beruf
"[[Wörterbuch::Einzahl männlich=" .. beruf .."]]"
local query = {selector, "?#-", "?Wörterbuch"}
query["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
else -- bei divers keine Veränderung
end
end
end
-- Beruf zu Werte-Liste hinzufügen
if t ~= "" then
if t ~= "" then
t = t .. ", "
t = t .. ", "
end
end
t = t .. "[[" .. beruf_page .. "|" .. beruf .. "]]"
if beruf_fullpagename ~= nil then
smw.addAttrToList(fbdata.attr.list, "Beruf", beruf_page)
t = t .. "[[:" .. beruf_fullpagename .. "|" .. beruf .. "]]"
if string.sub(beruf_fullpagename, 1, 10) == "Kategorie:" then
t = t .. "[[" .. beruf_fullpagename .. "]]"
end
else
t = t .. "[[" .. beruf .. "]]"
beruf_fullpagename = beruf
end
smw.addAttrToList(fbdata.attr.list, "Beruf", beruf)
smw.addAttrToList(fbdata.attr.list, "BerufTemp", beruf)
smw.addAttrToList(fbdata.attr.list, "BerufSeite", beruf_fullpagename)
end
end
t = "<dt>Beruf</dt><dd>" .. t .. "</dd>"
t = "<dt>Beruf</dt><dd>" .. t .. "</dd>"
end
end
mw.logObject(t, "t")
-- mw.logObject(t, "t")
mw.logObject(fbdata.attr.list, "fbdata.attr.list")
return t
return t
end
end


return p
return p