Modul:LinkFormDatum
Zur Navigation springen
Zur Suche springen
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.LinkFormDate( 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, "/")
mw.smw.set({[attr_date] = date})
if isEmpty(date_array[1]) then
-- When datestring contained no "/"
if isInteger(date_array[0]) then
-- When dateformat is just YYYY
return "[[" .. attr_year .. "::" .. date_array[0] .. "]]"
else
-- Dateformat is <monthname> YYYY
mda = split(date_array[0])
return mda[0] .. " [[" .. attr_year .. "::" .. mda[1] .. "]]"
end
elseif isEmpty(date_array[2]) then
-- Datestring contained one "/"
mn = months[tonumber(date_array[1])]
return mn .. " [[" .. attr_year .. "::" .. date_array[0] .. "]]"
else
-- Dateformat should be YYYY/MM/DD
mn = months[tonumber(date_array[1])]
date_array[2] = string.gsub(date_array[2], '0*', '', 1)
return "[[" .. attr_day .. "::" .. date_array[2] .. ". " .. mn .. "]]" ..
" [[" .. attr_year .. "::" .. date_array[0] .. "]]"
end
end
function p.FormatDate( frame )
pf = frame:getParent()
args = pf.args
date = args[1]
date_array=split(date, " ")
if isEmpty(date_array[1]) then
-- When datestring contained no " ", thus is year
return "[[" .. date_array[0] .. "]]"
elseif isEmpty(date_array[2]) then
-- When datestring contains monthname and year
return date_array[0] .. " [[" .. date_array[1] .. "]]"
else
-- When datestring contains day, monthname and year
return "[[" .. date_array[0] .. ". " .. date_array[1] .. "]] " ..
"[[" .. date_array[2] .. "]]"
end
end
return p