Modul:Zeit

Version vom 25. Januar 2014, 10:01 Uhr von wikivoyage>DerFussi (Paar Standards kopiert als Basis)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Die Dokumentation für dieses Modul kann unter Modul:Zeit/doc erstellt werden

local p = {}

function p._error( error_str )
	local frame = mw.getCurrentFrame()
	local localArgs = frame.args
	local templateArgs = frame:getParent().args
	
	-- Allgemeine Parameter auswerten
	if templateArgs['ignore_errors'] == nil 
		then 
			if localArgs['ignore_errors'] == nil then templateArgs['ignore_errors'] = '0' else templateArgs['ignore_errors'] = localArgs['ignore_errors'] end
	end
	if templateArgs['ignore_errors'] == '1' or templateArgs['ignore_errors'] == 'true' then return '' end

	if templateArgs['no_category'] == nil 
		then 
			if localArgs['no_category'] == nil then templateArgs['no_category'] = '0' else templateArgs['no_category'] = localArgs['no_category'] end
	end

	if templateArgs['error_category'] == nil 
		then 
			if localArgs['error_category'] == nil 
			then templateArgs['error_category'] = '[[Kategorie:Fehlerberichte des Moduls Formatierung]]' 
			else templateArgs['error_category'] = '[[Kategorie:' .. localArgs['error_category'] .. ']]' end
		else templateArgs['error_category'] = '[[Kategorie:' .. templateArgs['error_category'] .. ']]'
	end

	-- Fehler generieren
	local error_str = '<strong class="error">Fehler im Modul [[Modul:Formatierung|Formatierung]]: ' .. error_str .. '</strong>';
	if templateArgs['ignore_errors'] == '1' or templateArgs['ignore_errors'] == 'true' then error_str = '' end
	
	-- Kategorie generieren
	if templateArgs['no_category'] == '0' or templateArgs['ignore_errors'] == 'false' then error_str = templateArgs['error_category'] .. error_str end
 
	return error_str;
end

function p._testParams ( templateArgs, params )
	
	-- Argumente des invoke-Aufrufs holen
	local frame = mw.getCurrentFrame()
	local localArgs = frame.args

	-- Variablen für Parameterauswertung
	local errorMsg = 'Unbekannte(r) Parameter: '
	local errorCat = '[[Kategorie:Vorlagen mit unbekannten Parametern]]'
	local errorOccured = false
	
	-- generell erlaubte Parameter
	local paramsWhitelist = { ignore_errors = 'ignore_errors', no_category = 'no_category', error_category = 'error_category' }
	
	-- Test ob unbekannte Parameter übergeben wurden (Tippfehler)
	-- 0-9 werden auch stillschweigend akzeptiert
	-- allgemeine Parameter werden auch akzeptiert
	for k, v in pairs(templateArgs) do 
		if  ( not ( ( params[k] ~= nil ) or ( paramsWhitelist[k] ~= nil ) ) ) and ( string.gsub( k, "%d", ".") ~= '.' )
		then 
			errorMsg = errorMsg .. k .. ', '
			errorOccured = true
		end
	end

	-- Parameter für Fehlerbehandlung auswerten
	if templateArgs['ignore_errors'] == nil
		then 
		if localArgs['ignore_errors'] == nil then templateArgs['ignore_errors'] = '0' else templateArgs['ignore_errors'] = localArgs['ignore_errors'] end
	end
	if templateArgs['no_category'] == nil
		then 
		if localArgs['no_category'] == nil then templateArgs['no_category'] = '0' else templateArgs['no_category'] = localArgs['no_category'] end
	end
	
	if errorOccured and ( templateArgs['ignore_errors'] == '0' or templateArgs['ignore_errors'] == 'false' )
		then 
			errorMsg = p._error ( string.sub ( errorMsg, 1 , string.len ( errorMsg ) - 2 ) )
		else 
			errorMsg = ''
	end
	if templateArgs['no_category'] == '0' or templateArgs['no_category'] == 'false' then errorMsg = errorMsg .. '[[Kategorie:Vorlagen mit unbekannten Parametern]]' end
	
	return errorMsg
end