Importer, Bürokraten, Moderatoren (CommentStreams), Strukturierte-Diskussionen-Bots, Oberflächenadministratoren, Push-Abonnementverwalter, Oversighter, Administratoren, Kampagnenbearbeiter (Hochladeassistent)
855
Bearbeitungen
KKeine Bearbeitungszusammenfassung |
K (9 Versionen von wikivoyage:Modul:Check2 importiert) |
||
| (9 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 36: | Zeile 36: | ||
end | end | ||
function Check._testParams ( templateArgs, params, modul | function Check._testParams ( templateArgs, params, modul ) | ||
-- 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) | -- Test ob unbekannte Parameter übergeben wurden (Tippfehler) | ||
| Zeile 65: | Zeile 66: | ||
-- allgemeine Parameter werden auch akzeptiert | -- allgemeine Parameter werden auch akzeptiert | ||
for k, v in pairs(templateArgs) do | for k, v in pairs(templateArgs) do | ||
if ( not ( ( params[ | if ( not ( ( params[k] ~= nil ) or ( paramsWhitelist[k] ~= nil ) ) ) and ( string.match ( k, '^%d*$' ) == nil ) | ||
then | then | ||
errorMsg = errorMsg .. '<span style="font-weight: bold; font-style:italic">' .. k .. '</span> (über Vorlage), ' | errorMsg = errorMsg .. '<span style="font-weight: bold; font-style:italic">' .. k .. '</span> (über Vorlage), ' | ||
| Zeile 73: | Zeile 74: | ||
for k, v in pairs(localArgs) do | for k, v in pairs(localArgs) do | ||
if ( not ( ( params[ | if ( not ( ( params[k] ~= nil ) or ( paramsWhitelist[k] ~= nil ) ) ) and ( string.match ( k, '^%d*$' ) == nil ) | ||
then | then | ||
errorMsg = errorMsg .. '<span style="font-weight: bold; font-style:italic">' .. k .. '</span> (über invoke), ' | errorMsg = errorMsg .. '<span style="font-weight: bold; font-style:italic">' .. k .. '</span> (über invoke), ' | ||
| Zeile 99: | Zeile 100: | ||
return errorMsg | 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 | end | ||