Modul:Beruf/Work: Unterschied zwischen den Versionen
Aus FürthWiki
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 11: | Zeile 11: | ||
-- mw.logObject(frame, "frame") | -- mw.logObject(frame, "frame") | ||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- =p.Faktenbox{pargs={ | -- =p.Faktenbox{pargs={}} | ||
local t = "" | local t = "" | ||
| Zeile 18: | Zeile 18: | ||
fbdata.klasse = {"Beruf"} | fbdata.klasse = {"Beruf"} | ||
fbdata.kategorie = {"Berufe"} | fbdata.kategorie = {"Berufe"} | ||
fbdata.formular = "Beruf" -- ggf. "Beruf/Work" | 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) | ||
| Zeile 31: | Zeile 33: | ||
t = t .. fab.postprocess(fbdata) | t = t .. fab.postprocess(fbdata) | ||
-- Pre-Processing | -- Pre-Processing | ||
-- mw.logObject(t, "t") | |||
t = fbdata.frame:preprocess(t) | t = fbdata.frame:preprocess(t) | ||
return t | return t | ||
| Zeile 47: | Zeile 49: | ||
t = fab.table_header_footer(t) | t = fab.table_header_footer(t) | ||
t = t .. fab.zeileSemantikBrowsenAbfrage(fbdata) | t = t .. fab.zeileSemantikBrowsenAbfrage(fbdata) | ||
else | |||
smw.addAttrToList(fbdata.attr.list, "Seite", fbdata.fullpagename) | |||
end | end | ||
| Zeile 114: | Zeile 118: | ||
function p.berufPageLink(beruf) | function p.berufPageLink(beruf) | ||
local beruf_pagelink = "" | local beruf_pagelink = "" | ||
local | local beruf_fullpagename = p.getBerufFullpagename(beruf) | ||
if | if beruf_fullpagename ~= nil then | ||
beruf_pagelink = "[[:" .. | beruf_pagelink = "[[:" .. beruf_fullpagename .. "|" .. beruf .. "]]" | ||
else | else | ||
beruf_pagelink = "[[" .. beruf .. "]]" | beruf_pagelink = "[[" .. beruf .. "]]" | ||
| Zeile 123: | Zeile 127: | ||
end | end | ||
function p. | function p.getBerufFullpagename(beruf) | ||
local | local beruf_fullpagename = mw.smw.ask{ | ||
" | "[[SubObjektTyp::Wörterbuch Beruf]]" .. | ||
"[[BerufTemp::" .. beruf .. "]]", | "[[BerufTemp::" .. beruf .. "]]", | ||
"?-has subobject.Seite#-", | "?-has subobject.Seite#-", | ||
["mainlabel"] = "-", | ["mainlabel"] = "-", | ||
["limit"] = 1} | ["limit"] = 1} | ||
if | 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 | end | ||
return | return beruf | ||
end | end | ||
return p | return p | ||
Aktuelle Version vom 10. Januar 2026, 21:50 Uhr
Seiten-Übersicht
| Hauptseite | Unterseiten | ||
|---|---|---|---|
| Allgemein | |||
| Faktenbox | Vorlagen | ||
| Formulare |
|
||
| Module | |||
| Abfrage | Vorlagen |
| |
| Formulare |
| ||
| Sonstige | |||
Modul:Beruf
Dieses Modul:
- ...
Vorlage:Beruf
{{Beruf
|Bild=Testbild.png
<!-- Wörterbuch -->
|Einzahl weiblich=Testerin
|Einzahl männlich=Tester
|Einzahl divers=TesterDiv
|Mehrzahl weiblich=Testerinnen
|Mehrzahl männlich=Tester
|Mehrzahl divers=TestDiv
}}
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 str = require("Modul:String")
local fab = require("Modul:Faktenbox")
local smw = require("Modul:SMW")
local wik = require("Modul:Wiki")
function p.Faktenbox(frame)
-- mw.log("Faktenbox(frame)")
-- mw.logObject(frame, "frame")
-- Konsolenzeile zum Debuggen:
-- =p.Faktenbox{pargs={}}
local t = ""
-- Basis-Faktenbox-Daten (Klasse/Kategorie/Formular)
local fbdata = fab.getFbdata(frame)
fbdata.klasse = {"Beruf"}
fbdata.kategorie = {"Berufe"}
if fbdata.namespace ~= "Kategorie" then
fbdata.formular = "Beruf" -- ggf. "Beruf/Work"
end
fbdata.positionscheck = false
-- Wörterbuch-Einträge setzen: Einzahl/Mehrzahl, weiblich/männlich
p.setWoerterbuchAttr(fbdata)
-- Tabs einsammeln und zusammenfügen
t = t .. p.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.log("datenTab(fbdata)")
-- mw.logObject(fbdata.pargs, "fbdata.pargs")
local t = ""
-- Zusammenbau
-- 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
t = fab.tab(t, "Daten")
-- mw.logObject(t, "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
function p.setWoerterbuchAttr(fbdata)
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
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
return p