نماد توضیحات توضیحات پودمان[ایجاد]
local Check = {}  function Check._error( error_str, Module )    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 Modules ' .. Module .. ']]'           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 WV-Check-Error">Fehler im Module [[Module:' .. Module .. '|' .. Module .. ']]: ' .. 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 Check._testParams ( templateArgs, params, Module )     	-- Argumente des invoke-Aufrufs holen 	local frame = mw.getCurrentFrame() 	local localArgs = frame.args  	local localArgsNew = {} 	local templateArgsNew = {} 	 	for key,value in pairs ( localArgs ) do 		localArgsNew[mw.ustring.lower(tostring(key))] = value 	end 	for key,value in pairs ( templateArgs ) do 		templateArgsNew[mw.ustring.lower(tostring(key))] = value 	end 	localArgs = localArgsNew 	templateArgs = templateArgsNew  	-- 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.match ( k, '^%d*$' ) == nil )       then           errorMsg = errorMsg .. '<span style="font-weight: bold; font-style:italic">' .. k .. '</span> (über Vorlage), '          errorOccured = true       end    end        for k, v in pairs(localArgs) do       if  ( not ( ( params[k] ~= nil ) or ( paramsWhitelist[k] ~= nil ) ) ) and ( string.match ( k, '^%d*$' ) == nil )       then           errorMsg = errorMsg .. '<span style="font-weight: bold; font-style:italic">' .. k .. '</span> (über invoke), '          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 = Check._error ( string.sub ( errorMsg, 1 , string.len ( errorMsg ) - 2 ), Module )          if templateArgs['no_category'] == '0' or templateArgs['no_category'] == 'false' then errorMsg = errorMsg .. '[[Kategorie:Vorlagen mit unbekannten Parametern]]' end       else           errorMsg = ''    end        return errorMsg end  function Check._isParamUsed ( templateArgs, paramName )     	-- Argumente des invoke-Aufrufs holen 	local frame = mw.getCurrentFrame() 	local localArgs = frame.args 	 	local localArgsNew = {} 	local templateArgsNew = {}  	-- alles klein schreiben 	for key,value in pairs ( localArgs ) do 		localArgsNew[mw.ustring.lower(tostring(key))] = value 	end 	for key,value in pairs ( templateArgs ) do 		templateArgsNew[mw.ustring.lower(tostring(key))] = value 	end 	localArgs = localArgsNew 	templateArgs = templateArgsNew     	-- Test ein Parameter benutzt wurde 	for k, v in pairs(templateArgs) do 		if  ( k == paramName ) then return true end 	end 	    	for k, v in pairs(localArgs) do 		if  ( k == paramName ) then return true end 	end        return false end  function Check._testFile ( file, Module )        local errorMsg = ''        --eckige Klammern vergessen    if ( string.match ( file, '^%[%[%a' ) == nil ) then       errorMsg = Check._error ( 'führende eckige Klammern bei der Dateieinbindung vergessen' , Module )    end    if ( string.match ( file, '%]%]$' ) == nil ) then       errorMsg = errorMsg .. Check._error ( 'abschließende eckige Klammern bei der Dateieinbindung vergessen' , Module )    end        return errorMsg end  return Check