Modul:Person/Work: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
(17 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{pargs={Beruf="Tester",Geschlecht="weiblich"}}
-- =p.zeileBeruf{attr={list={}},pargs={Beruf="Tester",Geschlecht="weiblich"}}
local t = ""
local t = ""
local beruf = fbdata.pargs["Beruf"] or ""
local beruf = fbdata.pargs["Beruf"] or ""
if beruf ~= "" then
if beruf ~= "" then
local geschlecht = fbdata.pargs["Geschlecht"] or ""
-- Berufe-Liste durchiterieren
-- Beruf-Seite ermitteln
for _, beruf in ipairs(str.splitAndStrip(beruf, ";")) do
local selector = "[[:+]][[KlassenName::Beruf]]"
local beruf_fullpagename = ber.getBerufFullpagename(beruf)
selector = selector ..
if beruf_fullpagename ~= nil then
"[[Wörterbuch::Einzahl weiblich=" .. beruf .."]] OR " ..
local geschlecht = fbdata.pargs["Geschlecht"] or "männlich" -- männlich = generisch Maskulin
"[[Wörterbuch::Einzahl männlich=" .. beruf .."]]"
beruf =
mw.logObject(selector, "selector")
ber.getBeruf(beruf_fullpagename, "Einzahl", geschlecht) or
local query = {selector, "?#-", "?Wörterbuch"}
beruf
query["limit"] = 1
mw.logObject(query, "query")
local beruf_woerterbuch = mw.smw.ask(query)
mw.logObject(beruf_woerterbuch, "beruf_woerterbuch")
local beruf_page
if beruf_woerterbuch ~= nil then
beruf_page = beruf_woerterbuch[1][1]
beruf_woerterbuch = beruf_woerterbuch[1]["Wörterbuch"]
mw.logObject(beruf_page, "beruf_page")
mw.logObject(beruf_woerterbuch, "beruf_woerterbuch")
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
end
beruf_woerterbuch = tmp
-- Beruf zu Werte-Liste hinzufügen
mw.logObject(beruf_woerterbuch, "beruf_woerterbuch")
if t ~= "" then
if geschlecht == "weiblich" then
t = t .. ", "
beruf = beruf_woerterbuch["Einzahl weiblich"]
elseif geschlecht == "männlich" then
beruf = beruf_woerterbuch["Einzahl männlich"]
end
end
else
if beruf_fullpagename ~= nil then
beruf_page = beruf
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
mw.logObject(beruf, "beruf")
t = "<dt>Beruf</dt><dd>" .. t .. "</dd>"
mw.logObject(beruf_page, "beruf_page")
t = t .. "<dt>Beruf</dt><dd>[[" .. beruf_page .. "|" .. beruf .. "</dd>"
smw.addAttrToList(fbdata.attr.list, "Beruf", beruf_page)
end
end
-- mw.logObject(t, "t")
mw.logObject(fbdata.attr.list, "fbdata.attr.list")
return t
return t
end
end


return p
return p