Vés al contingut

Mòdul:SimpleArgs/ús

De la Viquipèdia, l'enciclopèdia lliure

Utilitzat per altres mòduls per a comprovació de paràmetres passats.

Vegeu també Mòdul:SimpleArgs/i18n, Mòdul:SimpleArgs/i18n/ca, Mòdul:SimpleArgs/i18n/en, Mòdul:SimpleArgs/i18n/es.

Per traduir o revisar la traducció al vostre idioma del mòdul, editeu amb compte Data:I18n/SimpleArgs.tab.

Funcions

[modifica]
  • Arg(ument)s: arguments o llista de paràmetres del frame actual.
  • Par(armeter)Id(entificator): nom/s o l'ordre del paràmetre.
  • La marca * indica que és un paràmetre opcional. Si no es vol assignar un valor opcional no correlatiu es pot assignar el valor de nil.
Exemple: funció_de_número (Args, ParId, LimInf*, LimSup*) -> funció_de_número (args, 1, nil, 12), comprovarà que el número no sigui major de 12.
Òbviament seria correcte -> funció_de_número (args, 1), sense cap comprovació dels valors del números.
  • Str(ing): Cadena.
  • Num(ber): Número.
  • Int(teger): Enter.
  • Pos(itive)Num/Int: Número/enter positiu.
  • ZeroOrPosNum/Int: Zero o número/enter positiu.
  • Char(acter): Caràcter.
  • Tab(ble): Taula.

Principal

[modifica]
  • GetArgs (frame, HandleError*, SameSize*) - Retorna els arguments i el seu número.
Si HandleError == true -> Error.handle = true
Si SameSize == true -> Error.samesize = true

Manipulació dels errors

[modifica]
V/F Nom Paràmetres o
valors
Descripció
T Error

{
handle = false,
yes = false,
msg = '',
samesize = false,
}

Si handle = false, quan es produeix un error es presenta un error de lua. Així: Error Lua: error.

Si handle = true, és el qui fa el mòdul qui haurà de fer un return amb l'error, així return MsgError(), retornant el tipus de lletra d'un error de lua. Així: error. Es fa una comprovació paràmetre a paràmetre si no es detecta un error.

  • L'error s'anota a una variable.
  • S'anota que hi ha hagut un error i així no es comprova més errors en la resta de paràmetres.
  • Al final de la comprovació i entrada de variables el programador hauria d'escriure: if SA.Error.yes then return SA.MsgError() end (on SA està definida com local SA = require "Module:SimpleArgs").

Si handle = true i samesize = true llavors el missatge retornat serà amb lletra en negreta i de color vermell. Així: error.

F MsgError S*
  • Si S té valor s'assigna a Error.msg
  • Si S == nil retorna Error.msg amb estil de text
F GetAndClearError Retorna Error.msg i assigna com a no error, eliminant el contingut del missatge.

Vegeu els exemples

Comprovació dels noms dels paràmetres

[modifica]
V/F Nom Paràmetres o
Valors
Descripció
F CheckParams args, UsualArgs Comprovació dels noms dels paràmetres (d'args) segons la taula de noms permesos per als paràmetres (UsualArgs). Si un mateix paràmetre té diversos noms, aquests noms es poden agrupar en una taula, com es mostra en exemple més avall (mode senzill). Se genera un error indicant el nom de paraula no trobat.
V HasChild HasChild Utilitzat a CheckParamsM
F CheckParamsM args, UsualArgs, OtherArgs*, ArgNamesIn1 Realitza la comprovació dels paràmetres com CheckParams però amb taules més complexes.

UsualArgs La llista de paràmetres amb diverses estructures (vegeu més avall, a mode senzill i ).

OtherArgs És una taula senzilla que conté noms de paràmetres que no necessiten cap traducció. Es tracta de paràmetres per a funcions específiques com poden ser llistats de paràmetres, canvi d'idioma o una demostració.

Retorna dues taules amb els dos tipus d'errors trobats. Una llista amb els noms dels paràmetres no trobats i l'altre amb duplicats. Un paràmetre duplicat és un error rar que es pot produir quan un paràmetre pot tenir més d'una denominació i en la crida des d'una plantilla es fa més d'una crida amb pel mateix paràmetre.

Taules UsualArgs

[modifica]

1. Exemples per CheckParams i CheckParamsM o mode senzill:

{"name", "surname"}

Mode senzill amb més d'un nom per paràmetre:

{{"name","Name"}, {"surname","Surname"}}

2. Exemples per CheckParamsM o mode complex:

Utilitzant ArgNamesIn1 = true, s'indica que és el primer element o taula el que conté el nom o els noms dels paràmetres:

    ['birth'] = {{"birth_year",1}, "P569"}, 
    ['death'] = {{"death_year",2}, "P570"},
    ['intro'] = {"intro",          "Q305178"},

Utilitzant HasChild:

    [SA.HasChild] = true,
    ['year'] = {
        ['birth'] = {"birth_year",1},
        ['death'] = {"death_year",2},
    },	
    ['other'] = {
        ['intro'] = "intro",
    },	

Altres

[modifica]
  • p.ParamsSep = '/' - Variable usada per a la següent funció
  • ConcatParams (tab) - S'utilitza quan un paràmetre té més d'un nom per al mateix paràmetre.

Comprovació de números

[modifica]

Si el número N no és correcte assigna un missatge d'error.

Nom Paràmetres
CheckNum N, ParId, LimInf, LimSup
CheckNumIsInt N, ParId, LimInf*, LimSup*
CheckNumIsPos N, ParId, LimInf*, LimSup*
CheckNumIsZeroOrPos N, ParId, LimSup*

Comprovació de si les cadenes són números

[modifica]

Si la cadena S no és un número correcte, assigna un missatge d'error.

Nom Paràmetres
CheckSIsNum S, ParId, LimInf*, LimSup*
CheckSIsInt S, ParId, LimInf*, LimSup*
CheckSIsPosInt S, ParId, LimInf*, LimSup*
CheckSIsZeroOrPosInt S, ParId, LimSup*

Valors dels paràmetres específics del frame

[modifica]

Les funcions amb una R inicial indiquen que el paràmetre és necessari. Retornen el valor del tipus demanat del paràmetre si és correcte, en cas contrari retornen un missatge d'error.

Mireu els exemples de Mòdul:SimpleArgs/Tests/SVals

Cadenes

[modifica]
Nom Paràmetres
Str_Par Args, ParId, Default*
RStr_Par Args, ParId, OKEmpty*
Char_Par Args, ParId, Pattern, Default*
RChar_Par Args, ParId, Pattern
NulOrWhitespace_Par Args, ParId
StrChkTab_Par Args, ParId, Tab, CaseSens*, Default*
RStrChkTab_Par Args, ParId, Tab, CaseSens*
StrIdxChkTab_Par Args, ParId, Tab, CaseSens*, Default*
RStrIdxChkTab_Par Args, ParId, Tab, CaseSens*

Números reals

[modifica]
Nom Paràmetres
Num_Par Args, ParId, Default*, LimInf*, LimSup*
RNum_Par Args, ParId, LimInf*, LimSup*
PosNum_Par Args, ParId, Default*, LimInf*, LimSup*
RPosNum_Par Args, ParId, LimInf*, LimSup*
ZeroOrPosNum_Par Args, ParId, Default*, LimSup*
RZeroOrPosNum_Par Args, ParId, LimSup*

Números enters

[modifica]
Nom Paràmetres
Int_Par Args, ParId, Default*, LimInf*, LimSup*
RInt_Par Args, ParId, LimInf*, LimSup*
PosInt_Par Args, ParId, Default*, LimInf*, LimSup*
RPosInt_Par Args, ParId, LimInf*, LimSup*
ZeroOrPosInt_Par Args, ParId, Default*, LimSup*
RZeroOrPosInt_Par Args, ParId, LimSup*

Mida, html

[modifica]

On limits és una taula amb els marges inferior i superior dels 3 tipus de mida possibles: percentatge (perc), em i píxel (px):

Per exemple: {perc={20,100}, em={12,119}, px={200,1900}}

Nom Paràmetres
Size_Par Args, ParId, WithPerc, limits*, Default*
RSize_Par Args, ParId, WithPerc, limits*

Colors, html

[modifica]

Converteix el nom d'un color (o $NNNNN) a format NNNNNN.

Retorna, amb les següents funcions el color passat com a paràmetre és retornat com a cadena i sols en la part "numèrica" (NNNNNN). Així si el paràmetre és "Green" retorna '008000', i si és '#00800B' retorna '00800B'. Admet els noms de colors HTML.

Nom Paràmetres
Color_Par Args, ParId, Default*
RColor_Par Args, ParId

CheckSIsColor (S, ParId, Default) és utilitzada per les dues funcions anteriors, així

  • Per S == 'Green' returns true,'008000'
  • Per S == '#008000' returns true,'008000'

Alineació horitzontal

[modifica]

On els valors possibles són: left|esquerra|esquerre, center|centre i right|dreta|dret.

Nom Paràmetres
HAlign_Par Args, ParId, Default*
RHAlign_Par Args, ParId

Alineació vertical

[modifica]

On els valors possibles són: top|dalt, center|centre i bottom|avall.

Nom Paràmetres
VAlign_Par Args, ParId, Default*
RVAlign_Par Args, ParId

Booleà

[modifica]

On els valors possibles són: sí|s|yes|y|true|veritat|t|1 i no|n|false|fals|f|0

Nom Paràmetres
Bool_Par Args, ParId, Default*
RBool_Par Args, ParId

Índex d'una llista

[modifica]
Nom Paràmetres
StrIdxChkTab Args, ParId, CaseSens, Default, ...
RStrIdxChkTab Args, ParId, CaseSens, ...
StrIdxChkTabE Args, ParId, CaseSens, Default, ...
RStrIdxChkTabE Args, ParId, CaseSens, ...

Taules de cadenes o números

[modifica]

MinItemNum i MaxItemNum, indiquen el mínim i el màxim d'elements inserits en la taula.

Quan algun dels valors no estigui assignat s'actuarà segons OnEmpty: 0: S'inclourà. 1: No s'inclourà. 2. Activarà un error i el seu missatge.

D'un paràmetre
[modifica]

Per al mateix paràmetre amb els elements separats per Sep. Exemple, amb "Sep" = ":" i el paràmetre = "12 : 1 : 1,3" retorna {12, 1, 1.3}

Nom Paràmetres
StrTab_1Par Args, ParId, Sep, MinItemNum*, MaxItemNum*, OnEmpty*
NumTab_1Par Args, ParId, Sep, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*
PosNumTab_1Par Args, ParId, Sep, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*
ZeroOrPosNumTab_1Par Args, ParId, Sep, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*
IntTab_1Par Args, ParId, Sep, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*
PosIntTab_1Par Args, ParId, Sep, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*
ZeroOrPosIntTab_1Par Args, ParId, Sep, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*
De varis paràmetres
[modifica]

Nota diferencial, per Par(armeter)Id(entificator):

  • Si és una posició:
    • I és un 1: captarà tots els paràmetres des del primer fins a l'últim que no sigui un número. Així pot contenir paràmetres no numèrics (no posicionals alhora).
      • {{Funció|a|b|c|opcional=sí}} -> StrTab_NPar (args, 4, 1} -> {a,b,c}
      • {{Funció|opcional=sí|a|b|c}} -> StrTab_NPar (args, 4, 1} -> {a,b,c}
      • {{Funció|a|b|c}} -> StrTab_NPar (args, 3, 1} -> {a,b,c}
    • I és un altre número: captarà tots els paràmetres des de la posició fins a l'últim (passat per NArgs).
      • {{Funció|Paraula|a|b|c}} -> StrTab_NPar (args, 4, 2} -> {a,b,c}
      • {{Funció|Paraula|a|b|c}} -> StrTab_NPar (args, 4, 3} -> {b,c}
  • Si és una cadena, aquesta haurà de contenir un $d que serà substituït per un enter correlatiu (a partir de l'1) fins que no es trobi cap paràmetre. Exemple: 'para $d', buscarà 'para 1', 'para 2', etc.
  • Si és una taula, es farà la mateixa cerca que l'anterior punt per cadascun dels valors. Exemple: {'para $d', param $d}, buscarà 'para 1' i 'param 1', després 'para 2' i 'param 2', etc.

Les funcions:

Nom Paràmetres
StrTab_NPar Args, NArgs, ParId, MinItemNum*, MaxItemNum*, OnEmpty*
NumTab_NPar Args, NArgs, ParId, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*
PosNumTab_NPar Args, NArgs, ParId, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*
ZeroOrPosNumTab_NPar Args, NArgs, ParId, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*
IntTab_NPar Args, NArgs, ParId, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*
PosIntTab_NPar Args, NArgs, ParId, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*
ZeroOrPosIntTab_NPar Args, NArgs, ParId, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*

Mireu els exemples de Mòdul:SimpleArgs/Tests/SVals

Altres

[modifica]
F/V Nom Paràmetres Explicació
F HasValue v Returns true if (v ~= nil) and (v ~= '')
F deep_copy_table orig Returns a copy of table orig
F tableMerge t1, t2 Senzilla fusió de taules, utilitzat a loadI18n.
V wiki_langcode L'idioma de la Viquipèdia
F get_lang langcode Retorna langcode si té un valor, altrament retorna l'idioma de l'usuari si és que aquest no es troba en una pàgina d'article, en aquest cas retorna l'idioma de la Viquipèdia.
V lang_to_use Conté el valor de get_lang.
F I18nName ModName Retorna el nom del mòdul i18n, en cas de wiki_langcode ~= lang_to_use retorna i18n/lang_to_use si existeix.
F loadI18n ModName, DefTable Retorna la taula fusionada i18n amb DefTable.
F TemplateName frame Retorna el nom de la plantilla des de la qual és cridada. Així en la Plantilla:LaMeva, escrivint-hi {{#invoke:SimpleArg|TemplateName}}, o invocant des d'una funció (cridada des de la plantilla) d'un mòdul amb TemplateName(frame) retornarien: LaMeva.
F MainTemplateName frame Similar a l'anterior, per quan s'utilitza des de plantilles de prova. Així en la Plantilla:LaMeva/prova retornaria igualment: LaMeva
F CheckIsStr v, S Comprova que v sigui una cadena amb un valor, altrament genera un error.
F CheckIsStrOrTab v, S Comprova que v sigui una cadena amb un valor o una taula de cadenes amb valor, altrament genera un error.
F CheckIsAnyStrOrTab v, S Comprova que v sigui una cadena o una taula de cadenes, altrament genera un error.

Colors

[modifica]

ColorToHex (frame) converteix el nom del color a format hexadecimal.

color_black_contrast (frame) determina la lluminositat d'un color, amb algunes correccions per a grisos. A utilitzar per al fons d'un text de superposició. Prové en part de Three algorithms for converting color to grayscale. Existeix la funció _color_black_contrast (rgb) a cridar des d'un altre mòdul.

txtcolor_for_bg (frame), permet trobar el color "contrari" a l'introduït per tal d'aconseguir el màxim contrast del text, determinant si ha de ser blanc o negre. Existeix la funció _txtcolor_for_bg (rgb) a cridar des d'un altre mòdul.

ReverseColor (frame), alternatiu a color_black_contrast permet trobar el color "contrari" a l'introduït per tal d'aconseguir el màxim contrast. Això facilita determinar el color del text per a un fons de color determinat o viceversa. Existeix la funció _ReverseColor (rgb) a cridar des d'un altre mòdul. Exemple:

  • {{#invoke:SimpleArgs|ReverseColor|Red}} retorna Aqua
  • {{#invoke:SimpleArgs|ReverseColor|#000000}} retorna White
Examples of some color functions with some colors
Background color
and its name
ColorToHex color_black_contrast With text background
using prior column values(1)
txtcolor_for_bg (2)
255 --
 LightCyan  E0FFFF 242  LightCyan   LightCyan   
 yellow  FFFF00 235  yellow   yellow   
 Wheat  F5DEB3 213  Wheat    Wheat   
200 0.3
 aqua  00FFFF 184  aqua   aqua   
 lime  00FF00 163  lime   lime   
 silver  C0C0C0 159  silver   silver   
 Violet  EE82EE 143  Violet   Violet   
140 0.5
 fuchsia  FF00FF 92  fuchsia   fuchsia   
 olive  808000 88  olive   olive   
80 0.7
 red  FF0000 71  red   red   
 teal  008080 69  teal   teal   
 gray  808080 63  gray   gray   
 green  008000 61  green   green   
 maroon  800000 27  maroon   maroon   
 blue  0000FF 20  blue   blue   
 navy  000080 8  navy   navy   

1: Using <span style="background-color:rgba(255,255,255,opacity)> {{{1|}}} </span>

opacity = number from 0 to 1, usign the values 0.3, 0.5 and 0.7

2: Using ReverseColor