Modul:Person/Work: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
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 156: Zeile 157:
-- Berufe-Liste durchiterieren
-- 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_pagename = ber.getBerufPagename(beruf)
local geschlecht = fbdata.pargs["Geschlecht"] or ""
local geschlecht = fbdata.pargs["Geschlecht"] or ""
-- Beruf-Seite ermitteln
-- Berufname ermitteln
local selector = "[[:+]][[KlassenName::Beruf]]"
local selector = "[[:+]]" ..
selector =
"[[-has subobject::" .. beruf_pagename .. "]]" ..
selector .. "[[Wörterbuch::Einzahl weiblich=" .. beruf .."]] OR " ..
"[[Bemerkung::Einzahl]]" ..
selector .. "[[Wörterbuch::Einzahl männlich=" .. beruf .."]] OR " ..
"[[Geschlecht::" .. geschlecht .. "]]"
selector .. "[[Wörterbuch::Einzahl divers=" .. beruf .."]]"
local query = {selector, "?BerufTemp", ["limit"] = 1}
local query = {selector, "?#-", "?Wörterbuch", ["limit"] = 1}
-- Wörterbuch befragen
-- Wörterbuch befragen
local beruf_woerterbuch = mw.smw.ask(query)
local ask = mw.smw.ask(query)
if beruf_woerterbuch ~= nil then
mw.logObject(ask, "ask")
beruf_page = beruf_woerterbuch[1][1]
if ask ~= nil then
beruf_woerterbuch = beruf_woerterbuch[1]["Wörterbuch"]
beruf = ask[1]["BerufTemp"]
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
end
-- Beruf zu Liste und Attributen hinzufügen
-- Beruf zu Liste und Attributen hinzufügen
Zeile 189: Zeile 175:
t = t .. ", "
t = t .. ", "
end
end
t = t .. "[[" .. beruf_page .. "|" .. beruf .. "]]"
t = t .. "[[" .. beruf_pagename .. "|" .. beruf .. "]]"
smw.addAttrToList(fbdata.attr.list, "Beruf", beruf)
smw.addAttrToList(fbdata.attr.list, "Beruf", beruf)
smw.addAttrToList(fbdata.attr.list, "BerufTemp", beruf)
smw.addAttrToList(fbdata.attr.list, "BerufTemp", beruf)
smw.addAttrToList(fbdata.attr.list, "BerufSeite", beruf_page)
smw.addAttrToList(fbdata.attr.list, "BerufSeite", beruf_pagename)
end
end
t = "<dt>Beruf</dt><dd>" .. t .. "</dd>"
t = "<dt>Beruf</dt><dd>" .. t .. "</dd>"