Modul:Faktenbox/Zeilen: Unterschied zwischen den Versionen

+ getTelUri()
(Hausnummern Mehrzahl)
(+ getTelUri())
 
Zeile 217: Zeile 217:
t = t .. p.setPageAttr(attr_name, val, args.val_show_only)
t = t .. p.setPageAttr(attr_name, val, args.val_show_only)
else -- alle anderen Attribut-Datentypen
else -- alle anderen Attribut-Datentypen
if mw.smw.getPropertyType(attr_name) == "_tel" then -- Telefonnummer Spezialbehandlung
val =  p.getTelUri(val)
end
t = t .. p.setStandardAttr(attr_name, val, args.exclude_bracket_values, args.val_show_only)
t = t .. p.setStandardAttr(attr_name, val, args.exclude_bracket_values, args.val_show_only)
end
end
Zeile 286: Zeile 289:
-- mw.logObject(t, "t")
-- mw.logObject(t, "t")
return t
return t
end
function p.getTelUri(val)
local tel = str.strip(val) -- preload default
if mw.ustring.sub(tel, 1, 1) == "0" and -- beginnt mit 0zzz (z = Zahl)
(tonumber(mw.ustring.sub(tel, 2, 2)) or 0) > 0 then
tel = "+49 " .. mw.ustring.sub(tel, 2)
elseif mw.ustring.sub(tel, 1, 3) == "+49" then -- +49 (0) ...
s, e = mw.ustring.find(tel, "%(0%)")
if s ~= nil then
tel = mw.ustring.sub(tel, 1, s - 1) .. " " .. mw.ustring.sub(tel, e + 1)
end
end
-- Alle unerlaubten Zeichen und mehrfache Leerzeichen ausfiltern
local telUri = ""
local previous_char = ""
tel = tel .. " "
for i = 1, mw.ustring.len(tel) do
local char = mw.ustring.sub(tel, i, i)
if tonumber(char) ~= nil or
char == "+" or char == "-" or char == "/" or
(char == " " and previous_char ~= " ") then
telUri = telUri .. previous_char
previous_char = char
end
end
return telUri
end
end


return p
return p