Modul:LinkFormDatum: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 38: | Zeile 38: | ||
elseif isEmpty(date_array[2]) then | elseif isEmpty(date_array[2]) then | ||
-- Datestring contained one "/" | -- Datestring contained one "/" | ||
mn = months[ | mn = months[tonumber(date_array[1])] | ||
return mn .. " [[" .. date_array[0] .. "]]" | return mn .. " [[" .. date_array[0] .. "]]" | ||
else | else | ||
mn = months[ | mn = months[tonumber(date_array[1])] | ||
return "[[" .. date_array[2] .. " " .. mn .. "]]" .. " [[" .. date_array[0] .. "]]" | return "[[" .. date_array[2] .. " " .. mn .. "]]" .. " [[" .. date_array[0] .. "]]" | ||
end | end |
Version vom 9. September 2024, 15:07 Uhr
LinkFormDate
Funktion, welche die Datumsfelder der Formulare zur Visualisierung in den Faktenboxen abbildet. Hierbei werden die Datumsangaben gleichzeitig semantisiert.
Die von der Vorlage übergebenen Parameter lauten:
- 1 = Datum, z. B. das Geburtsdatum in beliebigem Format
- 2 = Name des Hauptattributs, z. B. "Geburtsdatum"
- 3 = Name des Tagesattributes, z. B. "Geburtstag"
- 4 = Name des Jahresattributes, z. B. "Geburtsjahr"
FormatDate
Bringt ein semantisches Datum in die Übliche Darstellung, so dass Jahr und Monatstag klickbar sind.
local p = {}
local c = require( "Module:Common" )
function p.ParseFormDate( frame )
pf = frame:getParent()
args = pf.args
months={
[1] = "Januar",
[2] = "Februar",
[3] = "März",
[4] = "April",
[5] = "Mai",
[6] = "Juni",
[7] = "Juli",
[8] = "August",
[9] = "September",
[10] = "Oktober",
[11] = "November",
[12] = "Dezember"}
date = args[1]
attr_date = args[2]
attr_day = args[3]
attr_year = args[4]
date_array=split(date, "/")
if isEmpty(date_array[1]) then
-- When datestring contained no "/"
if isInteger(date_array[0]) then
-- When dateformat is just YYYY
return "[[" .. date_array[0] .. "]]"
else
-- Dateformat is <monthname> YYYY
mda = split(date_array[0])
return mda[0] .. " [[" .. mda[1] .. "]]"
end
elseif isEmpty(date_array[2]) then
-- Datestring contained one "/"
mn = months[tonumber(date_array[1])]
return mn .. " [[" .. date_array[0] .. "]]"
else
mn = months[tonumber(date_array[1])]
return "[[" .. date_array[2] .. " " .. mn .. "]]" .. " [[" .. date_array[0] .. "]]"
end
--l=string.len(date_array[0])
--t="[["..date_array[0].."]] " .. l .. " ".. tostring(date_array[1])--tostring(isInteger(date_array[0]))
return "t"
end
return p