<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://dansunegalaxie.ca/index.php?action=history&amp;feed=atom&amp;title=Module%3AArguments%2FDocumentation</id>
	<title>Module:Arguments/Documentation - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://dansunegalaxie.ca/index.php?action=history&amp;feed=atom&amp;title=Module%3AArguments%2FDocumentation"/>
	<link rel="alternate" type="text/html" href="https://dansunegalaxie.ca/index.php?title=Module:Arguments/Documentation&amp;action=history"/>
	<updated>2026-04-04T16:12:52Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://dansunegalaxie.ca/index.php?title=Module:Arguments/Documentation&amp;diff=259&amp;oldid=prev</id>
		<title>Yuki : 1 version importée : Infobox</title>
		<link rel="alternate" type="text/html" href="https://dansunegalaxie.ca/index.php?title=Module:Arguments/Documentation&amp;diff=259&amp;oldid=prev"/>
		<updated>2023-11-15T07:11:25Z</updated>

		<summary type="html">&lt;p&gt;1 version importée : Infobox&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 15 novembre 2023 à 03:11&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key dugwiki:diff::1.12:old-258:rev-259 --&gt;
&lt;/table&gt;</summary>
		<author><name>Yuki</name></author>
	</entry>
	<entry>
		<id>https://dansunegalaxie.ca/index.php?title=Module:Arguments/Documentation&amp;diff=258&amp;oldid=prev</id>
		<title>wikipedia&gt;Escargot bleu : /* Fonctions exportables */</title>
		<link rel="alternate" type="text/html" href="https://dansunegalaxie.ca/index.php?title=Module:Arguments/Documentation&amp;diff=258&amp;oldid=prev"/>
		<updated>2023-07-20T08:34:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Fonctions exportables&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;includeonly&amp;gt;{{Shared Template Warning|Module: Arguments|Module:Arguments}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utilisation ==&lt;br /&gt;
Ce module fournit la fonction &amp;lt;code&amp;gt;getArgs(frame, options)&amp;lt;/code&amp;gt; permettant un traitement simplifié des arguments reçus dans un frame lors d&amp;#039;une invocation de module avec &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Il est prévu pour un usage par d&amp;#039;autres modules et non pour une invocation directe dans un modèle.&lt;br /&gt;
&lt;br /&gt;
=== Fonctions exportables ===&lt;br /&gt;
* &amp;lt;code&amp;gt;[[Module:Arguments#L-57|getArgs(frame, options)]]&amp;lt;/code&amp;gt; – Met en forme les arguments reçus dans le frame dans un tableau, dont le traitement peut être modifier selon la valeur de option. Le tableau est nommé &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; dans la liste des options ci-dessous.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Liste des options&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;10em&amp;quot; | Nom du paramètre !! scope=&amp;quot;col&amp;quot; | Type !! scope=&amp;quot;col&amp;quot; | Valeur par défaut !! scope=&amp;quot;col&amp;quot; | Utilisation&lt;br /&gt;
|-&lt;br /&gt;
! colspan=4 | Gestion des espaces vides&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;trim&amp;lt;/code&amp;gt; || booléen || style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;true&amp;lt;/syntaxhighlight&amp;gt; || Lorsque mis à &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;true&amp;lt;/syntaxhighlight&amp;gt;, enlève les espaces au début et à la fin de chaque argument du frame.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;removeBlanks&amp;lt;/code&amp;gt; || booléen || style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;true&amp;lt;/syntaxhighlight&amp;gt; || Lorsque mis à &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;true&amp;lt;/syntaxhighlight&amp;gt;, remplace les arguments constitués d&amp;#039;une chaîne de caractère vide ou d&amp;#039;une chaîne de caractère contenant uniquement des espaces par &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;nil&amp;lt;/syntaxhighlight&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;valueFunc&amp;lt;/code&amp;gt; || fonction : (key, value)&amp;lt;br&amp;gt;-&amp;gt; formattedValue || style=&amp;quot;text-align:center;&amp;quot; | / || Fonction à appliquer à chaque argument du frame, où &amp;lt;code&amp;gt;frame[key] = value&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&amp;#039;&amp;#039;&amp;#039;Exemple :&amp;#039;&amp;#039;&amp;#039; fonction enlevant les arguments vides et passant les arguments en minuscule :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
valueFunc = function (key, value)&lt;br /&gt;
	if not value then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	value = mw.ustring.lower(value)&lt;br /&gt;
	if mw.ustring.find(value, &amp;#039;%S&amp;#039;) then&lt;br /&gt;
		return value&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=4 | Gestion frame / parent&lt;br /&gt;
|-&lt;br /&gt;
| colspan=4 | Par défaut, ce module, récupère d&amp;#039;abord les arguments donnés dans l&amp;#039;invocation du module, puis ceux parents, généralement ceux issus de l&amp;#039;appel de modèle, mais &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;les paramètres du parent sont effacés par ceux du frame&amp;lt;/span&amp;gt;.&amp;lt;br&amp;gt;Concrètement, si un modèle ModèleExemple contient le code &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:ModuleExemple|fonction|ArgInvoke1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; et que ce modèle est lui-même appelé avec &amp;lt;code&amp;gt;{{m-|ModèleExemple|ArgModèle1|ArgModèle2}}&amp;lt;/code&amp;gt;, les arguments renvoyé par la fonction &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt; seront &amp;lt;code&amp;gt;ArgInvoke1&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;ArgModèle2&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;ArgModèle1&amp;lt;/code&amp;gt; n&amp;#039;est pas renvoyé. (nb.: Si l&amp;#039;appel de modèle est &amp;lt;code&amp;gt;{{m-|ModèleExemple}}&amp;lt;/code&amp;gt; sans argument, la fonction &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt; renvoie quand même &amp;lt;code&amp;gt;ArgInvoke1&amp;lt;/code&amp;gt;.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; || booléen || style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;false&amp;lt;/syntaxhighlight&amp;gt; || Lorsque mis à &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;true&amp;lt;/syntaxhighlight&amp;gt;, ce paramètre permet de ne prendre en compte que les arguments reçus du frame, c&amp;#039;est-à-dire généralement les arguments issus du &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; et non ceux issus de l&amp;#039;appel de modèle.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; || booléen || style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;false&amp;lt;/syntaxhighlight&amp;gt; || Lorsque mis à &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;true&amp;lt;/syntaxhighlight&amp;gt;, ce paramètre permet de ne prendre en compte que les arguments reçus du parent, c&amp;#039;est-à-dire généralement les arguments issus de l&amp;#039;appel de modèle et non ceux issus du &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; || booléen || style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;false&amp;lt;/syntaxhighlight&amp;gt; || Lorsque mis à &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;true&amp;lt;/syntaxhighlight&amp;gt;, ce paramètre inverse l&amp;#039;ordre de priorité : les arguments reçus du parent écrasent les arguments reçus du frame.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;wrappers&amp;lt;/code&amp;gt; || &amp;#039;str&amp;#039; ou { &amp;#039;str&amp;#039;, &amp;#039;str&amp;#039;, ... }, || style=&amp;quot;text-align:center;&amp;quot; | / || Ce paramètre permet de définir une liste de modèles sur lesquels appliquer &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;parentOnly = true&amp;lt;/syntaxhighlight&amp;gt; (permet de cibler, contrairement au paramètre &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; qui désactive la lecture des arguments donnés au &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; pour toutes les invocations).&lt;br /&gt;
|-&lt;br /&gt;
! colspan=4 | Modification du contenu de args au sein du module&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;readOnly&amp;lt;/code&amp;gt; || booléen || style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;false&amp;lt;/syntaxhighlight&amp;gt; || Lorsque mis à &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;true&amp;lt;/syntaxhighlight&amp;gt;, empêche toute modification du contenu de &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt;. (Par défaut, rien ne l&amp;#039;empêche.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;noOverwrite&amp;lt;/code&amp;gt; || booléen || style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;false&amp;lt;/syntaxhighlight&amp;gt; || Lorsque mis à &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;true&amp;lt;/syntaxhighlight&amp;gt;, l&amp;#039;ajout de valeurs à &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; reste autorisée, mais les modifications du contenu déjà présent sont bloquées.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Modules externes et autres éléments dont ce module a besoin pour fonctionner ===&lt;br /&gt;
* &amp;lt;code&amp;gt;[[mw:Extension:Scribunto/Lua reference manual/fr#mw.title.new|mw.title.new]]&amp;lt;/code&amp;gt; – Crée un nouvel [[mw:Extension:Scribunto/Lua reference manual/fr#Objet title|objet title]].&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;[[mw:Extension:Scribunto/Lua reference manual/fr#frame:getParent|frame:getParent()]]&amp;lt;/code&amp;gt; – Si le &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; est contenu dans un modèle, &amp;lt;code&amp;gt;frame&amp;lt;/code&amp;gt; contient les arguments passés dans le &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;frame:getParent()&amp;lt;/code&amp;gt; contient les paramètres donnés dans l&amp;#039;appel de modèle.&lt;br /&gt;
* &amp;lt;code&amp;gt;[[mw:Extension:Scribunto/Lua reference manual/fr#frame:getTitle|frame:getTitle()]]&amp;lt;/code&amp;gt; – Renvoie le titre associé à l&amp;#039;[[mw:Extension:Scribunto/Lua reference manual/fr#L&amp;#039;objet Frame|objet &amp;#039;&amp;#039;frame&amp;#039;&amp;#039;]] sous forme de chaine de caractères. Pour l&amp;#039;objet &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; créé par &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, c&amp;#039;est le titre du module invoqué.&lt;br /&gt;
&lt;br /&gt;
Ce module fonctionne en utilisant des [[mw:Extension:Scribunto/Lua reference manual/fr#Méta-tables|méta-tables]] lua, dont notamment &amp;lt;code&amp;gt;__index&amp;lt;/code&amp;gt; qui permet de modifier le fonctionnement de l&amp;#039;indexation sur une table. Cela permet la récupération des arguments issus du frame et du parent simultanément, sans utiliser &amp;lt;code&amp;gt;pairs()&amp;lt;/code&amp;gt; qui pose parfois problème lorsqu&amp;#039;un argument contient des &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ref&amp;gt;...&amp;lt;/ref&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
En contrepartie, effectuer des opérations directement sur &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; ne fonctionnera pas correctement dans certains cas. Pour éviter toute surprise, il vaut mieux ne se servir d&amp;#039;&amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; que comme d&amp;#039;un intermédiaire pour l&amp;#039;attribution de valeur à des variables locales.&lt;br /&gt;
&lt;br /&gt;
== Exemples ==&lt;br /&gt;
=== Syntaxe minimale ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.nomFonction(frame)&lt;br /&gt;
    local val = &amp;#039;&amp;#039;&lt;br /&gt;
	local args = getArgs(frame) -- Les données fournies au {{#invoke:}} sont traitées ici.&lt;br /&gt;
&lt;br /&gt;
    if args[1] == &amp;#039;nom&amp;#039; then -- Le code qui suit est un exemple, rien n&amp;#039;est obligatoire pour l&amp;#039;utilisation du module.&lt;br /&gt;
        val = args[2]&lt;br /&gt;
    else&lt;br /&gt;
        return nil&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return val&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Syntaxe complète ===&lt;br /&gt;
Dans le cas où la fonction est susceptible d&amp;#039;être appelée depuis un autre module, il est recommandé de créer deux fonctions. En plus de donner un exemple de syntaxe complète, l&amp;#039;exemple suivant donne un exemple de cette bonne pratique.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame, {&lt;br /&gt;
		trim = false,&lt;br /&gt;
		removeBlanks = false,&lt;br /&gt;
		valueFunc = function (key, value)&lt;br /&gt;
			-- Code de valueFunc&lt;br /&gt;
		end,&lt;br /&gt;
		frameOnly = true,&lt;br /&gt;
		parentOnly = true,&lt;br /&gt;
		parentFirst = true,&lt;br /&gt;
		wrappers = {&lt;br /&gt;
			&amp;#039;Modèle:A&amp;#039;,&lt;br /&gt;
			&amp;#039;Modèle:B&amp;#039;&lt;br /&gt;
		},&lt;br /&gt;
		readOnly = true,&lt;br /&gt;
		noOverwrite = true&lt;br /&gt;
	})&lt;br /&gt;
&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	-- Code principal du module.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Traitements supplémentaires des arguments ===&lt;br /&gt;
Le traitement des booléens n&amp;#039;est pas géré par défaut. Pour récupérer des booléens, il faut utiliser le &amp;lt;code&amp;gt;[[Module:yesno]]&amp;lt;/code&amp;gt;. En outre, la conversion de str en nombres se fait via la fonction &amp;lt;code&amp;gt;[[mw:Extension:Scribunto/Lua reference manual/fr#tonumber|tonumber]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local yesno = require(&amp;#039;Module:yesno&amp;#039;)&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.nomFonction(frame)&lt;br /&gt;
	local args = getArgs(frame) -- Les données fournies au {{#invoke:}} sont traitées ici.&lt;br /&gt;
&lt;br /&gt;
    if yesno(args[1]) then -- Le changement de string en booléens est effectué à l&amp;#039;aide du module Yesno.&lt;br /&gt;
        return tonumber(args[2]) -- Le changement de string en nombre est effectué à l&amp;#039;aide de la fonction tonumber.&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* [[Module:Outils]] dont la fonction &amp;lt;code&amp;gt;[[Module:Outils#validTextArg|extractArgs(frame, options)]]&amp;lt;/code&amp;gt; est une version simplifiée de &amp;lt;code&amp;gt;arguments.getArgs(frame, options)&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Projet Scribunto}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Catégorie:Méta-module]]&lt;br /&gt;
[[Catégorie:Module appelé par un autre module]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>wikipedia&gt;Escargot bleu</name></author>
	</entry>
</feed>