Modul:LinkFormDatum
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 (z. B. 20 Januar 2008) in die Übliche Darstellung (20. Januar 2008), so dass Jahr und Jahrestag klickbar sind und in die entsprechenden Artikel verlinken. Es funktioniert auch, wenn der Tag mit Punkt übergeben wird (also 20. Januar 2008).
HumanToFormDate
Bringt ein Menschenlesbares Datum wie "23. Februar 1985" in die semantische Form "1985/02/23". Die Konvertierung gelingt auch, wenn der Tag oder Tag und Monat fehlen. Das nun maschinenlesbare Format kann mit der Funktion LinkFormDate wieder semantisiert und in die Datenbank eingetragen werden (unter Nennung der Attribute, siehe dort).
Unterseiten
local p = {}
local c = require( "Module:Common" )
function p.ParseFormDate( frame )
pf = frame:getParent()
args = pf.args
mn={
[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
if isInteger(date_array[0]) then
return "[[" .. date_array[0] .. "]]"
end
--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