Modul:LinkFormDatum
Aus FürthWiki
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] = date_array[2]:gsub('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