« Initiation au Lua avec Scribunto/L'objet Frame » : différence entre les versions

Contenu supprimé Contenu ajouté
Jpgibert (discussion | contributions)
Jpgibert (discussion | contributions)
Ligne 348 :
 
=== frame:getArgument ===
Cette fonction permet de récupérer un argument passé en paramètre au module. Il y a 2 signatures possibles :
{{...}}
 
# '''frame:getArgument(number)''' - où ''number'' représente l'index de l’argument à récupérer
# '''frame:getArgument(name)''' - où ''name'' représente le nom de la clé associée à l’argument à récupérer
 
La fonction retourne un objet offrant une méthode ''expand()'' permettant de récupérer la valeur interprétée. Cette valeur est obtenu en appelant : '''objet:expand()''' où objet est la variable dans laquelle a été stockée le résultat de l'exécution de la fonction.
 
Le type de l’objet étant une table, on peut en parcourir le contenu avec les fonctions '''pairs()''' ou '''ipairs()'''. La valeur obtenue sera alors brute, c'est-à-dire non interprétée.
 
<syntaxhighlight lang="lua">
local p = {}
 
function p.argument(frame)
local reponse = ""
reponse = frame:getArgument(1)
if reponse == nil then
return "Il y a un problème, la fonction a retourné : nil"
else
return "La fonction a retourné : "..reponse:expand().." et son type est : "..type(reponse)
end
end
 
function p.namedArgument(frame)
local reponse = ""
reponse = frame:getArgument("fleur")
if reponse == nil then
return "Il y a un problème, la fonction a retourné : nil"
else
return "La fonction a retourné : "..reponse:expand().." et son type est : "..type(reponse)
end
end
 
return p
</syntaxhighlight>
 
'''<nowiki>{{#invoke:Frame|argument|3|fleur=Tulipe|7|janvier}}</nowiki>''' nous indique : {{#invoke:Frame|argument|3|fleur=Tulipe|7|janvier}}
 
'''<nowiki>{{#invoke:Frame|namedArgument|3|fleur=Tulipe}}</nowiki>''' nous indique : {{#invoke:Frame|namedArgument|3|fleur=Tulipe}}
 
=== frame:newParserValue ===