Modul:Attribut: Unterschied zwischen den Versionen

+ TableHeader(), TableFooter(), Sonderbehandlungen
(Die Seite wurde neu angelegt: „local p = {} local str = require("Modul:String") local htm = require("Modul:HTML") local ber = require("Modul:Beruf") function p.TableLine(frame) -- mw.log("TableLine(frame)") -- mw.logObject(frame.args, "frame.args") -- Kommandozeile zum Debuggen: -- =p.TableLine{args={"Test","Test2=Test3","Beruf=Politiker"}} local line = {} for _, a in ipairs(frame.args) do local equal = string.find(a, "=") or 0 local attr = str.strip(string.sub(a, 1, math.ma…“)
 
(+ TableHeader(), TableFooter(), Sonderbehandlungen)
 
Zeile 1: Zeile 1:
local p = {}
local p = {}


local dev = require("Modul:Development")
local str = require("Modul:String")
local str = require("Modul:String")
local htm = require("Modul:HTML")
local htm = require("Modul:HTML")
local wor = require("Modul:Wörterbuch")
local lfd = require("Modul:LinkFormDatum")
local ber = require("Modul:Beruf")
local ber = require("Modul:Beruf")
function p.TableHeader(frame)
-- Kommandozeile zum Debuggen:
-- =p.TableHeader{args={"Beruf", "AbweichendeNamensform"}}
local args = {}
local klasse = frame.args["Klasse"]
for i, a in ipairs(frame.args) do
args[i] = wor.attrText(a, klasse)
end
return htm.tableHeader(args)
end


function p.TableLine(frame)
function p.TableLine(frame)
-- mw.log("TableLine(frame)")
-- mw.log("TableLine(frame)")
-- mw.logObject(frame.args, "frame.args")
-- Kommandozeile zum Debuggen:
-- Kommandozeile zum Debuggen:
-- =p.TableLine{args={"Test","Test2=Test3","Beruf=Politiker"}}
-- =p.TableLine{pargs={"Test","Test3","Politiker","1. Januar 2024","2025-03-04","2025","Max","Mustermann","Hans Wurst"},args={nil, nil,"Beruf","Geburtsdatum","TodesdatumISO","Todesdatum","Vorname","Nachname","Person"}}
-- =p.TableLine{pargs={"p1","p2","p3","p4","p5","p6"},args={,"A2",,"A4"}}
local _, pargs, args = dev.GetFrameAndParentArgs(frame)
-- mw.logObject(pargs, "pargs")
-- mw.logObject(args, "args")
-- Zeile zusammenbauen
local line = {}
local line = {}
for _, a in ipairs(frame.args) do
local td_args, vorname, nachname
local equal = string.find(a, "=") or 0
for i, a in ipairs(pargs) do
local attr = str.strip(string.sub(a, 1, math.max(equal - 1, 0)))
local attr = args[i]
local val =  str.strip(string.sub(a, equal + 1))
local val = a
-- Sonderbehandlung Beruf
if attr == "Beruf" then
if attr == "Beruf" then
table.insert(line, ber.berufePageLinkListe(val, ","))
val = ber.berufePageLinkListe(val, ",")
else
-- Sonderbehandlung Datum
table.insert(line, val)
-- Reihenfolge: GeburtsdatumISO|Geburtsdatum
-- bzw. TodesdatumISO|Todesdatum
elseif attr == "GeburtsdatumISO" or attr == "TodesdatumISO" then
td_args = "data-sort-value=\"" .. val .. "\""
val = nil
elseif attr == "Geburtsdatum" or attr == "Todesdatum" then
val = lfd.formatDate(val)
if td_args ~= nil then
val = {val, td_args = td_args}
td_args = nil
end
-- Sonderbehandlung Person
-- Reihenfolge: Vorname|Nachname|Person
elseif attr == "Vorname" and args[i + 2] == "Person" then
vorname = val
val = nil
elseif attr == "Nachname" and args[i + 1] == "Person" then
nachname = val
val = nil
elseif attr == "Person" then
val = "[[" .. val .."|" .. vorname .. " " .. nachname .. "]]"
end
end
-- mw.logObject(val, "val")
table.insert(line, val)
end
end
local t = htm.tableLine(line)
local t = htm.tableLine(line)
-- mw.logObject(t, "t")
-- mw.logObject(t, "t")
return t
return t
end
function p.TableFooter(frame)
return htm.TableFooter(frame)
end
end


return p
return p