27.025
Bearbeitungen
(BerufTemp => Beruf) |
(getBerufFullpagename() zusätzlicher Check auf Weiterleitung) |
||
| (11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 6: | Zeile 6: | ||
local smw = require("Modul:SMW") | local smw = require("Modul:SMW") | ||
local wik = require("Modul:Wiki") | 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) | function p.Faktenbox(frame) | ||
| Zeile 27: | Zeile 40: | ||
-- Tabs einsammeln und zusammenfügen | -- Tabs einsammeln und zusammenfügen | ||
t = t .. | t = t .. fab.bildTab(fbdata) -- .. | ||
-- kla.faktenboxDatenTab(fbdata) -- bislang kein DatenTab | |||
t = fab.factbox_header_footer(t) | t = fab.factbox_header_footer(t) | ||
-- Sonstige gemeinsame Dinge anfügen (Klasse, Formular, Kategorien, Wartung, ...) | -- Sonstige gemeinsame Dinge anfügen (Klasse, Formular, Kategorien, Wartung, ...) | ||
t = t .. fab.postprocess(fbdata) | 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 | -- Pre-Processing | ||
-- mw.logObject(t, "t") | -- mw.logObject(t, "t") | ||
t = fbdata.frame:preprocess(t) | t = fbdata.frame:preprocess(t) | ||
return t | return t | ||
end | end | ||
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 102: | Zeile 70: | ||
local berufe = str.splitAndStrip(berufe, delimiter or ";") | local berufe = str.splitAndStrip(berufe, delimiter or ";") | ||
for _, b in ipairs(berufe) do | for _, b in ipairs(berufe) do | ||
t = str.appendWithComma(t, p.berufPageLink(b)) | |||
end | end | ||
return t | return t | ||
| Zeile 126: | Zeile 91: | ||
function p.getBerufFullpagename(beruf) | function p.getBerufFullpagename(beruf) | ||
local beruf_fullpagename = | local beruf_fullpagename = wob.getEntryPages(nil, beruf, "Berufe") -- egal, ob Einzahl/Mehrzahl oder Geschlecht | ||
if beruf_fullpagename ~= nil then -- Berufs-Seite mit Wörterbuch gefunden | |||
beruf_fullpagename = beruf_fullpagename[1] -- immer nur 1. Ergebnis rückliefern | |||
elseif wik.pageExists(beruf) then -- Existierende Berufs-Seite ohne Wörterbuch gefunden | |||
local entries = wob.getEntry(beruf) -- Wenn diese aber Wörterbuch hat, aber in dem der Beruf | |||
if entries == nil then -- nicht eingetragen ist, dann dürfte Weiterleitung sein | |||
beruf_fullpagename = beruf | |||
end | |||
end | end | ||
return beruf_fullpagename | return beruf_fullpagename | ||
| Zeile 139: | Zeile 104: | ||
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 | |||
function p.Formular(frame) | |||
-- Kommandozeile zum Debuggen: | |||
-- frame=mw.getCurrentFrame(); print(p.Formular(frame)) | |||
local t = kla.Formular(frame, "Beruf") | |||
return t | |||
end | end | ||
return p | return p | ||