<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://www.ekopedia.fr/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://www.ekopedia.fr/index.php?action=history&amp;feed=atom&amp;title=Module%3APalette_de_navigation"/>
		<link rel="alternate" type="text/html" href="https://www.ekopedia.fr/index.php?title=Module:Palette_de_navigation&amp;action=history"/>
		<updated>2026-04-10T10:37:19Z</updated>
		<subtitle>Historique pour cette page sur le wiki</subtitle>
		<generator>MediaWiki 1.27.1</generator>

	<entry>
		<id>https://www.ekopedia.fr/index.php?title=Module:Palette_de_navigation&amp;diff=126286&amp;oldid=prev</id>
		<title>- Hermes - : create</title>
		<link rel="alternate" type="text/html" href="https://www.ekopedia.fr/index.php?title=Module:Palette_de_navigation&amp;diff=126286&amp;oldid=prev"/>
				<updated>2021-10-14T00:36:51Z</updated>
		
		<summary type="html">&lt;p&gt;create&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'alternance des lignes.&lt;br /&gt;
local styles = 'Module:Palette de navigation/styles.css'&lt;br /&gt;
&lt;br /&gt;
local function erreur(texte, argManquant)&lt;br /&gt;
	local res = mw.html.create('span')&lt;br /&gt;
		:addClass('error')&lt;br /&gt;
		:wikitext('Erreur :&amp;amp;nbsp;')&lt;br /&gt;
&lt;br /&gt;
	if argManquant then&lt;br /&gt;
		res:wikitext(format('Paramètre &amp;lt;code&amp;gt;|%s=&amp;lt;/code&amp;gt; introuvable', 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('^\n') then&lt;br /&gt;
		return liste&lt;br /&gt;
	end&lt;br /&gt;
	return '\n' .. liste .. '\n'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function liens(args)&lt;br /&gt;
	local titre = mw.title.new(args['modèle'], args.namespace or 'Modèle')&lt;br /&gt;
	local lien = function(abbr, texte, action)&lt;br /&gt;
		return mw.html.create('li')&lt;br /&gt;
			:wikitext('[' .. titre:fullUrl(action) .. ' ')&lt;br /&gt;
			:tag('abbr')&lt;br /&gt;
				:addClass('abbr')&lt;br /&gt;
				:attr('title', abbr)&lt;br /&gt;
				:cssText(args.couleur)&lt;br /&gt;
				:wikitext(texte)&lt;br /&gt;
				:done()&lt;br /&gt;
			:wikitext(']')&lt;br /&gt;
	end&lt;br /&gt;
	local res = mw.html.create('div')&lt;br /&gt;
		:addClass('palette-liens liste-horizontale')&lt;br /&gt;
		:addClass('noprint plainlinksneverexpand')&lt;br /&gt;
	res&lt;br /&gt;
		:tag('ul')&lt;br /&gt;
			:node(lien('Voir ce modèle', 'v'))&lt;br /&gt;
			:node(lien('Modifier ce modèle', 'm', 'action=edit'))&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['modèle']&lt;br /&gt;
&lt;br /&gt;
	-- Paramètre modèle.&lt;br /&gt;
	if modele and modele ~= 'inactif' then&lt;br /&gt;
		res:node(liens(args))&lt;br /&gt;
	elseif not modele then&lt;br /&gt;
		res:wikitext(erreur('modèle', true))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Titre de la palette.&lt;br /&gt;
	res&lt;br /&gt;
		:tag('div')&lt;br /&gt;
			:addClass('palette-titre')&lt;br /&gt;
			:cssText(args.couleur)&lt;br /&gt;
			:wikitext(args.titre or erreur('titre', 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('div')&lt;br /&gt;
			:addClass('palette-banniere liste-horizontale')&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('div')&lt;br /&gt;
			:addClass('palette-image')&lt;br /&gt;
&lt;br /&gt;
		if args.image:match('^%[') or args.image:match('^%&amp;lt;') then&lt;br /&gt;
			res:wikitext(args.image)&lt;br /&gt;
		else&lt;br /&gt;
			local lienImage = '[[Fichier:%s|100px]]'&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('li')&lt;br /&gt;
		:addClass('palette-ligne-simple')&lt;br /&gt;
		:tag('div')&lt;br /&gt;
			:addClass('palette-liste-simple')&lt;br /&gt;
			-- Parité d'une liste simple (sans groupe).&lt;br /&gt;
			:addClass(altern % 2 == 0 and pariteLigne&lt;br /&gt;
				and 'palette-pair'&lt;br /&gt;
				or nil)&lt;br /&gt;
			:addClass('liste-horizontale')&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('li')&lt;br /&gt;
		:addClass('palette-ligne')&lt;br /&gt;
		:tag('div')&lt;br /&gt;
			:addClass('palette-groupe')&lt;br /&gt;
			:cssText(args.couleur)&lt;br /&gt;
			:wikitext(groupe)&lt;br /&gt;
			:done()&lt;br /&gt;
		:tag('div')&lt;br /&gt;
			:addClass('palette-liste')&lt;br /&gt;
			-- Parité d'une liste avec groupe.&lt;br /&gt;
			:addClass(altern % 2 == 0&lt;br /&gt;
				and 'palette-pair'&lt;br /&gt;
				or nil)&lt;br /&gt;
			:addClass('liste-horizontale')&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 ''&lt;br /&gt;
	local liste = args['liste' .. prefixe .. n]&lt;br /&gt;
	local groupe = args['groupe' .. 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 = ''&lt;br /&gt;
		for i = 1, lignes do&lt;br /&gt;
			local ligneCourante = ligne(args, i, prefixe .. n .. '.')&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 == '' then&lt;br /&gt;
			return erreur('Gestion incorrecte des groupes/sous-groupes')&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Construction des sous-lignes.&lt;br /&gt;
		local res = mw.html.create('li')&lt;br /&gt;
			:addClass('palette-ligne')&lt;br /&gt;
			:tag('div')&lt;br /&gt;
				:addClass('palette-groupe')&lt;br /&gt;
				:cssText(args.couleur)&lt;br /&gt;
				:wikitext(groupe)&lt;br /&gt;
				:done()&lt;br /&gt;
			:tag('div')&lt;br /&gt;
				:addClass('palette-listes')&lt;br /&gt;
				:tag('ul')&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['section' .. n]&lt;br /&gt;
	local liste = args['liste' .. 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('li')&lt;br /&gt;
			:addClass('palette mw-collapsible mw-collapsed')&lt;br /&gt;
			:css('border', '0')&lt;br /&gt;
			:css('border-top', '2px solid white')&lt;br /&gt;
			:css('font-size', '100%')&lt;br /&gt;
		local contenuSection = res:tag('div')&lt;br /&gt;
			:addClass('palette-section')&lt;br /&gt;
			:cssText(args.couleur)&lt;br /&gt;
			:wikitext(section)&lt;br /&gt;
			:done()&lt;br /&gt;
			:tag('div')&lt;br /&gt;
				:addClass('mw-collapsible-content')&lt;br /&gt;
				:tag('ul')&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 = ''&lt;br /&gt;
		for i = 1, lignes do&lt;br /&gt;
			local ligneCourante = ligne(args, i, n .. '.')&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 == '' then&lt;br /&gt;
			return erreur('Gestion incorrecte des sections')&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('ul')&lt;br /&gt;
	local contenu = ''&lt;br /&gt;
&lt;br /&gt;
	if args.image then&lt;br /&gt;
		res:addClass('palette-image')&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Détection d'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['section1']&lt;br /&gt;
	and (args['liste1'] or args['liste1.1'] or args['groupe1.1']) 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'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 loadStyles = mw.getCurrentFrame():extensionTag('templatestyles', '', {&lt;br /&gt;
		src = styles&lt;br /&gt;
	})&lt;br /&gt;
	local res = mw.html.create('div')&lt;br /&gt;
		:addClass('palette mw-collapsible')&lt;br /&gt;
		:wikitext(loadStyles)&lt;br /&gt;
	local etat = args['état']&lt;br /&gt;
&lt;br /&gt;
	-- Paramètre état.&lt;br /&gt;
	if etat == 'fermé' then&lt;br /&gt;
		res:addClass('mw-collapsed')&lt;br /&gt;
	elseif etat == 'ouvert' then&lt;br /&gt;
		res:addClass('mw-uncollapsed')&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	res&lt;br /&gt;
		:node(entete(args))&lt;br /&gt;
		:tag('div')&lt;br /&gt;
			:addClass('mw-collapsible-content')&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 ~= '' 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>- Hermes -</name></author>	</entry>

	</feed>