Modul:Attribut

Aus FürthWiki

Version vom 19. Januar 2026, 10:23 Uhr von HeikoBot (Diskussion | Beiträge) (+ TableHeader(), TableFooter(), Sonderbehandlungen)

Seiten-Übersicht

Zur Klasse Attribut gehörende Seiten:
Hauptseite Unterseiten
Allgemein
Faktenbox Vorlagen
Formulare
Module
Abfrage Vorlagen
  • [[Vorlage:Abfrage Lua-Fehler in package.lua, Zeile 95: loop or previous error loading module 'Modul:SMW'|Abfrage Lua-Fehler in package.lua, Zeile 95: loop or previous error loading module 'Modul:SMW']]
{{Special:PrefixIndex/Vorlage:Abfrage Lua-Fehler in package.lua, Zeile 95: loop or previous error loading module 'Modul:SMW'/}}


Formulare
  • [[Formular:Abfrage Lua-Fehler in package.lua, Zeile 95: loop or previous error loading module 'Modul:SMW'|Abfrage Lua-Fehler in package.lua, Zeile 95: loop or previous error loading module 'Modul:SMW']]
{{Special:PrefixIndex/Formular:Abfrage Lua-Fehler in package.lua, Zeile 95: loop or previous error loading module 'Modul:SMW'/}}


Sonstige
  • [[Spezial:Abfrage ausführen/Abfrage Lua-Fehler in package.lua, Zeile 95: loop or previous error loading module 'Modul:SMW'|Abfrage ausführen]]


getAttrAttributes()

Gibt die Attribute eines Attributs zurück, z. B. Einzahl-/Mehrzahl-Anzeigetexte. Es liefert (alles, was im Formular des Attributs eintragbar ist):

  • ["Datentyp"] des Attributs
  • ["EhemalsAttribut"] = Wenn das Attribut mit einem anderen „Ehemals“-Attribut eine Kombi bildet. Z. B. Attribut:Abrissjahr ist kombiniert mit Attribut:Ehemals, somit ist „Ehemals“ als EhemalsAttribut bei Attribut:Abrissjahr eingetragen
  • ["Anzeigegenauigkeit"] = bei Datentyp Zahl
  • ["Einzahl"] bzw. ["Mehrzahl"] = Anzeigetext Einzahl/Mehrzahl (z B. in Faktenboxen und Tabellen-Spaltenköpfen)
  • ["Delimiter"] = Trennzeichen, falls Formular-Wert des Attribut als Liste ausgewertet werden soll
  • ["FieldArgs"] = Argumente für {{{field|...}}} der Attribute des Formulars
  • ["Infotext"] = Text für Hilfe-Popup {{#info:...|note}} der Attribute des Formulars
  • ["Anzeigeformat"] = Anzeigeformat eines Attributs bei einer #ask-Abfrage. Entspricht dem Ausdruck hinter der Raute. Z. B. ja,nein bei {{#ask:...|?Ehemals#ja,nein|...}}.

attrText() / AttrText()

Gibt Anzeigetext eines Attributs zurück.


local p = {}

local dev = require("Modul:Development")
local str = require("Modul:String")
local htm = require("Modul:HTML")
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)")
	-- Kommandozeile zum Debuggen:
	-- =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 td_args, vorname, nachname
	for i, a in ipairs(pargs) do
		local attr = args[i]
		local val = a
		-- Sonderbehandlung Beruf
		if attr == "Beruf" then
			val = ber.berufePageLinkListe(val, ",")
		-- Sonderbehandlung Datum
		-- 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
--		mw.logObject(val, "val")
		table.insert(line, val)
	end
	local t = htm.tableLine(line)
--	mw.logObject(t, "t")
	return t
end

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

return p