Modul:Attribut/Work: Unterschied zwischen den Versionen

Aus FürthWiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 61: Zeile 61:
-- 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

Aktuelle Version vom 13. Januar 2026, 15:45 Uhr

Die Dokumentation für dieses Modul kann unter Modul:Attribut/Work/Doku erstellt werden

local p = {}

local str = require("Modul:String")
local htm = require("Modul:HTML/Work")
local wor = require("Modul:Wörterbuch")
local lfd = require("Modul:LinkFormDatum")
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)
--	mw.log("TableLine(frame)")
--	mw.logObject(frame.args, "frame.args")
	-- Kommandozeile zum Debuggen:
	-- =p.TableLine{args={"Test","Test2=Test3","Beruf=Politiker","Geburtsdatum=1. Januar 2024","Todesdatum=2025","TodesdatumISO=2025-03-04"}}
	local args = {}
	-- Argumente-Liste vorauswerten
	for _, a in ipairs(frame.args) do
		local equal = string.find(a, "=") or 0
		local attr =  str.strip(string.sub(a, 1, math.max(equal - 1, 0)))
		local val =  str.strip(string.sub(a, equal + 1))
		table.insert(args, {attr = attr, val = val})
		if attr ~= "" then
			args[attr] = val
		end
	end
	-- Zeile zusammenbauen
	local line = {}
	for _, a in ipairs(args) do
		local attr = a.attr
		local val = a.val
		-- Sonderbehandlung Beruf
		if attr == "Beruf" then
			table.insert(line, ber.berufePageLinkListe(val, ","))
		-- Sonderbehandlung Datum
		elseif attr == "Geburtsdatum" or attr == "Todesdatum" then
			val = lfd.formatDate(val)
			local dateISO = args[attr .. "ISO"]
			if dateISO ~= nil then
				table.insert(line,
					{val, td_args = "data-sort-value=\"" .. dateISO .. "\""})
			else
				table.insert(line, val)
			end
		elseif attr == "GeburtsdatumISO" or attr == "TodesdatumISO" then		-- ignorieren (leer)
		-- alle sonstigen Standard-Attribute
		else
			table.insert(line, val)
		end
	end
	local t = htm.tableLine(line)
--	mw.logObject(t, "t")
	return t
end

function p.TableFooter(frame)
	return htm.TableFooter(frame)
end

return p