Modul:Beruf
Aus FürthWiki
Seiten-Übersicht
| Hauptseite | Unterseiten | ||
|---|---|---|---|
| Allgemein | |||
| Faktenbox | Vorlagen | ||
| Formulare |
|
||
| Module | |||
| Abfrage | Vorlagen |
| |
| Formulare |
| ||
| Sonstige | |||
Siehe auch
- Modul:Faktenbox
- Modul:Person
- Vorlage:Personen mit diesem Beruf
- Vorlage:Personenliste mit diesem Beruf
- Vorlage:Personen mit dieser Funktion
local p = {}
local com = require("Modul:Common")
local fab = require("Modul:Faktenbox")
local smw = require("Modul:SMW")
function p.Faktenbox(frame)
-- mw.log("Faktenbox(frame)")
-- mw.logObject(frame, "frame")
-- Konsolenzeile zum Debuggen:
-- =p.Faktenbox{pargs={Vorname="Hans",Nachname="Wurst",Geburtsort="Fürth",Geburtsdatum="2025/02/01"}}
local t = ""
-- Basis-Faktenbox-Daten (Klasse/Kategorie/Formular)
local fbdata = fab.getFbdata(frame)
fbdata.klasse = {"Beruf"}
fbdata.kategorie = {"Berufe"}
fbdata.formular = "Beruf" -- ggf. "Beruf/Work"
fbdata.positionscheck = false
-- Wörterbuch-Einträge setzen: Einzahl/Mehrzahl, weiblich/männlich
p.setWoerterbuchAttr(fbdata)
-- Tabs einsammeln und zusammenfügen
t = t .. fab.bildTab(fbdata) .. p.datenTab(fbdata)
t = fab.factbox_header_footer(t)
-- Sonstige gemeinsame Dinge anfügen (Klasse, Formular, Kategorien, Wartung, ...)
t = t .. fab.postprocess(fbdata)
-- Pre-Processing
mw.logObject(t, "t")
t = fbdata.frame:preprocess(t)
return t
end
function p.datenTab(fbdata)
-- mw.logObject(fbdata, "datenTab(fbdata)")
--[[ Konsolenzeile zum Debuggen:
fab=require("Modul:Faktenbox"); fbdata=fab.fbdata{pargs={Vorname="Hans",Geburtsdatum="2025/02/01"}};
fbdata.klasse={"Beruf"}; fbdata.kategorie={"Berufe"}; fbdata.fullpagename="Ludwig Erhard"; fbdata.subpagename="Ludwig Erhard";
print(p.datenTab(fbdata))
]]
local t = ""
-- Zusammenbau
t = t .. fab.zeileKategorieSeite(fbdata)
t = fab.table_header_footer(t)
t = t .. fab.zeileSemantikBrowsenAbfrage(fbdata)
-- Tab draus machen
t = fab.tab(t, "Daten")
-- mw.logObject(t, "t")
return t
end
function p.setWoerterbuchAttr(fbdata)
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
smw.addAttrToList(fbdata.attr.list, "Wörterbuch", anzahl_geschlecht .. "=" .. v)
if not fbdata.attr.noattr then
mw.smw.subobject{
"Wörterbuch " .. anzahl_geschlecht,
["SubObjektTyp"] = "Wörterbuch Beruf",
["Bemerkung"] = anzahl,
["Geschlecht"] = geschlecht,
["BerufTemp"] = v}
end
end
end
end
end
function p.berufPageLink(beruf)
return "[[" .. p.getBerufPagename(beruf) .. "|" .. beruf .. "]]"
end
function p.getBerufPagename(beruf)
local beruf_pagename = mw.smw.ask{
"[[:+]][[SubObjektTyp::Wörterbuch Beruf]]" ..
"[[BerufTemp::" .. beruf .. "]]",
"?-has subobject.Seite#-",
["mainlabel"] = "-",
["limit"] = 1}
if beruf_pagename ~= nil then
beruf_pagename = beruf_pagename[1]["Seite"]
else
beruf_pagename = beruf
end
return beruf_pagename
end
return p