« Module:Correction syntaxique » : différence entre les versions
(remplacement des retours lignes dans le message d'erreur pour éviter de casser le HTML (cf. page de discussion)) |
m (1 version importée) |
(Une version intermédiaire par le même utilisateur non affichée) | |
(Aucune différence)
|
Dernière version du 5 novembre 2023 à 19:00
La documentation pour ce module peut être créée à Module:Correction syntaxique/doc
local p = {} local function sanitize(text) return mw.text.nowiki(tostring(text):gsub('\n', ' ↲ ')) end local function _verif(passed_args, modele_args, cat) local rv = "" local nombre = 0 for a,b in pairs(passed_args) do if (modele_args[a] == nil and b ~= "") then nombre = nombre + 1 rv = rv .. '<span class="erreur_syntaxe_modele" style="display:none">L’argument ' .. sanitize(a) .. " (valeur " .. sanitize(b) .. ") n’existe pas dans le modèle appelé</span>" end end if (nombre > 0) then local categorie if (cat) and (cat ~= "") then categorie = tostring(mw.title.new(cat, "Catégorie")) else categorie = "Catégorie:Page appelant un modèle avec un paramètre inconnu" end if (nombre > 10) then rv = rv .. "[[" .. categorie .. "|+]]" else rv = rv .. "[[" .. categorie .. "]]" end end return rv end function p.verif( passed_args, modele_args_list, cat ) local modele_args = {} for i, v in ipairs( modele_args_list ) do if tonumber( v ) then modele_args[ tonumber( v ) ] = true else modele_args[ v ] = true end end return _verif( passed_args, modele_args, cat ) end function p.verifierLesArguments(frame) local passed_args = frame:getParent().args local modele_args = frame.args local cat = modele_args["_catégorie"] return _verif(passed_args, modele_args, cat) end return p