<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://fallout-wiki.com/index.php?action=history&amp;feed=atom&amp;title=Module%3APalette_de_navigation</id>
	<title>Module:Palette de navigation - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://fallout-wiki.com/index.php?action=history&amp;feed=atom&amp;title=Module%3APalette_de_navigation"/>
	<link rel="alternate" type="text/html" href="https://fallout-wiki.com/index.php?title=Module:Palette_de_navigation&amp;action=history"/>
	<updated>2026-07-18T15:27:33Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://fallout-wiki.com/index.php?title=Module:Palette_de_navigation&amp;diff=49733&amp;oldid=prev</id>
		<title>Kharmitch : Page créée avec « --Ce module implémente le modèle {{Palette de navigation}}.  local p = {}  -- Redéfinition utile. local format = mw.ustring.format  local lignes = 30 -- Nombre maximal... »</title>
		<link rel="alternate" type="text/html" href="https://fallout-wiki.com/index.php?title=Module:Palette_de_navigation&amp;diff=49733&amp;oldid=prev"/>
		<updated>2019-12-01T19:31:22Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « --Ce module implémente le modèle {{Palette de navigation}}.  local p = {}  -- Redéfinition utile. local format = mw.ustring.format  local lignes = 30 -- Nombre maximal... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--Ce module implémente le modèle {{Palette de navigation}}.&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Redéfinition utile.&lt;br /&gt;
local format = mw.ustring.format&lt;br /&gt;
&lt;br /&gt;
local lignes = 30 -- Nombre maximal de ligne.&lt;br /&gt;
local altern = 1 -- Variable d&amp;#039;alternance des lignes.&lt;br /&gt;
&lt;br /&gt;
local function erreur(texte, argManquant)&lt;br /&gt;
	local res = mw.html.create(&amp;#039;span&amp;#039;)&lt;br /&gt;
		:addClass(&amp;#039;error&amp;#039;)&lt;br /&gt;
		:wikitext(&amp;#039;Erreur :&amp;amp;nbsp;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	if argManquant then&lt;br /&gt;
		res:wikitext(format(&amp;#039;Paramètre &amp;lt;code&amp;gt;|%s=&amp;lt;/code&amp;gt; introuvable&amp;#039;, texte))&lt;br /&gt;
	else&lt;br /&gt;
		res:wikitext(texte)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tostring(res)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatageListe(liste)&lt;br /&gt;
	if liste:match(&amp;#039;^\n&amp;#039;) then&lt;br /&gt;
		return liste&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;\n&amp;#039; .. liste .. &amp;#039;\n&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function liens(args)&lt;br /&gt;
	local titre = mw.title.new(args[&amp;#039;modèle&amp;#039;], args.namespace or &amp;#039;Modèle&amp;#039;)&lt;br /&gt;
	local lien = function(abbr, texte, action)&lt;br /&gt;
		return mw.html.create(&amp;#039;li&amp;#039;)&lt;br /&gt;
			:wikitext(&amp;#039;[&amp;#039; .. titre:fullUrl(action) .. &amp;#039; &amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;abbr&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;abbr&amp;#039;)&lt;br /&gt;
				:attr(&amp;#039;title&amp;#039;, abbr)&lt;br /&gt;
				:cssText(args.couleur)&lt;br /&gt;
				:wikitext(texte)&lt;br /&gt;
				:done()&lt;br /&gt;
			:wikitext(&amp;#039;]&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	local res = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:addClass(&amp;#039;palette-liens liste-horizontale&amp;#039;)&lt;br /&gt;
		:addClass(&amp;#039;noprint plainlinksneverexpand&amp;#039;)&lt;br /&gt;
	res&lt;br /&gt;
		:tag(&amp;#039;ul&amp;#039;)&lt;br /&gt;
			:node(lien(&amp;#039;Voir ce modèle&amp;#039;, &amp;#039;v&amp;#039;))&lt;br /&gt;
			:node(lien(&amp;#039;Modifier ce modèle&amp;#039;, &amp;#039;m&amp;#039;, &amp;#039;action=edit&amp;#039;))&lt;br /&gt;
&lt;br /&gt;
	return res&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function entete(args)&lt;br /&gt;
	local res = mw.html.create()&lt;br /&gt;
	local modele = args[&amp;#039;modèle&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	-- Paramètre modèle.&lt;br /&gt;
	if modele and modele ~= &amp;#039;inactif&amp;#039; then&lt;br /&gt;
		res:node(liens(args))&lt;br /&gt;
	elseif not modele then&lt;br /&gt;
		res:wikitext(erreur(&amp;#039;modèle&amp;#039;, true))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Titre de la palette.&lt;br /&gt;
	res&lt;br /&gt;
		:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;palette-titre&amp;#039;)&lt;br /&gt;
			:cssText(args.couleur)&lt;br /&gt;
			:wikitext(args.titre or erreur(&amp;#039;titre&amp;#039;, true))&lt;br /&gt;
&lt;br /&gt;
	return res&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function banniere(args, banniere)&lt;br /&gt;
	if banniere then&lt;br /&gt;
		local res = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;palette-banniere liste-horizontale&amp;#039;)&lt;br /&gt;
			:cssText(args.couleur)&lt;br /&gt;
			:wikitext(formatageListe(banniere))&lt;br /&gt;
&lt;br /&gt;
		return res&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function image(args)&lt;br /&gt;
	if args.image then&lt;br /&gt;
		local res = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;palette-image&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
		if args.image:match(&amp;#039;^%[&amp;#039;) or args.image:match(&amp;#039;^%&amp;lt;&amp;#039;) then&lt;br /&gt;
			res:wikitext(args.image)&lt;br /&gt;
		else&lt;br /&gt;
			local lienImage = &amp;#039;[[Fichier:%s|100px]]&amp;#039;&lt;br /&gt;
			res:wikitext(format(lienImage, args.image))&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		return res&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function listeSimple(args, liste, n, pariteLigne)&lt;br /&gt;
	local res = mw.html.create(&amp;#039;li&amp;#039;)&lt;br /&gt;
		:addClass(&amp;#039;palette-ligne-simple&amp;#039;)&lt;br /&gt;
		:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;palette-liste-simple&amp;#039;)&lt;br /&gt;
			-- Parité d&amp;#039;une liste simple (sans groupe).&lt;br /&gt;
			:addClass(altern % 2 == 0 and pariteLigne&lt;br /&gt;
				and &amp;#039;palette-pair&amp;#039;&lt;br /&gt;
				or nil)&lt;br /&gt;
			:addClass(&amp;#039;liste-horizontale&amp;#039;)&lt;br /&gt;
			:cssText(args.styleliste)&lt;br /&gt;
			:wikitext(formatageListe(liste))&lt;br /&gt;
			:done()&lt;br /&gt;
	altern = altern + 1&lt;br /&gt;
&lt;br /&gt;
	return tostring(res)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function listeGroupe(args, groupe, liste, n)&lt;br /&gt;
	local res = mw.html.create(&amp;#039;li&amp;#039;)&lt;br /&gt;
		:addClass(&amp;#039;palette-ligne&amp;#039;)&lt;br /&gt;
		:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;palette-groupe&amp;#039;)&lt;br /&gt;
			:cssText(args.couleur)&lt;br /&gt;
			:wikitext(groupe)&lt;br /&gt;
			:done()&lt;br /&gt;
		:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;palette-liste&amp;#039;)&lt;br /&gt;
			-- Parité d&amp;#039;une liste avec groupe.&lt;br /&gt;
			:addClass(altern % 2 == 0&lt;br /&gt;
				and &amp;#039;palette-pair&amp;#039;&lt;br /&gt;
				or nil)&lt;br /&gt;
			:addClass(&amp;#039;liste-horizontale&amp;#039;)&lt;br /&gt;
			:wikitext(formatageListe(liste))&lt;br /&gt;
			:done()&lt;br /&gt;
	altern = altern + 1&lt;br /&gt;
&lt;br /&gt;
	return tostring(res)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function ligne(args, n, prefixe)&lt;br /&gt;
	prefixe = prefixe or &amp;#039;&amp;#039;&lt;br /&gt;
	local liste = args[&amp;#039;liste&amp;#039; .. prefixe .. n]&lt;br /&gt;
	local groupe = args[&amp;#039;groupe&amp;#039; .. prefixe .. n]&lt;br /&gt;
&lt;br /&gt;
	-- Liste seule.&lt;br /&gt;
	if liste and not groupe then&lt;br /&gt;
		return listeSimple(args, liste, n, true)&lt;br /&gt;
&lt;br /&gt;
	-- Liste et groupe présent.&lt;br /&gt;
	elseif groupe and liste then&lt;br /&gt;
		return listeGroupe(args, groupe, liste, n)&lt;br /&gt;
&lt;br /&gt;
	-- Groupe seul avec sous-ligne.&lt;br /&gt;
	elseif groupe then&lt;br /&gt;
		local sousLignes = &amp;#039;&amp;#039;&lt;br /&gt;
		for i = 1, lignes do&lt;br /&gt;
			local ligneCourante = ligne(args, i, prefixe .. n .. &amp;#039;.&amp;#039;)&lt;br /&gt;
			if not ligneCourante then break end&lt;br /&gt;
			sousLignes = sousLignes .. ligneCourante&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Détection des erreurs de paramètrage.&lt;br /&gt;
		if sousLignes == &amp;#039;&amp;#039; then&lt;br /&gt;
			return erreur(&amp;#039;Gestion incorrecte des groupes/sous-groupes&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Construction des sous-lignes.&lt;br /&gt;
		local res = mw.html.create(&amp;#039;li&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;palette-ligne&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;palette-groupe&amp;#039;)&lt;br /&gt;
				:cssText(args.couleur)&lt;br /&gt;
				:wikitext(groupe)&lt;br /&gt;
				:done()&lt;br /&gt;
			:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;palette-listes&amp;#039;)&lt;br /&gt;
				:tag(&amp;#039;ul&amp;#039;)&lt;br /&gt;
					:node(sousLignes)&lt;br /&gt;
			:allDone()&lt;br /&gt;
&lt;br /&gt;
		return tostring(res)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function section(args, n)&lt;br /&gt;
	local section = args[&amp;#039;section&amp;#039; .. n]&lt;br /&gt;
	local liste = args[&amp;#039;liste&amp;#039; .. n]&lt;br /&gt;
&lt;br /&gt;
	-- Liste seule.&lt;br /&gt;
	if liste and not section then&lt;br /&gt;
		return listeSimple(args, liste, n, true)&lt;br /&gt;
&lt;br /&gt;
	-- Section avec liste simple ou sous-ligne.&lt;br /&gt;
	elseif liste or section then&lt;br /&gt;
		local res = mw.html.create(&amp;#039;li&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;palette mw-collapsible mw-collapsed&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;border&amp;#039;, &amp;#039;0&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;border-top&amp;#039;, &amp;#039;2px solid transparent&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;font-size&amp;#039;, &amp;#039;100%&amp;#039;)&lt;br /&gt;
		local contenuSection = res:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;palette-section&amp;#039;)&lt;br /&gt;
			:cssText(args.couleur)&lt;br /&gt;
			:wikitext(section)&lt;br /&gt;
			:done()&lt;br /&gt;
			:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;mw-collapsible-content&amp;#039;)&lt;br /&gt;
				:tag(&amp;#039;ul&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
		-- Section avec liste simple.&lt;br /&gt;
		if liste and section then&lt;br /&gt;
			contenuSection:node(listeSimple(args, liste, n, false))&lt;br /&gt;
			return tostring(res)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Section avec sous-ligne.&lt;br /&gt;
		local sousLignes = &amp;#039;&amp;#039;&lt;br /&gt;
		for i = 1, lignes do&lt;br /&gt;
			local ligneCourante = ligne(args, i, n .. &amp;#039;.&amp;#039;)&lt;br /&gt;
			if not ligneCourante then break end&lt;br /&gt;
			sousLignes = sousLignes .. ligneCourante&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Détection des erreurs de paramètrage.&lt;br /&gt;
		if sousLignes == &amp;#039;&amp;#039; then&lt;br /&gt;
			return erreur(&amp;#039;Gestion incorrecte des sections&amp;#039;)&lt;br /&gt;
		end		contenuSection:wikitext(sousLignes)&lt;br /&gt;
&lt;br /&gt;
		return tostring(res)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function contenu(args)&lt;br /&gt;
	local res = mw.html.create(&amp;#039;ul&amp;#039;)&lt;br /&gt;
	local contenu = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	if args.image then&lt;br /&gt;
		res:addClass(&amp;#039;palette-image&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Détection d&amp;#039;une section. On suppose ici que la liste des arguments est&lt;br /&gt;
	-- ordonnée et ne comporte aucun saut.&lt;br /&gt;
	if args[&amp;#039;section1&amp;#039;]&lt;br /&gt;
	and (args[&amp;#039;liste1&amp;#039;]or args[&amp;#039;liste1.1&amp;#039;] or args[&amp;#039;groupe1.1&amp;#039;]) then&lt;br /&gt;
		for i = 1, lignes do&lt;br /&gt;
			local sectionCourante = section(args, i)&lt;br /&gt;
			if not sectionCourante then break end&lt;br /&gt;
			res:node(sectionCourante)&lt;br /&gt;
			altern = 1&lt;br /&gt;
		end&lt;br /&gt;
	-- Détection d&amp;#039;une ligne.&lt;br /&gt;
	else&lt;br /&gt;
		for i = 1, lignes do&lt;br /&gt;
			local ligneCourante = ligne(args, i)&lt;br /&gt;
			if not ligneCourante then break end&lt;br /&gt;
			res:node(ligneCourante)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return res&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._palette(args)&lt;br /&gt;
	local res = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:addClass(&amp;#039;palette mw-collapsible&amp;#039;)&lt;br /&gt;
	local etat = args[&amp;#039;état&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	-- Paramètre état.&lt;br /&gt;
	if etat == &amp;#039;fermé&amp;#039; then&lt;br /&gt;
		res:addClass(&amp;#039;mw-collapsed&amp;#039;)&lt;br /&gt;
	elseif etat == &amp;#039;ouvert&amp;#039; then&lt;br /&gt;
		res:addClass(&amp;#039;mw-uncollapsed&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	res&lt;br /&gt;
		:node(entete(args))&lt;br /&gt;
		:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;mw-collapsible-content&amp;#039;)&lt;br /&gt;
			:node(banniere(args, args.dessus))&lt;br /&gt;
			:node(args.contenu or contenu(args))&lt;br /&gt;
			:node(image(args))&lt;br /&gt;
			:node(banniere(args, args.dessous))&lt;br /&gt;
&lt;br /&gt;
	return res&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.palette(frame)&lt;br /&gt;
	local args = {}&lt;br /&gt;
	local argsParent = frame:getParent().args&lt;br /&gt;
&lt;br /&gt;
	-- Paramètres vides interprétés par Lua.&lt;br /&gt;
	for cle, val in pairs(argsParent) do&lt;br /&gt;
		if val ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			args[cle] = val&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return p._palette(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Kharmitch</name></author>
	</entry>
</feed>