Modul:Gebäude: Unterschied zwischen den Versionen

GetPLZ() von Module:Geocode
(+ Gebäude-Komplex-Handling. Übernahme von Work)
(GetPLZ() von Module:Geocode)
Zeile 2: Zeile 2:
local c = require("Module:Common")
local c = require("Module:Common")
local str = require("Modul:String")
local str = require("Modul:String")
local g = require("Module:Geocode")


function p.Faktenbox(frame)
function p.Faktenbox(frame)
local args = c.shallowcopy(frame:getParent().args)
local args = c.shallowcopy(frame:getParent().args)
args["PLZ"] = p.getPLZ(frame, args)
args["PLZ"] = g.GetPLZ(frame:getParent())


local tpl_bild = p.bild(frame, args)
local tpl_bild = p.bild(frame, args)
Zeile 70: Zeile 71:
function p.unternehmen(frame, args)
function p.unternehmen(frame, args)
return frame:expandTemplate{title='Gebäude/Unternehmen', args=args}
return frame:expandTemplate{title='Gebäude/Unternehmen', args=args}
end
function p.FormatHausnummer(frame)
-- #invoke wrapper
return formatHausnummer(frame.args[1])
end
function p.formatHausnummer(hausnummer)
-- Hausnummer ohne Buchstaben extrahieren, um damit PLZ zu ermitteln
local hausnr = ""
if not c.isEmpty(hausnummer) then
hausnr = tonumber(string.match("0" .. hausnummer, "%d+"))
end
return hausnr
end
function p.GetPLZ(frame)
-- #invoke wrapper
return p.getPLZ(frame, {
['Straße'] = frame.args[1],
['Hausnummer'] = frame.args[2],
})
end
function p.getPLZ(frame, args)
local hausnr = p.formatHausnummer(args["Hausnummer"])
local strasse = args['Straße'] or ""
local streets = str.split(strasse, ";") or {}
-- Ned schön, funktioniert aber. Iterative Multistraßen-Lösung wäre fein!
return frame:expandTemplate{title = 'StraßeHausnummer2PLZ', args={
['Straße'] = str.strip(streets[1]),
['HausnummerOhneBuchstaben'] = hausnr}
}
end
end


return p
return p