Această pagină este protejată de mișcare
Această pagină este protejată

Modul: verificare parametru necunoscut

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Modul pentru a verifica dacă un șablon este utilizat cu parametri necunoscuți. Ar trebui să fie utilizat în șablon, specificând lista numelor parametrilor valabili și textul de returnat în caz de eroare, cum ar fi un mesaj sau o categorie de servicii.

Sintaxă

{{#invoke:Controllo parametri sconosciuti|check|sconosciuto=...|elenco parametri validi}}

Parametri:

  • necunoscut = folosit pentru a defini textul care trebuie returnat de fiecare dată când este găsit un parametru necunoscut. Poate fi de exemplu un mesaj de eroare sau o categorie sau ambele. Valoarea implicită este „Găsit _VALUE_” (unde _VALUE_ este un substituent care va fi înlocuit cu numele parametrului necunoscut).
  • ignoravuoti = dacă este setat cu orice valoare, de exemplu 1, verificarea nu se efectuează asupra parametrilor fără valoare.
  • controlpositional = dacă este setat cu orice valoare, de exemplu 1, controlul se efectuează și pe parametrii poziționali.
  • ns = când parametrul „necunoscut” returnează o categorie, clasificarea este implicită exclusă din toate spațiile de nume ale discuțiilor și din cea a utilizatorului; cu acest parametru este posibil, în schimb, să-l activați pentru spațiul de nume specificat (oricare ar fi acesta) și să-l limitați doar la acesta. Numai numerele spațiului de nume sunt acceptate ca valori, nu numele lor complete.

Exemple

Exemplele se referă la un șablon ipotetic numit Test, care acceptă doar trei parametri: Nume, Imagine și An. Următorul cod trebuie inserat în șablonul de testare, de preferință în partea de jos.

  1. Clasificați fiecare intrare care utilizează șablonul de testare și utilizați un alt parametru decât numele, imaginea sau anul din categoria „Intrări cu șablonul de testare cu parametri necunoscuți”:
     {{#invoke: Verificați parametrii necunoscuți | verificați | necunoscut = [[Categorie: Elemente cu șablon Test cu parametri necunoscuți]] | Nume | Imagine | An}}
  2. Afișează mesajul de eroare „Eroare parametrul ... este necunoscut” în fiecare intrare care folosește șablonul de testare și folosește un alt parametru decât numele, imaginea sau anul:
     {{#invoke: Verificați parametrii necunoscuți | verificați | necunoscut = <span class = "error"> Eroare: parametrul _VALUE_ este necunoscut </span> | Nume | Imagine | An}} 

 - [[
* Modul pentru a verifica dacă un șablon este utilizat cu parametri necunoscuți.
* Trebuie utilizat în șablon, specificând lista cu nume de parametri valizi și
* textul care trebuie returnat în caz de eroare, cum ar fi un mesaj sau o categorie de servicii.
*
* Modulul a fost importat din:
* http://en.wikipedia.org/w/index.php?title=Module:Check_for_unknown_parameters&oldid=669492475
]] -

local p = {}

funcția locală nu este vid ( e )
returnează s și s : match ( '^% s * (.-)% s * $' ) ~ = "
Sfârșit

funcția p. verifica ( cadru )
local args = cadru . argumente
local pargs = frame : getParent (). argumente
local ignoreblank = isnotempty ( frame . args [ 'ignoreblank' ])
checkpos locale = isnotempty ( frame . args [ ' checkpositional ' ])
local knownargs = {}
local unknown = '_VALUE_ găsit,'

local res = {}
regexps locale = {}
comentarii locale = {}
comentariu local = "

- este activat în toate spațiile de nume non-discuție și non-utilizator,
- sau numai în cel definit în parametrul „ns”
local ns = mw . titlu . getCurrentTitle (). spațiu de nume
dacă arg. ns atunci
dacă ns ~ = tonumber ( args . ns ) atunci
intoarce ''
Sfârșit
elseif ns == 2 sau ( ns % 2 == 1 ) atunci
intoarce ''
Sfârșit

- creați lista de argumente cunoscute, expresii regulate și șirul de returnare
pentru k , v în perechi ( args ) do
dacă tastați ( k ) == „număr” atunci
v = mw . ustring. gsub ( v , '^% s * (.-)% s * $' , '% 1' )
knownargs [ v ] = 1
altfel
if ( k == 'necunoscut' și tastați ( v ) == 'șir' ) atunci
necunoscut = v
elseif ( mw . ustring . match ( k , '^ regexp [% d] * $' ) și tastați ( v ) == 'șir' ) apoi
table.insert ( regexps , '^' .. v .. '$' )
Sfârșit
Sfârșit
Sfârșit

- parcurgeți argumentele părinte și asigurați-vă că sunt pe listă
pentru k , v în perechi ( pargs ) do
if ( tastați ( k ) == 'șir' și knownargs [ k ] == zero ) atunci
local knownflag = zero
pentru r = 1 , fac # regexps
if ( mw . ustring . match ( k , regexps [ r ]) ) atunci
steag cunoscut = 1
Sfârșit
Sfârșit
if ( ( not knownflag ) și ( ( not ignoreblank ) sau ( ignoreblank și isnotempty ( v )) ) ) atunci
k = mw . ustring. gsub ( k , '[^% w \ -_]' , '?' )
local r = mw . ustring. gsub ( necunoscut , „_VALUE_” , k )
table.insert ( res , r )
table.insert ( comentarii , '"' .. k .. '"' )
Sfârșit
elseif (checkpos și tastați (k) == 'număr' și notele cunoscute [tostring (k)] == zero) atunci
if ( ( nu ignoreblank ) sau ( ignoreblank și isnotempty ( v )) ) atunci
local r = mw . ustring. gsub ( necunoscut , „_VALUE_” , k )
table.insert ( res , r )
table.insert ( comentarii , '"' .. k .. '"' )
Sfârșit
Sfârșit
Sfârșit

if ( # comentarii > 0 ) atunci
commentstr = '<! - Modul: Verificați parametrii necunoscuți:' ..
table.concat ( comentarii , ',' ) .. '->'
Sfârșit
	
return tabel.concat ( res ) .. commentstr
Sfârșit

retur p