Module:RbpNote
Utilisation
- Basique
Vérifie la concordance du paramétrage article avec les paramètres répertoriés. Teste les doublons des alias.
{{#invoke:RbpNote|verifier_parametres_
|__configuration=;÷₦÷!¿__catégorie≈[[Catégorie:CATEGORIE]]<!--à adapter-->¿__modèle≈MODELE<!--à adapter-->¿__double_barre≈REFUS ou ADMIS<!--à adapter-->¿commentaire≈COMMENTAIRE ADAPTÉ
|_parametres=PARAM1;PARAM2;...PARAMi;ALIASA;ALIASB;...;ALIASZ;...;PARAMn;
|_P:PARAMi=<!-- ≈ -et pas = -->ALIASA;ALIASB;...;ALIASZ;PARAMi}}
Exemples: voir {{Notes}} {{Efn}}
Paramètres développés
Principe
{{#invoke:RbpNote|verifier_parametres_|__configuration=table-configuration-du-paramétrage|_parametres=table-paramètres-corrects-dans-l'article-plus-filtres|_P:paramètre=table-alias-corrects-pour-le-paramètre-plus-valeurs-cataloguées}}
.
La fonction de ce module affiche selon le besoin dans l'article les messages de non cohérence entre les paramètres qui ont été saisis dans l'appel au modèle; Traduit les paramètres non répertoriés, les doublons d'alias, les doublons fonctionnels, les liaisons hiérarchiques, les valeurs de paramètre non admises, et une mise en catégorie (cachée ou non) d'erreur répertoriant les articles défaillants est optionnelle. La logique de cohérence de paramétrage est codée dans le modèle associé au module, elle est mise dans des tables: configuration du modèle, paramètres, paramètre et ses alias.
table de configuration du modèle
- (balises-délimeurs ;÷₦÷!¿ Erreur Lua à la ligne 52 : attempt to concatenate local 'modelid' (a nil value).[note 1])
- catégorie des articles en erreur:
__catégorie≈[[Catégorie:la-catégorie-du-modèle]]¿
- libellé de ce modèle affiché dans la liste d'erreurs dans l'article
__modèle≈identifiant-modèle¿
- traitement des paramètres non-nommés (positionnels)
__double_barre≈option¿
- option "admis" si paramètres non nommés et nommés ou bien "refus" si uniquement paramètres à noms
- commentaire
commentaire≈commentaire-explicatif
table des paramètres
Les paramètres utilisables dans un article sont répertoriés dans une table littérale:
|_parametres=liste-des-paramètres-en-ordre-indifférent
- les paramètres sont séparés par “;”Erreur Lua à la ligne 52 : attempt to concatenate local 'modelid' (a nil value).[note 1]
- les paramètres ne doivent pas avoir d'espace avant et après eux.
- Un filtre concernant un paramètre est une option qui est inscrite comme un paramètre supplémentaire à la fin de la liste des paramètres déclarés.
C'est une table littérale inscrite dans la table. Le filtre s'écrit en ordonnant les paramètres de comparaison au paramètre particulier qui est mis en question:
_filtre:paramètre-concerné-(item 1)₦message-complémentaire-à-afficher-si-doublon-fonctionnel-(item 2)₦paramètre-prééminent-1-(item 3)₦paramètre-prééminent-2-(item 4)₦...
- les paramètres considérés sont séparés par “₦”Erreur Lua à la ligne 52 : attempt to concatenate local 'modelid' (a nil value).[note 1]
- les paramètres ne doivent pas avoir d'espace avant et après eux
- premier item le paramètre remis en question
- deuxième item le message d'erreur de fonction en double à libellé sans “₦” ni “;”Erreur Lua à la ligne 52 : attempt to concatenate local 'modelid' (a nil value).[note 1]
- items suivant le deuxième paramètre recommandés par rapport au premier remis en question
- NB: finir par un ";"Erreur Lua à la ligne 52 : attempt to concatenate local 'modelid' (a nil value).[note 1] s'il y a un autre filtre ou une autre liaison qui suit.
- Une liaison "hiérarchique" concernant un paramètre est une option qui est inscrite comme un paramètre supplémentaire à la fin de la liste des paramètres déclarés.
C'est une table littérale inscrite dans la table. La liaison s'écrit en ordonnant les paramètres de dépendance hiérarchiqueErreur Lua à la ligne 52 : attempt to concatenate local 'modelid' (a nil value).[note 2] du paramètre particulier qui est mis en erreur si le lien de la séquence est brisé par l'absence du paramètre dont il dépend:
_liaison:paramètre-concerné-(item 1)₦message-complémentaire-à-afficher-si-brisure-(item 2)₦paramètre-maître-1-(item 3)₦paramètre-maître-2-(item 4)₦...
- les paramètres considérés sont séparés par “₦”Erreur Lua à la ligne 52 : attempt to concatenate local 'modelid' (a nil value).[note 1]
- les paramètres ne doivent pas avoir d'espace avant et après eux
- premier item le paramètre remis en question
- deuxième item le message d'erreur de séquence hiérarchiqueErreur Lua à la ligne 52 : attempt to concatenate local 'modelid' (a nil value).[note 2] brisée, sans “₦” ni “;”Erreur Lua à la ligne 52 : attempt to concatenate local 'modelid' (a nil value).[note 1]
- items suivant le deuxième paramètre indispensables (maîtres) par rapport au premier remis en question
- NB: finir par un ";"Erreur Lua à la ligne 52 : attempt to concatenate local 'modelid' (a nil value).[note 1] s'il y a un autre filtre ou une autre liaison qui suit.
tables des alias
Les alias sont mis en groupe dans chaque table littérale par paramètre principal clé concerné (celui suggéré à l'édition visuelle). Ils sont testés pour déterminer les doublons.
_P:nom-du-paramètre-ayant-des-alias= liste-des-alias-en-ordre-de-prééminence-terminée-par-le-paramètre-lui-même
- les alias sont séparés par “;”Erreur Lua à la ligne 52 : attempt to concatenate local 'modelid' (a nil value).[note 1]
- les alias ne doivent pas avoir d'espace avant et après eux.
- Un "écran" filtrant les valeurs concernant un paramètre clé est une option qui est inscrite comme un paramètre supplémentaire à la fin de la liste.
Deux options conjointes existent pour la vérification de valeur paramétrée admise, une pour une obtenir une valeur parmi un ensemble obligatoire et une pour éviter une valeur inappropriée. Ce sont deux tables littérales inscrites dans la table des paramètres-alias.
- table catalogue des valeurs à choisir:
;_vobligatoire:message-complémentaire-à-afficher-si-choix-incorrect-(item 1)₦valeur-possible-(item 2)₦valeur-possible-(item 3)₦...₦valeur-possible-(item n)
- NB: si cette table est suivie de celle des refus la terminer par “;”Erreur Lua à la ligne 52 : attempt to concatenate local 'modelid' (a nil value).[note 1]
- table catalogue des valeurs à refuser:
;_vrefus:message-complémentaire-à-afficher-si-refus-(item 1)₦valeur-impossible-(item 2)₦valeur-impossible-(item 3)₦...₦valeur-impossible-(item n)
- NB: si cette table est suivie de celle des obligatoires la terminer par “;”Erreur Lua à la ligne 52 : attempt to concatenate local 'modelid' (a nil value).[note 1]
- les valeurs cataloguées dans chaque table sont séparées par “₦”Erreur Lua à la ligne 52 : attempt to concatenate local 'modelid' (a nil value).[note 1]
- les valeurs n'ont ni espace avant et arrière entre les virgules ni de virgule interne
- et l'ensemble des valeurs est précédé du message d'erreur dont le libellé n'a pas de “₦” ni de “;”Erreur Lua à la ligne 52 : attempt to concatenate local 'modelid' (a nil value).[note 1].
Code pour constituer un modèle
Configurer éventuellement à partir de ce code et adapter:
{{#invoke:RbpNote|verifier_parametres_ |__configuration=;÷₦÷! ¿__catégorie≈[[Catégorie:CATEGORIE]] ¿__modèle≈MODELE ¿__double_barre≈REFUS ou ADMIS ¿commentaire≈COMMENTAIRE |_parametres=PARAM1;PARAM2;...;PARAMn;<!--filtre présent ensuite -->filtre:PARAMx₦MESSAGEX₦PARAMa₦PARAMb₦...₦PARAMz;<!--; car autre filtre présent ensuite -->_filtre:PARAMπ₦MESSAGEΠ₦PARAMα₦PARAMβ₦...₦PARAMω;<!--; car liaison présente ensuite -->_liaison:PARAM£₦MESSAGE♦₦PARAM$₦PARAM€₦...₦PARAM¥ |_P:PARAMP=<!-- ≈ -et pas = -->ALIASA;ALIASB;...;ALIASZ;PARAMP;<!--catalogue refus présent ensuite -->_vrefus:MESSAGE-REFUS-(LISTE-VALEURS-REFUSEES)₦REFUSA₦REFUSB₦...₦REFUSZ;<!--catalogue choix présent -->_vobligatoire:MESSAGE-OBLIGATOIRE-(LISTE-VALEUR-A-CHOISIR)₦CHOIXA₦CHOIXB₦...₦CHOIXC |_P:ETC=<!-- ≈ -et pas =-->BLA;BLI;BLO;ETC;<!--catalogue refus -->_vrefus:MESSAGECSUR₦ah bon₦non₦peut-être;<!--; car catalogue choix présent ensuite -->_vobligatoire:MESSAGECHADOK₦ga₦bu₦zo₦meu}}
Notes techniques
- à ne pas toucher dans un modèle déjà en usage, sauf s'il apparait un gros problème (tuning) avec les libellés des messages générés. Substituer et configurer le modèle avec les nouvelles balises.
- La dépendance en arbre ou en réseau est décrite linéairement par la série de liaisons.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
-- Version: 06/05/2018 à usage restreint à l'"existant" sur modèles à parseurs
-- (sans intégration complète module Rbp pour les avertissements et options)
local p = {}
-->
local function _xist(objet) --> transforme localement un objet composite "qui n'existe pas" nil & '' (taille 0) en valeur false d'objet pour Rbp testable sans passer par pcall
if (tostring(objet) ~= nil and #tostring(objet) > 0 ) then return objet else return false end
end --fin _xist
-->
local function _coulerr (objet) -- rouge
local objet ='<span style="color:#d00000;">' .. objet .. '</span>'
return objet
end --fin _coulerr
-->
function p.verifier_parametres_ (frame)
local caterr = ''
local liste_err = ''
local referr = ''
local nb_erreurs = 0
local nb_double_barre = 0
--> mettre les args des alias sans passer par Rbp/Alias|alias_
local modele_args = frame.args
local article_args = frame:getParent().args
--> modele_args
local mc = '' -- pairs clef
local mp = '' -- pairs paramètre
--> article_args
local ac = '' -- pairs clef
local ap = '' -- pairs paramètre
-->
local modelid = modele_args["__Rbp"]
local i = 0
local j = 0
local wflag = 0
local RV = ""
for ac,ap in pairs(article_args) do
i = i + 1
if (modele_args[i] == nil and ap == '') and (modele_args['__double_barre'] == 'refus') then --> ||
nb_double_barre = nb_double_barre + 1
liste_err = liste_err.."[[Catégorie:DOUBLE BARRE]]".." Erreur. Modèle:"..modelid..". Définition de paramètre non-nommé à valeur absente par || ou |}} ,<br> "
end
--> chercher s'il y a correspondance
j = 0
wflag = false
for mc, mp in pairs(modele_args) do
j = j + 1
if ac == mc then
wflag = true
break
end
end
if wflag == false then
liste_err = liste_err.."Erreur. Modèle:"..modelid..". ( id_paramètre: " ..ac.." valeur: " ..ap.." ) <br> "
nb_erreurs = nb_erreurs + 1
end
end
if _xist(modele_args['_catégorie']) then
caterr=modele_args['_catégorie']
end
if (nb_erreurs > 0) then -->
referr = referr.._coulerr("<br> nb erreurs: "..nb_erreurs.."<br>[[catégorie:"..caterr.."]]"..liste_err)
end
return referr--.."RV"..RV
end
return p