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

Contenu supprimé Contenu ajouté
Jpgibert (discussion | contributions)
m Robot : Remplacement de texte automatisé (-\n(==={0,3})(?: *)([^\n=]+)(?: *)\1(?: *)\n +\n\1 \2 \1\n)
Ligne 11 :
__TOC__
{{Clr}}
== Nature de l’objet frame ==
 
Une remarque que l’on peut faire à propos de l’objet '''frame''' et de la façon de l’utiliser comme l'accès aux arguments '''frame.args[1]''', '''frame.args[2]''', etc. est la ressemblance avec les notations relatives aux tables. '''frame''' serait une table et '''frame.args''' que l’on pourrait aussi noter '''frame["args"]''' serait une table, indexée par la chaîne de caractères "args", se trouvant dans la table '''frame'''. Par contre '''frame.args''' serait une table à accès numérique. C'est pour cela que l’on note ses arguments '''frame.args[1]''', '''frame.args[2]''', etc.
Ligne 50 :
<br />
 
== Arguments avec clé sous forme de chaîne de caratères ==
 
Jusqu'à maintenant, nous avons déclaré, dans la commande #invoke, les arguments à la suite les uns des autres comme on déclare les objets d'une table à clé numérique. Le premier argument s'associant automatiquement à la clé 1, le deuxième à la clé 2 et ainsi de suite. Toutefois, de même que l’on a vu que, dans les tables, il est possible de créer des clés sous forme de chaîne de caractères, nous allons voir qu’il en est de même pour la pseudo-table '''frame.args'''. Pour cela, il suffit de déclarer, dans la commande '''#invoke''', les arguments avec clé sous forme de chaîne de caractères comme on le ferait pour une table.
Ligne 86 :
<br />
 
== Fonctions en relation avec l’objet frame ==
 
 
Ligne 125 :
 
 
=== frame:getParent ===
 
Cette fonction permet de connaître, à l'intérieur du module, les arguments du modèle qui a appelé le module où se trouve la fonction '''frame:getParent'''.
Ligne 207 :
}}
 
=== frame:newChild ===
 
Cette fonction permet d’utiliser des fonctions qui, normalement, attendent des arguments provenant d'une commande '''#invoke'''.
Ligne 231 :
 
 
=== frame:preprocess ===
 
Nous avons déjà eu l’occasion d'étudier cette fonction qui permet d'interpréter les modèles avant qu’ils ne soient retournés (voir le chapitre sur la [[Initiation au Lua avec Scribunto/Gestion de l'environnement|Gestion de l'environnement]]).
Ligne 252 :
 
 
=== frame:expandTemplate ===
 
La fonction "frame:expandTemplate" réalise à peu près la même chose que la fonction "frame:preprocess", mais uniquement pour les modèles. Par conséquent, pour les modèles, on préférera utiliser la fonction "frame:expandTemplate" car elle est plus rapide et moins sujette aux erreurs que la fonction "frame:preprocess".
Ligne 271 :
'''<nowiki>{{#invoke:Frame|template}}</nowiki>''' nous indique : {{#invoke:Frame|template}}
 
=== frame:argumentPairs ===
 
L'écriture '''frame:argumentPairs()''' est strictement identique à l'écriture '''pairs( frame.args )''' comme nous pouvons le constater dans l'exemple ci-dessous :
Ligne 297 :
 
 
=== frame:callParserFunction ===
Cette fonction permet de faire appel à un des multiples parseurs (analyseurs) disponibles dans l'extension [[mw:Help:Extension:ParserFunctions|ParserFunctions]]. Ces fonctions permettent d'analyser des chaînes de caractères selon certains critères et de s'assurer qu'elles sont valides et utilisables.
 
Ligne 312 :
'''<nowiki>{{#invoke:Frame|parser}}</nowiki>''' nous indique : {{#invoke:Frame|parser}}
 
=== frame:extensionTag ===
Cette fonction permet de poser un tag autour d'un texte. Un exemple type est le tag '''&lt;nowiki&gt;''' interdisant à l'interpréteur de page d'exécuter un contenu. Ainsi, si un contenu renvoyé par une fonction est susceptible d'être interprété comme un modèle, un lien ou autre, on peut utiliser la fonction '''frame:extensionTag()''' pour placer de manière automatique les balises '''&lt;nowiki&gt;'''.
 
Ligne 347 :
Rendu sans extensionTag : '''<nowiki>{{#invoke:Frame|notag}}</nowiki>''' nous indique : {{#invoke:Frame|notag}}
 
=== frame:getArgument ===
Cette fonction permet de récupérer un argument passé en paramètre au module. Il y a 2 signatures possibles :
 
Ligne 387 :
'''<nowiki>{{#invoke:Frame|namedArgument|3|fleur=Tulipe}}</nowiki>''' nous indique : {{#invoke:Frame|namedArgument|3|fleur=Tulipe}}
 
=== frame:newParserValue ===
{{...}}
 
Ligne 399 :
 
 
=== frame:newTemplateParserValue ===
{{...}}
 
Ligne 410 :
'''<nowiki>{{#invoke:Frame|temparval|3|Tulipe|7|janvier}}</nowiki>''' nous indique : {{#invoke:Frame|temparval|3|Tulipe|7|janvier}}
 
=== frame:getTitle ===
Cette fonction renvoie le nom du module Lua invoqué.
 
Ligne 431 :
'''<nowiki>{{#invoke:Frame|title}}</nowiki>''' nous indique : {{#invoke:Frame|title}}
 
== Liens Connexes ==
* [[mw:Extension:Scribunto/Lua reference manual|Manual de l'extension Scribunto (en)]]