Modul:Gebäude: Unterschied zwischen den Versionen

Aus FürthWiki

Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 25: Zeile 25:
local tab_daten = '<tab name=Daten>' ..  
local tab_daten = '<tab name=Daten>' ..  
tpl_daten .. '</tab>'
tpl_daten .. '</tab>'
-- The tab "Artikel" is visible everytime
local tpl_pages = p.pages(frame, args)
local tab_pages = '<tab name=Artikel>' ..
tpl_pages .. '</tab>'
local t ='<div class=factbox><tabs>' ..  
local t ='<div class=factbox><tabs>' ..  
Zeile 30: Zeile 35:
  tab_karte ..
  tab_karte ..
  tab_daten ..  
  tab_daten ..  
  tab_pages ..
  '</tabs></div>'
  '</tabs></div>'


Zeile 46: Zeile 52:
function p.karte(frame, args)
function p.karte(frame, args)
return frame:expandTemplate{title='Kartentab', args=args}
return frame:expandTemplate{title='Kartentab', args=args}
end
function p.pages(frame, args)
return frame:expandTemplate{title='Gebäude/Artikel', args=args}
end
end



Version vom 27. August 2025, 17:28 Uhr

local p = {} --p stands for package
local c = require("Module:Common")
local str = require("Modul:String")

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

	local tpl_bild = p.bild(frame, args)
	local tab_bild=''
	if tpl_bild:gsub("%s+", "") ~= '' then
		tab_bild = '<tab name=Bild>' .. 
		tpl_bild .. '</tab>'
	end
	
	local tpl_karte = p.karte(frame, args)
	local tab_karte=''
	if tpl_karte:gsub("%s+", "") ~= '' then
		tab_karte = '<tab name=Karte>' .. 
		tpl_karte .. '</tab>'
	end
	
	-- The tab "Daten" is visible everytime
	local tpl_daten = p.daten(frame, args)
	local tab_daten = '<tab name=Daten>' .. 
	tpl_daten .. '</tab>'
	
	-- The tab "Artikel" is visible everytime
	local tpl_pages = p.pages(frame, args)
	local tab_pages = '<tab name=Artikel>' .. 
	tpl_pages .. '</tab>'
	
	local t ='<div class=factbox><tabs>' .. 
	   tab_bild .. 
	   tab_karte ..
	   tab_daten .. 
	   tab_pages .. 
	   '</tabs></div>'

	-- Use preprocess to render the factbox and all contens at once
	return frame:preprocess(t)
end

function p.bild(frame, args)
    return frame:expandTemplate{title='Bildertab', args=args}
end

function p.daten(frame, args)
    return frame:expandTemplate{title='Gebäude/Daten', args=args}
end

function p.karte(frame, args)
	return frame:expandTemplate{title='Kartentab', args=args}
end

function p.pages(frame, args)
	return frame:expandTemplate{title='Gebäude/Artikel', args=args}
end

function p.FormatHausnummer(frame)
	-- #invoke wrapper
	return formatHausnummer(frame.args['Hausnummer'])
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, args)
	local hausnr = p.formatHausnummer(args["Hausnummer"])
	local streets = str.split(args['Straße'], ";")
	
	-- 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

return p