19.638
Bearbeitungen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (21 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| 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") | ||
local wik = require("Modul:Wiki") | |||
function p.Faktenbox(frame) | function p.Faktenbox(frame) | ||
-- mw.logObject(frame, " | -- mw.log("Faktenbox(frame)") | ||
-- mw.logObject(frame, "frame") | |||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- =p.Faktenbox{pargs={ | -- =p.Faktenbox{pargs={}} | ||
local t = "" | |||
-- Basis-Faktenbox-Daten (Klasse/Kategorie/Formular) | -- Basis-Faktenbox-Daten (Klasse/Kategorie/Formular) | ||
| Zeile 14: | Zeile 18: | ||
fbdata.klasse = {"Beruf"} | fbdata.klasse = {"Beruf"} | ||
fbdata.kategorie = {"Berufe"} | fbdata.kategorie = {"Berufe"} | ||
fbdata.formular = "Beruf | if fbdata.namespace ~= "Kategorie" then | ||
fbdata.formular = "Beruf" -- ggf. "Beruf/Work" | |||
end | |||
fbdata.positionscheck = false | fbdata.positionscheck = false | ||
-- Wörterbuch-Einträge setzen: Einzahl/Mehrzahl, weiblich/männlich | -- Wörterbuch-Einträge setzen: Einzahl/Mehrzahl, weiblich/männlich | ||
p.setWoerterbuchAttr(fbdata) | p.setWoerterbuchAttr(fbdata) | ||
-- Tabs einsammeln und zusammenfügen | -- Tabs einsammeln und zusammenfügen | ||
t = t .. p.bildTab(fbdata) .. p.datenTab(fbdata) | |||
t = fab.factbox_header_footer(t) | t = fab.factbox_header_footer(t) | ||
| Zeile 33: | Zeile 39: | ||
function p.datenTab(fbdata) | function p.datenTab(fbdata) | ||
-- mw. | -- mw.log("datenTab(fbdata)") | ||
-- mw.logObject(fbdata.pargs, "fbdata.pargs") | |||
local t = "" | local t = "" | ||
-- Zusammenbau | -- Zusammenbau | ||
t = t | -- hier können noch weitere Zeilen davor gesetzt werden | ||
if t ~= "" then | |||
t = fab.zeileKategorieSeite(fbdata) .. t | |||
t = fab.table_header_footer(t) | |||
t = t .. fab.zeileSemantikBrowsenAbfrage(fbdata) | |||
else | |||
smw.addAttrToList(fbdata.attr.list, "Seite", fbdata.fullpagename) | |||
end | |||
-- Tab draus machen | -- Tab draus machen | ||
| Zeile 50: | Zeile 57: | ||
-- mw.logObject(t, "t") | -- mw.logObject(t, "t") | ||
return t | return t | ||
end | |||
function p.bildTab(fbdata) | |||
-- mw.log("bildTab(fbdata)") | |||
-- mw.logObject(fbdata.pargs, "fbdata.pargs") | |||
local t = "" | |||
local bild = fbdata.pargs["Bild"] | |||
if not com.isEmpty(bild) and wik.pageExists("Datei:" .. bild) then | |||
t = t .. "{| class = \"factbox_imagetable\" border = \"0\" cellpadding = \"0\" cellspacing = \"0\" width = \"100%\"\n" | |||
t = t .. "|-\n" | |||
t = t .. "|[[Datei:" .. bild .. "|768px]]\n" | |||
t = t .. "|}" | |||
smw.addAttrToList(fbdata.attr.list, "Bild", "Datei:" .. bild) | |||
end | |||
-- Tab draus machen | |||
t = fab.tab(t, "Bild") | |||
-- mw.logObject(t, "t") | |||
return t | |||
end | end | ||
function p.setWoerterbuchAttr(fbdata) | function p.setWoerterbuchAttr(fbdata) | ||
for _, | if not fbdata.attr.noattr then | ||
for _, anzahl in ipairs{"Einzahl", "Mehrzahl"} do | |||
for _, geschlecht in ipairs{"weiblich", "männlich", "divers"} do | |||
local anzahl_geschlecht = anzahl .. " " .. geschlecht | |||
local v = fbdata.pargs[anzahl_geschlecht] or "" | |||
if v ~= "" then | |||
mw.smw.subobject{ | |||
"Wörterbuch " .. anzahl_geschlecht, | |||
["SubObjektTyp"] = "Wörterbuch Beruf", | |||
["Bemerkung"] = anzahl, | |||
["Geschlecht"] = geschlecht, | |||
["BerufTemp"] = v} | |||
end | |||
end | |||
end | end | ||
end | end | ||
end | |||
function p.BerufePageLinkListe(frame) | |||
return p.berufePageLinkListe(frame.args[1], frame.args[2]) | |||
end | |||
function p.berufePageLinkListe(berufe, delimiter) | |||
local t = "" | |||
local berufe = str.splitAndStrip(berufe, delimiter or ";") | |||
for _, b in ipairs(berufe) do | |||
if t ~= "" then | |||
t = t .. ", " | |||
end | |||
t = t .. p.berufPageLink(b) | |||
end | |||
return t | |||
end | |||
function p.BerufPageLink(frame) | |||
return p.berufPageLink(frame.args[1]) | |||
end | |||
function p.berufPageLink(beruf) | |||
local beruf_pagelink = "" | |||
local beruf_fullpagename = p.getBerufFullpagename(beruf) | |||
if beruf_fullpagename ~= nil then | |||
beruf_pagelink = "[[:" .. beruf_fullpagename .. "|" .. beruf .. "]]" | |||
else | |||
beruf_pagelink = "[[" .. beruf .. "]]" | |||
end | |||
return beruf_pagelink | |||
end | |||
function p.getBerufFullpagename(beruf) | |||
local beruf_fullpagename = mw.smw.ask{ | |||
"[[SubObjektTyp::Wörterbuch Beruf]]" .. | |||
"[[BerufTemp::" .. beruf .. "]]", | |||
"?-has subobject.Seite#-", | |||
["mainlabel"] = "-", | |||
["limit"] = 1} | |||
if beruf_fullpagename ~= nil then | |||
beruf_fullpagename = beruf_fullpagename[1]["Seite"] | |||
end | |||
return beruf_fullpagename | |||
end | |||
function p.getBeruf(beruf_fullpagename, einzahl_mehrzahl, geschlecht) | |||
local selector = "[[Bemerkung::" .. einzahl_mehrzahl .. "]]" .. | |||
"[[-has subobject::" .. beruf_fullpagename .. "]]" .. | |||
"[[Geschlecht::" .. geschlecht .. "]]" | |||
local beruf = mw.smw.ask{selector, "?BerufTemp", ["limit"] = 1} | |||
if beruf ~= nil then | |||
beruf = beruf[1]["BerufTemp"] | |||
end | |||
return beruf | |||
end | end | ||
return p | return p | ||