Modul:Person: Unterschied zwischen den Versionen

switch zu neuer Lua-Faktenbox
K (Schützte „Modul:Person“ ([Bearbeiten=Nur Administratoren erlauben] (unbeschränkt) [Verschieben=Nur Administratoren erlauben] (unbeschränkt)))
(switch zu neuer Lua-Faktenbox)
Zeile 1: Zeile 1:
local p = {} --p stands for package
local p = {} --p stands for package
local com = require("Modul:Common")
local fab = require("Modul:Faktenbox")


function p.Faktenbox(frame)
function p.Faktenbox(frame)
local args = frame:getParent().args
-- mw.log("Faktenbox(frame)")
-- mw.logObject(frame)
local tpl_bild = p.bild(frame, args)
-- Konsolenzeile zum Debuggen:
local tab_bild=''
-- =p.Faktenbox{pargs={Vorname="Hans",Nachname="Wurst",Geburtsort="Fürth",Geburtsdatum="2025/02/01"}}
if tpl_bild:gsub("%s+", "") ~= '' then
 
tab_bild='<tab name=Bild>' ..  
-- Basis-Faktenbox-Daten (Klasse/Kategorie/Formular)
tpl_bild .. '</tab>'
local fbdata = fab.fbdata(frame)
end
fbdata.klasse = {"Person"}
fbdata.kategorie = {"Personen"}
-- The tab "Daten" is visible everytime
fbdata.formular = "Person" -- ggf. "Person/Work"
local tpl_daten = p.daten(frame, args)
 
local tab_daten='<tab name=Daten>' ..  
-- Tabs einsammeln und zusammenfügen
tpl_daten .. '</tab>'
local box =  
"<div class = factbox><tabs>" ..
local tpl_funktionen = p.funktionen(frame, args)
fab.bildTab(fbdata) ..
local tab_funktionen=''
p.datenTab(fbdata) ..
if tpl_funktionen:gsub("%s+", "") ~= '' then
p.funktionenTab(fbdata) ..
tab_funktionen='<tab name=Funktionen>' ..  
p.auszeichnungenTab(fbdata) ..
tpl_funktionen .. '</tab>'
p.adressenTab(fbdata) ..
p.familieTab(fbdata) ..
p.beziehungenTab(fbdata) ..
"</tabs></div>"
 
-- Personen-spezifische Kategorien usw.
if not com.isEmpty(fbdata.pargs["Geburtsort"]) and fbdata.pargs["Geburtsort"] == "Fürth" then
box = box .. "[[Kategorie:Söhne und Töchter der Stadt Fürth]]"
end
end
if not com.isEmpty(fbdata.pargs["Nachname"]) then
local tpl_auszeichnungen = p.auszeichnungen(frame, args)
if not com.isEmpty(fbdata.pargs["Vorname"]) then
local tab_auszeichnungen=''
box = box .. "{{DEFAULTSORT:" .. fbdata.pargs["Nachname"] .. ", " .. fbdata.pargs["Vorname"] .. "}}"
if tpl_auszeichnungen:gsub("%s+", "") ~= '' then
else
tab_auszeichnungen='<tab name=Auszeichnungen>' ..  
box = box .. "{{DEFAULTSORT:" .. fbdata.pargs["Nachname"] .. "}}"
tpl_auszeichnungen .. '</tab>'
end
else
if not com.isEmpty(fbdata.pargs["Vorname"]) then
box = box .. "{{DEFAULTSORT:" .. fbdata.pargs["Vorname"] .. "}}"
end
end
end


    local tpl_adressen = p.adressen(frame, args)
-- Sonstige gemeinsame Dinge anfügen (Klasse, Formular, Kategorien, Wartung, ...)
    local tab_adressen = ''
box = box .. fab.common(fbdata, false)
    if tpl_adressen:gsub("%s+", "") ~= '' then
mw.log("box = " .. box)
    tab_adressen = '<tab name=Adressen>' ..
tpl_adressen .. '</tab>'
    end
 
local tpl_familie = p.familie(frame, args)
local tab_familie=''
if tpl_familie:gsub("%s+", "") ~= '' then
tab_familie='<tab name=Familie>' ..  
tpl_familie .. '</tab>'
end
local tpl_beziehungen = p.beziehungen(frame, args)
local tab_beziehungen=''
if tpl_beziehungen:gsub("%s+", "") ~= '' then
tab_beziehungen='<tab name=Beziehungen>' ..  
tpl_beziehungen .. '</tab>'
end
local t ='<div class=factbox><tabs>' ..
  tab_bild ..
  tab_daten ..
  tab_funktionen ..
  tab_auszeichnungen ..
  tab_adressen..
  tab_familie ..
  tab_beziehungen ..
  '</tabs></div>'


-- Use preprocess to render the factbox and all contens at once
-- Pre-Processing und String-Länge checken
return frame:preprocess(t)
box = fbdata.frame:preprocess(box)
box = box .. com.returnStringCheck(box)
-- mw.log("box = " .. box)
return box
end
end


function p.bild(frame, args)
function p.datenTab(fbdata)
    return frame:expandTemplate{title = 'CommonTabs/Bild', args=args}
-- mw.log("datenTab(fbdata)")
end
-- mw.logObject(fbdata)
--[[ Konsolenzeile zum Debuggen:
fab=require("Modul:Faktenbox"); fbdata=fab.fbdata{pargs={Vorname="Hans",Geburtsdatum="2025/02/01"}};
fbdata.klasse={"Person"}; fbdata.kategorie={"Personen"}; fbdata.fullpagename="Ludwig Erhard"; fbdata.subpagename="Ludwig Erhard";
print(p.datenTab(fbdata))
]]
local t = ""
 
-- Zusammenbau
t = t .. "<dl class = 'dataTable'>"
t = t .. fab.zeileKategorieSeite(fbdata)
t = t .. fab.zeilePargs(fbdata, {"Namenszusatz", "Vorname", "Nachname", "Geschlecht", "AbweichendeNamensform"})
t = t .. fab.zeileDatum{attr_date="Geburtsdatum", date=fbdata.pargs["Geburtsdatum"], attr_day="Geburtstag", attr_year="Geburtsjahr"}
t = t .. fab.zeilePargs(fbdata, {"Geburtsort"})
t = t .. fab.zeileDatum{attr_date="Todesdatum", date=fbdata.pargs["Todesdatum"], attr_day="Todestag", attr_year="Todesjahr"}
t = t .. fab.zeilePargs(fbdata, {"Todesort", "Beruf", "Partei", "Eigenart", "Religion", "Friedhof", "Grabstelle", "Nachlass", "GND"})
t = t .. "</dl>"
t = t .. fab.faktenboxSemantikBrowsen(fbdata)


function p.daten(frame, args)
-- Tab draus machen
     return frame:expandTemplate{title = 'Person/Daten', args=args}
t = fab.tab(t, "Daten")
-- mw.log("t = " .. t)
     return t
end
end


function p.funktionen (frame, args)
function p.funktionenTab(fbdata)
return frame:expandTemplate{title = 'Person/Funktionen'}
local t = fbdata.frame:expandTemplate{title = 'Person/Funktionen'}
t = fab.tab(t, "Funktionen")
    return t
end
end


function p.auszeichnungen (frame, args)
function p.auszeichnungenTab(fbdata)
return frame:expandTemplate{title = 'Person/Auszeichnungen'}
local t = fbdata.frame:expandTemplate{title = 'Person/Auszeichnungen'}
t = fab.tab(t, "Auszeichnungen")
    return t
end
end


function p.adressen (frame, args)
function p.adressenTab(fbdata)
return frame:expandTemplate{title = 'CommonTabs/Adressen'}
local t = fbdata.frame:expandTemplate{title = 'CommonTabs/Adressen'}
t = fab.tab(t, "Adressen")
    return t
end
end


function p.familie (frame, args)
function p.familieTab(fbdata)
return frame:expandTemplate{title = 'Person/Familie'}
local t = fbdata.frame:expandTemplate{title = 'Person/Familie'}
t = fab.tab(t, "Familie")
    return t
end
end


function p.beziehungen (frame, args)
function p.beziehungenTab(fbdata)
return frame:expandTemplate{title = 'Person/Beziehungen'}
local t = fbdata.frame:expandTemplate{title = 'Person/Beziehungen'}
t = fab.tab(t, "Beziehungen")
    return t
end
end


return p
return p