Modul:Beruf: Unterschied zwischen den Versionen
Aus FürthWiki
(fbdata.pargs["Bild"] = "Stadtwappen.svg") |
(Verwendung Wörterbuch-Funktionen setEntry(), getEntry(), getEntryPages()) |
||
| Zeile 7: | Zeile 7: | ||
local wik = require("Modul:Wiki") | local wik = require("Modul:Wiki") | ||
local kla = require("Modul:Klasse") | local kla = require("Modul:Klasse") | ||
local wob = require("Modul:Wörterbuch") | |||
local beruf_arg_names = { | local beruf_arg_names = { | ||
["männlich"] = | ["männlich"] = | ||
{["Einzahl"] = " | {["Einzahl"] = "EinzahlGenerischMaskulinum", | ||
["Mehrzahl"] = " | ["Mehrzahl"] = "MehrzahlGenerischMaskulinum"}, | ||
["weiblich"] = | ["weiblich"] = | ||
{["Einzahl"] = " | {["Einzahl"] = "EinzahlFemininum", | ||
["Mehrzahl"] = " | ["Mehrzahl"] = "MehrzahlFemininum"}, | ||
["divers"] = | ["divers"] = | ||
{["Einzahl"] = " | {["Einzahl"] = "EinzahlDivers", | ||
["Mehrzahl"] = " | ["Mehrzahl"] = "MehrzahlDivers"}} | ||
function p.Faktenbox(frame) | function p.Faktenbox(frame) | ||
| Zeile 53: | Zeile 54: | ||
function p.setWoerterbuchAttr(fbdata) | function p.setWoerterbuchAttr(fbdata) | ||
for _, g in pairs(beruf_arg_names) do | |||
for _, entry in pairs(g) do | |||
local val = fbdata.pargs[entry] | |||
wob.setEntry(entry, val, fbdata.attr.list) | |||
end | end | ||
end | end | ||
| Zeile 98: | Zeile 91: | ||
function p.getBerufFullpagename(beruf) | function p.getBerufFullpagename(beruf) | ||
local beruf_fullpagename = | local beruf_fullpagename = wob.getEntryPages(nil, beruf, "Berufe") or {} -- egal, ob Einzahl/Mehrzahl oder Geschlecht | ||
return beruf_fullpagename[1] -- immer nur 1. Ergebnis rückliefern | |||
end | end | ||
function p.getBeruf(beruf_fullpagename, einzahl_mehrzahl, geschlecht) | function p.getBeruf(beruf_fullpagename, einzahl_mehrzahl, geschlecht) | ||
local | local entry = beruf_arg_names[geschlecht][einzahl_mehrzahl] | ||
local beruf = wob.getEntry(beruf_fullpagename, entry) | |||
local beruf = | |||
return beruf | return beruf | ||
end | end | ||
Version vom 21. Februar 2026, 12:36 Uhr
Seiten-Übersicht
| Hauptseite | Unterseiten | ||
|---|---|---|---|
| Allgemein | |||
| Faktenbox | Vorlagen | ||
| Formulare |
|
||
| Module | |||
| Abfrage | Vorlagen |
| |
| Formulare |
| ||
| Sonstige | |||
Modul:Beruf
Dieses Modul:
- ...
Siehe auch
- Modul:Faktenbox
- Modul:Beruf
- 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")
local kla = require("Modul:Klasse")
local wob = require("Modul:Wörterbuch")
local beruf_arg_names = {
["männlich"] =
{["Einzahl"] = "EinzahlGenerischMaskulinum",
["Mehrzahl"] = "MehrzahlGenerischMaskulinum"},
["weiblich"] =
{["Einzahl"] = "EinzahlFemininum",
["Mehrzahl"] = "MehrzahlFemininum"},
["divers"] =
{["Einzahl"] = "EinzahlDivers",
["Mehrzahl"] = "MehrzahlDivers"}}
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 .. fab.bildTab(fbdata) -- ..
-- kla.faktenboxDatenTab(fbdata) -- bislang kein DatenTab
t = fab.factbox_header_footer(t)
-- Sonstige gemeinsame Dinge anfügen (Klasse, Formular, Kategorien, Wartung, ...)
fbdata.pargs["Bild"] = "Stadtwappen.svg" -- um zu verhindern, dass Wartungsmeldungen erfolgen,
t = t .. fab.postprocess(fbdata) -- weil es erstmal viele Berufe ohne Formular-Daten gibt
-- Pre-Processing
-- mw.logObject(t, "t")
t = fbdata.frame:preprocess(t)
return t
end
function p.setWoerterbuchAttr(fbdata)
for _, g in pairs(beruf_arg_names) do
for _, entry in pairs(g) do
local val = fbdata.pargs[entry]
wob.setEntry(entry, val, fbdata.attr.list)
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
t = str.appendWithComma(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 = wob.getEntryPages(nil, beruf, "Berufe") or {} -- egal, ob Einzahl/Mehrzahl oder Geschlecht
return beruf_fullpagename[1] -- immer nur 1. Ergebnis rückliefern
end
function p.getBeruf(beruf_fullpagename, einzahl_mehrzahl, geschlecht)
local entry = beruf_arg_names[geschlecht][einzahl_mehrzahl]
local beruf = wob.getEntry(beruf_fullpagename, entry)
return beruf
end
function p.Formular(frame)
-- Kommandozeile zum Debuggen:
-- frame=mw.getCurrentFrame(); print(p.Formular(frame))
local t = kla.Formular(frame, "Beruf")
return t
end
return p