Modul:LinkFormDatum: Unterschied zwischen den Versionen

linkFormDateAttrList() Modul:SMW geändert; + date nil check
(linkFormDateAttrList() string check)
(linkFormDateAttrList() Modul:SMW geändert; + date nil check)
 
Zeile 69: Zeile 69:
-- attr_list={}; print(p.linkFormDateAttrList{date="2026/02", attr_list=attr_list, attr_date="Datum", attr_day="Tag", attr_year="Jahr"}); mw.logObject(attr_list)
-- attr_list={}; print(p.linkFormDateAttrList{date="2026/02", attr_list=attr_list, attr_date="Datum", attr_day="Tag", attr_year="Jahr"}); mw.logObject(attr_list)
local t = ""
local t = ""
    -- date zerteilen
if args.date ~= nil then
    local date_array
    -- date zerteilen
if string.find(args.date, "/") ~= nil then -- regular case YYYY/MM/DD
    local date_array
    date_array = str.split(args.date, "/")
if string.find(args.date, "/") ~= nil then -- regular case YYYY/MM/DD
    else -- ISO-P case YYYY-MM-DD
    date_array = str.split(args.date, "/")
    date_array = str.split(args.date, "-")
    else -- ISO-P case YYYY-MM-DD
end
    date_array = str.split(args.date, "-")
-- Fälle unterscheiden
end
    local day, month, year
-- Fälle unterscheiden
    if com.isEmpty(date_array[2]) then -- "2026" oder "April 2026"
    local day, month, year
    -- When datestring contained no "/" => only year
    if com.isEmpty(date_array[2]) then -- "2026" oder "April 2026"
    if com.isInteger(date_array[1]) then
    -- When datestring contained no "/" => only year
    -- When dateformat is just YYYY
    if com.isInteger(date_array[1]) then
    year = date_array[1]
    -- When dateformat is just YYYY
    t = "[[" .. year .. "]]"
    year = date_array[1]
    else
    t = "[[" .. year .. "]]"
    -- Dateformat is <monthname> YYYY
    else
    local mda = str.split(date_array[1])
    -- Dateformat is <monthname> YYYY
    year = mda[2]
    local mda = str.split(date_array[1])
    t = mda[1] .. " [[" .. year .. "]]"
    year = mda[2]
    end
    t = mda[1] .. " [[" .. year .. "]]"
    elseif com.isEmpty(date_array[3]) then -- "2026/02"
    end
    -- Datestring contained one "/"
    elseif com.isEmpty(date_array[3]) then -- "2026/02"
    month = kal.month_names[tonumber(date_array[2])]
    -- Datestring contained one "/"
  year = date_array[1]
    month = kal.month_names[tonumber(date_array[2])]
    t = month .. " [[" .. year .. "]]"
  year = date_array[1]
    else
    t = month .. " [[" .. year .. "]]"
    -- Dateformat should be YYYY/MM/DD or YYYY-MM-DD
    else
    month = kal.month_names[tonumber(date_array[2])]
    -- Dateformat should be YYYY/MM/DD or YYYY-MM-DD
    date_array[3] = date_array[3]:gsub('0*', '', 1)
    month = kal.month_names[tonumber(date_array[2])]
    day = date_array[3] .. ". " .. month
    date_array[3] = date_array[3]:gsub('0*', '', 1)
    year = date_array[1]
    day = date_array[3] .. ". " .. month
    t = "[[" .. day .. "]]" .. " [[" .. year .. "]]"
    year = date_array[1]
    end
    t = "[[" .. day .. "]]" .. " [[" .. year .. "]]"
    -- Werte in Attributeliste eintragen. Bei nil wird nix eingetragen
    end
    if type(args.attr_list[args.attr_date]) ~= "string" then
    -- Werte in Attributeliste eintragen. Bei nil wird nix eingetragen
    smw.addAttrToList(args.attr_list, args.attr_date, args.date)
  smw.addAttrToList(args.attr_list, args.attr_date, args.date)
    end
    if type(args.attr_list[args.attr_date .. "Lfd"]) ~= "string" then
    smw.addAttrToList(args.attr_list, args.attr_date .. "Lfd", t)
    smw.addAttrToList(args.attr_list, args.attr_date .. "Lfd", t)
    end
  smw.addAttrToList(args.attr_list, args.attr_day, day)
    if args.attr_day ~= nil then
    smw.addAttrToList(args.attr_list, args.attr_day, day)
    end
    if args.attr_year ~= nil then
    smw.addAttrToList(args.attr_list, args.attr_year, year)
    smw.addAttrToList(args.attr_list, args.attr_year, year)
end
end -- if args.date ~= nil then
     return t
     return t
end
end