Une page de Wikipedia, l'encyclopedie libre.
Utilisation
Fonctions exportables :
verifierLesArguments(frame)
? verifie l'existence des arguments passes a un modele
Exemple
En placant dans la source d'un modele le code suivant, chaque appel du modele va verifier la presence d'arguments autres que
nom
,
prenom
et
age
:
{{#invoke: Correction syntaxique | verifierLesArguments
| nom =
| prenom =
| age =
}}
Si d'autres arguments sont presents, alors :
- du code cache sera ecrit dans la page (visible en consultant la source HTML de la page, ou en affichant via CSS ou JavaScript les elements
.erreur_syntaxe_modele
)
- et la page sera ajoutee dans la categorie cachee
Page appelant un modele avec un parametre inconnu
.
Configuration
Il est possible de specifier la categorie a remplir en ajoutant un parametre
_categorie
:
{{#invoke: Correction syntaxique | verifierLesArguments
| nom =
| prenom =
| age =
| _categorie = Categorie:Modele Foobar avec un parametre inconnu
}}
(la saisie du namespace
Categorie:
peut etre omise)
Semble remplir la meme fonction que
Module:Check for unknown parameters
.
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 modele appele</span>"
end
end
if
(
nombre
>
0
)
then
local
categorie
if
(
cat
)
and
(
cat
~=
""
)
then
categorie
=
tostring
(
mw
.
title
.
new
(
cat
,
"Categorie"
))
else
categorie
=
"Categorie:Page appelant un modele avec un parametre 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
[
"_categorie"
]
return
_verif
(
passed_args
,
modele_args
,
cat
)
end
return
p