<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.aknotl.fr/index.php?action=history&amp;feed=atom&amp;title=Module%3APopulation_de_France</id>
	<title>Module:Population de France - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.aknotl.fr/index.php?action=history&amp;feed=atom&amp;title=Module%3APopulation_de_France"/>
	<link rel="alternate" type="text/html" href="https://wiki.aknotl.fr/index.php?title=Module:Population_de_France&amp;action=history"/>
	<updated>2026-08-10T07:11:06Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.aknotl.fr/index.php?title=Module:Population_de_France&amp;diff=489&amp;oldid=prev</id>
		<title>Theau 2 : 1 version importée</title>
		<link rel="alternate" type="text/html" href="https://wiki.aknotl.fr/index.php?title=Module:Population_de_France&amp;diff=489&amp;oldid=prev"/>
		<updated>2021-07-24T10:39:26Z</updated>

		<summary type="html">&lt;p&gt;1 version importée&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&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 24 juillet 2021 à 10:39&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;fr&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Aucune différence)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wiki_aknotl:diff:1.41:old-488:rev-489 --&gt;
&lt;/table&gt;</summary>
		<author><name>Theau 2</name></author>
	</entry>
	<entry>
		<id>https://wiki.aknotl.fr/index.php?title=Module:Population_de_France&amp;diff=488&amp;oldid=prev</id>
		<title>Infobox&gt;JessydeVilly le 9 juillet 2020 à 19:51</title>
		<link rel="alternate" type="text/html" href="https://wiki.aknotl.fr/index.php?title=Module:Population_de_France&amp;diff=488&amp;oldid=prev"/>
		<updated>2020-07-09T19:51:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- Les modules et sous-modules dont on aura besoin&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
-- le module démographie&lt;br /&gt;
p.demographie = require(&amp;quot;Module:Démographie&amp;quot;)&lt;br /&gt;
-- le module chartes&lt;br /&gt;
p.chartes = require(&amp;quot;Module:Chartes&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-- on charge les sous-modules&lt;br /&gt;
p.constantes = require(&amp;quot;Module:Population de France/Constantes&amp;quot;)&lt;br /&gt;
p.sources = require(&amp;quot;Module:Population de France/Sources&amp;quot;)&lt;br /&gt;
p.notes = require(&amp;quot;Module:Population de France/Notes&amp;quot;)&lt;br /&gt;
p.donnees = require(&amp;quot;Module:Population de France/Données&amp;quot;)&lt;br /&gt;
p.outils = require(&amp;quot;Module:Population de France/Outils&amp;quot;)&lt;br /&gt;
p.intro = require(&amp;quot;Module:Population de France/Introductions&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
  fonction récupérant les différentes données et appelant&lt;br /&gt;
  le module démographie pour l&amp;#039;affichage effectif&lt;br /&gt;
--]]&lt;br /&gt;
function p.tableau_m(param)&lt;br /&gt;
	-- le nom de la cible (param. nom ou titre page)&lt;br /&gt;
	local ttl = mw.title.getCurrentTitle().subpageText&lt;br /&gt;
	local wlm = false&lt;br /&gt;
	local vnom = param[&amp;quot;nom&amp;quot;] or ttl&lt;br /&gt;
	local donnees = &amp;quot;Module:Données/&amp;quot; .. vnom .. &amp;quot;/évolution population&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	-- on charge les données&lt;br /&gt;
	local data, wlm = p.donnees.charge_donnees(vnom, false)&lt;br /&gt;
	if (type(wlm) == &amp;quot;number&amp;quot;) then&lt;br /&gt;
		return p.outils.err_nodata(&amp;quot;tableau&amp;quot;, donnees, wlm)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- on prépare les paramètres à fournir au module Démographie&lt;br /&gt;
	local dest = {}&lt;br /&gt;
	&lt;br /&gt;
	-- éléments constants&lt;br /&gt;
	dest[&amp;quot;largeur_tableau&amp;quot;] = &amp;quot;48em&amp;quot;&lt;br /&gt;
	dest[&amp;quot;taille_police&amp;quot;] = &amp;quot;95%&amp;quot;&lt;br /&gt;
	dest[&amp;quot;marge_interlignes&amp;quot;] = &amp;quot;10px&amp;quot;&lt;br /&gt;
	dest[&amp;quot;hauteur_lignes&amp;quot;] = &amp;quot;110%&amp;quot;&lt;br /&gt;
	dest[&amp;quot;population_fond&amp;quot;] = &amp;quot;#F9F9F9&amp;quot;&lt;br /&gt;
	dest[&amp;quot;style_notes&amp;quot;] = &amp;quot;centré&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	-- couleur (on passe par Chartes avec un &amp;quot;truc&amp;quot; pour commune nouvelle)&lt;br /&gt;
	if (data[&amp;quot;division&amp;quot;] == &amp;quot;commune nouvelle&amp;quot;) then&lt;br /&gt;
		dest[&amp;quot;annees_fond&amp;quot;] = p.chartes.charte_m(&amp;quot;geographie&amp;quot;, &amp;quot;secondaire&amp;quot;, &amp;quot;commune&amp;quot;, true)&lt;br /&gt;
	else&lt;br /&gt;
		dest[&amp;quot;annees_fond&amp;quot;] = p.chartes.charte_m(&amp;quot;geographie&amp;quot;, &amp;quot;secondaire&amp;quot;, data[&amp;quot;division&amp;quot;], true)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- le titre du tableau&lt;br /&gt;
	dest[&amp;quot;titre&amp;quot;] = (param[&amp;quot;titre&amp;quot;] or p.constantes.titre_tableau)&lt;br /&gt;
		.. &amp;quot; &amp;amp;nbsp;&amp;lt;small&amp;gt;[&amp;amp;#8202;[[&amp;quot; .. donnees .. &amp;quot;|modifier]]&amp;amp;#8202;]&amp;lt;/small&amp;gt;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	-- notes&lt;br /&gt;
	local tmp = p.notes.notes(data, vnom)&lt;br /&gt;
	if ((tmp ~= nil) and (mw.text.trim(tmp) ~= &amp;quot;&amp;quot;)) then&lt;br /&gt;
		dest[&amp;quot;notes&amp;quot;] = tmp&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- sources&lt;br /&gt;
	tmp = p.sources.sources(data)&lt;br /&gt;
	if ((tmp ~= nil) and (mw.text.trim(tmp) ~= &amp;quot;&amp;quot;)) then&lt;br /&gt;
		dest[&amp;quot;sources&amp;quot;] = tmp&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- maintenant on parcours les données elles-mêmes&lt;br /&gt;
	for annee, pop in pairs(data) do&lt;br /&gt;
		-- les années sont les éléments numériques du tableau&lt;br /&gt;
		if (type(annee) == &amp;quot;number&amp;quot;) then&lt;br /&gt;
			-- est-ce qu&amp;#039;on garde l&amp;#039;année ?&lt;br /&gt;
			if (p.outils.test_annee(annee, data)) then&lt;br /&gt;
				vpop = tonumber(mw.text.trim(pop[&amp;quot;pop&amp;quot;]))&lt;br /&gt;
				if (vpop &amp;gt; 0) then&lt;br /&gt;
					dest[annee] = vpop  -- on stocke&lt;br /&gt;
				else&lt;br /&gt;
					dest[annee] = &amp;quot;-&amp;quot;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- on effectue l&amp;#039;appel terminal et on retourne (et on ajoute la catégorie)&lt;br /&gt;
	return p.demographie.demographie_m(dest) .. p.constantes.cat_usage&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- fonction &amp;quot;wrapper&amp;quot; pour la précédente, pour appel depuis un modèle&lt;br /&gt;
function p.tableau(frame)&lt;br /&gt;
	local param = {}&lt;br /&gt;
	-- deux paramètres : nom et titre&lt;br /&gt;
	param[&amp;quot;nom&amp;quot;] = p.outils.nettoie(frame.args[&amp;quot;nom&amp;quot;] or frame:getParent().args[&amp;quot;nom&amp;quot;] or nil)&lt;br /&gt;
	param[&amp;quot;titre&amp;quot;] = p.outils.nettoie(frame.args[&amp;quot;titre&amp;quot;] or frame:getParent().args[&amp;quot;titre&amp;quot;] or nil)&lt;br /&gt;
&lt;br /&gt;
	-- on appelle la vraie fonction&lt;br /&gt;
	return p.tableau_m(param)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
  Fonction créant une introduction de population de commune&lt;br /&gt;
--]]&lt;br /&gt;
function p.introduction_m(param)&lt;br /&gt;
	local resu&lt;br /&gt;
	local nom = param[&amp;quot;nom&amp;quot;] or mw.title.getCurrentTitle().subpageText&lt;br /&gt;
	local donnees = &amp;quot;Module:Données/&amp;quot; .. nom .. &amp;quot;/évolution population&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	-- on charge les données associées à la commune&lt;br /&gt;
	local data, wlm = p.donnees.charge_donnees(nom)&lt;br /&gt;
	if (type(wlm) == &amp;quot;number&amp;quot;) then&lt;br /&gt;
		return p.outils.err_nodata(&amp;quot;introduction&amp;quot;, donnees, wlm)&lt;br /&gt;
	end&lt;br /&gt;
	if (data[&amp;quot;division&amp;quot;] == &amp;quot;fraction cantonale&amp;quot;) then&lt;br /&gt;
		return p.outils.err_nodata(&amp;quot;introduction&amp;quot;, donnees, 6) -- pas d&amp;#039;intro pour ça&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	resu = p.intro.introduction(data)&lt;br /&gt;
&lt;br /&gt;
	return resu&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- fonction &amp;quot;wrapper&amp;quot; pour la fonction précédente, pour appel depuis un modèle&lt;br /&gt;
function p.introduction(frame)&lt;br /&gt;
	local pframe = frame:getParent()&lt;br /&gt;
	local param = {}&lt;br /&gt;
	-- récupération de l&amp;#039;unique paramètre (nom)&lt;br /&gt;
	param[&amp;quot;nom&amp;quot;] = p.outils.nettoie(frame.args[&amp;quot;nom&amp;quot;] or pframe.args[&amp;quot;nom&amp;quot;] or nil)&lt;br /&gt;
	return p.introduction_m(param)	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- fonction de tri utilisée par la fonction suivante&lt;br /&gt;
-- tri sur la valeur du 1er élément des éléments&lt;br /&gt;
function p.sort_par_annee(el1, el2)&lt;br /&gt;
	if (el1[1] &amp;lt; el2[1]) then&lt;br /&gt;
		return true&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
  Fonction créant un graphique de population de commune&lt;br /&gt;
--]]&lt;br /&gt;
function p.graphique_m(param)&lt;br /&gt;
	local resu&lt;br /&gt;
	local nom = param[&amp;quot;nom&amp;quot;] or mw.title.getCurrentTitle().subpageText&lt;br /&gt;
	local donnees = &amp;quot;Module:Données/&amp;quot; .. nom .. &amp;quot;/évolution population&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	-- on charge les données associées à la commune&lt;br /&gt;
	local data, wlm = p.donnees.charge_donnees(nom)&lt;br /&gt;
	if (type(wlm) == &amp;quot;number&amp;quot;) then&lt;br /&gt;
		return p.outils.err_nodata(&amp;quot;graphique&amp;quot;, donnees, wlm)&lt;br /&gt;
	end&lt;br /&gt;
	if (data[&amp;quot;division&amp;quot;] == &amp;quot;fraction cantonale&amp;quot;) then&lt;br /&gt;
		return p.outils.err_nodata(&amp;quot;graphique&amp;quot;, donnees, 6) -- pas d&amp;#039;intro pour ça&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- seuil (nombre de données) pour afficher&lt;br /&gt;
	param[&amp;quot;seuil&amp;quot;] = tonumber(param[&amp;quot;seuil&amp;quot;])&lt;br /&gt;
	if ((param[&amp;quot;seuil&amp;quot;] == nil) or (param[&amp;quot;seuil&amp;quot;] &amp;lt;= 0)) then&lt;br /&gt;
		param[&amp;quot;seuil&amp;quot;] = 5 -- valeur par défaut&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- &amp;quot;Histogramme population manuel&amp;quot; étant un modèle, on fabrique la structure d&amp;#039;appel&lt;br /&gt;
	-- ici il faudrait modifier &amp;quot;couleur-barres&amp;quot; qui devrait dépendre de la charte…&lt;br /&gt;
	prm = { [&amp;quot;largeur&amp;quot;] = 710, [&amp;quot;hauteur&amp;quot;] = 340, [&amp;quot;couleur-fond&amp;quot;] = &amp;quot;rgb(1,1,1)&amp;quot; }&lt;br /&gt;
	local cb&lt;br /&gt;
	if (data[&amp;quot;division&amp;quot;] == &amp;quot;commune nouvelle&amp;quot;) then&lt;br /&gt;
		cb = p.chartes.charte_m(&amp;quot;geographie&amp;quot;, &amp;quot;primaire&amp;quot;, &amp;quot;commune&amp;quot;, true)&lt;br /&gt;
	else&lt;br /&gt;
		cb = p.chartes.charte_m(&amp;quot;geographie&amp;quot;, &amp;quot;primaire&amp;quot;, data[&amp;quot;division&amp;quot;], true)&lt;br /&gt;
	end&lt;br /&gt;
	cb = p.outils.color2rgb(cb)&lt;br /&gt;
	if (cb == nil) then&lt;br /&gt;
		prm[&amp;quot;couleur-barres&amp;quot;] = &amp;quot;rgb(0.7,0.9,0.7)&amp;quot; -- couleur &amp;quot;par défaut&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		prm[&amp;quot;couleur-barres&amp;quot;] = &amp;quot;rgb(&amp;quot; .. cb .. &amp;quot;)&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	prm[&amp;quot;nom&amp;quot;] = param[&amp;quot;nom&amp;quot;]&lt;br /&gt;
	prm[&amp;quot;titre&amp;quot;] = param[&amp;quot;titre&amp;quot;] or p.constantes.titre_graphique&lt;br /&gt;
	prm[&amp;quot;max&amp;quot;] = data[&amp;quot;popmax&amp;quot;]&lt;br /&gt;
	-- parcours des données&lt;br /&gt;
	local tmp = {}&lt;br /&gt;
	for annee, pop in pairs(data) do&lt;br /&gt;
		if (type(annee) == &amp;quot;number&amp;quot;) then&lt;br /&gt;
			-- est-ce qu&amp;#039;on garde l&amp;#039;année ?&lt;br /&gt;
			if (p.outils.test_annee(annee, data) and (type(pop[&amp;quot;pop&amp;quot;]) == &amp;quot;number&amp;quot;) and (pop[&amp;quot;pop&amp;quot;] &amp;gt; 0)) then&lt;br /&gt;
				table.insert(tmp, { annee, pop[&amp;quot;pop&amp;quot;] })&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- tri des éléments&lt;br /&gt;
	table.sort(tmp, p.sort_par_annee)&lt;br /&gt;
	-- on insert année / valeur dans l&amp;#039;ordre (histogramme pop… a besoin des données dans l&amp;#039;ordre)&lt;br /&gt;
	local nb = 1&lt;br /&gt;
	local nbp = 0&lt;br /&gt;
	for k, v in pairs(tmp) do&lt;br /&gt;
		if (v[2] &amp;gt; 0) then&lt;br /&gt;
			prm[nb] = v[1]&lt;br /&gt;
			prm[nb+1] = v[2]&lt;br /&gt;
			nb = nb + 2&lt;br /&gt;
			nbp = nbp + 1  -- nombre de barres (réel)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- si pas assez de données on ne traite pas&lt;br /&gt;
	if (nbp &amp;lt; param[&amp;quot;seuil&amp;quot;]) then&lt;br /&gt;
		return &amp;quot;&amp;quot;  -- on retourne &amp;quot;rien&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	prm[&amp;quot;nombre&amp;quot;] = nbp&lt;br /&gt;
	prm[&amp;quot;sources&amp;quot;] = p.sources.sources_graphique(data)&lt;br /&gt;
&lt;br /&gt;
	-- précaution&lt;br /&gt;
	if (nbp == 0) then&lt;br /&gt;
		p.outils.err_nodata(&amp;quot;graphique&amp;quot;, donnees, 7, true)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- on &amp;quot;appelle&amp;quot; le modèle&lt;br /&gt;
	return mw.getCurrentFrame():expandTemplate{ title = &amp;#039;Histogramme population manuel&amp;#039;, args = prm }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- fonction &amp;quot;wrapper&amp;quot; pour la fonction précédente, pour appel depuis un modèle&lt;br /&gt;
function p.graphique(frame)&lt;br /&gt;
	local pframe = frame:getParent()&lt;br /&gt;
	local param = {}&lt;br /&gt;
	-- récupération des paramètre (nom et titre)&lt;br /&gt;
	param[&amp;quot;nom&amp;quot;] = p.outils.nettoie(frame.args[&amp;quot;nom&amp;quot;] or pframe.args[&amp;quot;nom&amp;quot;] or nil)&lt;br /&gt;
	param[&amp;quot;titre&amp;quot;] = p.outils.nettoie(frame.args[&amp;quot;titre&amp;quot;] or pframe.args[&amp;quot;titre&amp;quot;] or nil)&lt;br /&gt;
	param[&amp;quot;seuil&amp;quot;] = p.outils.nettoie(frame.args[&amp;quot;seuil&amp;quot;] or pframe.args[&amp;quot;seuil&amp;quot;] or nil)&lt;br /&gt;
	return p.graphique_m(param)	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
  Retourne la dernière population (ou la dernière date) pour la commune &amp;quot;nom&amp;quot; (ou courante)&lt;br /&gt;
  Si prm[1] est vide retourne la population, sans formatage&lt;br /&gt;
  Si prm[1] vaut &amp;quot;date&amp;quot;, retourne la date&lt;br /&gt;
  Si prm[1] vaut &amp;quot;nombre&amp;quot;, idem premier cas mais avec formatage du nombre&lt;br /&gt;
  Si prm[1] vaut &amp;quot;table&amp;quot;, retourne une table avec l&amp;#039;année en 1er élément et le nombre en 2e élément&lt;br /&gt;
--]]&lt;br /&gt;
function p.derniere_population_m(prm)&lt;br /&gt;
	local nom = prm[&amp;quot;nom&amp;quot;] or mw.title.getCurrentTitle().subpageText&lt;br /&gt;
	local donnees = &amp;quot;Module:Données/&amp;quot; .. nom .. &amp;quot;/évolution population&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	-- on charge les données associées à la commune&lt;br /&gt;
	local data, wlm = p.donnees.charge_donnees(nom)&lt;br /&gt;
	if (type(wlm) == &amp;quot;number&amp;quot;) then&lt;br /&gt;
		return p.outils.err_nodata(&amp;quot;derniere_population&amp;quot;, donnees, wlm, true)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local tmp = p.donnees.valeur_recente(data)&lt;br /&gt;
	if (tmp == nil) then&lt;br /&gt;
		return p.outils.err_nodata(&amp;quot;dernière_population&amp;quot;, donnees, 7, true)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if (prm[&amp;quot;type&amp;quot;] == &amp;quot;table&amp;quot;) then&lt;br /&gt;
		return tmp&lt;br /&gt;
	end&lt;br /&gt;
	if (prm[&amp;quot;type&amp;quot;] == &amp;quot;date&amp;quot;) then&lt;br /&gt;
		return tmp[1]&lt;br /&gt;
	end&lt;br /&gt;
	if ((prm[&amp;quot;type&amp;quot;] == nil) or (mw.text.trim(prm[&amp;quot;type&amp;quot;]) == &amp;quot;&amp;quot;)) then&lt;br /&gt;
		return tmp[2]&lt;br /&gt;
	end&lt;br /&gt;
	return mw.language.getContentLanguage():formatNum(tmp[2])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- fonction &amp;quot;wrapper&amp;quot; pour la fonction précédente, pour appel depuis un modèle&lt;br /&gt;
function p.derniere_population(frame)&lt;br /&gt;
	local pframe = frame:getParent()&lt;br /&gt;
	local param = {}&lt;br /&gt;
	-- récupération des paramètre (nom et titre)&lt;br /&gt;
	param[&amp;quot;nom&amp;quot;] = p.outils.nettoie(frame.args[2] or pframe.args[2] or nil)&lt;br /&gt;
	param[&amp;quot;type&amp;quot;] = frame.args[1] or pframe.args[1] or nil&lt;br /&gt;
	return p.derniere_population_m(param)	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
  Retourne une phrase décrivant la variation de population de la commune&lt;br /&gt;
    courante (ou &amp;quot;nom&amp;quot;) ou un pictograme si &amp;quot;type&amp;quot; = &amp;quot;picto&amp;quot;&lt;br /&gt;
--]]&lt;br /&gt;
function p.variation_texte_m(prm)&lt;br /&gt;
	local nom = prm[&amp;quot;nom&amp;quot;] or mw.title.getCurrentTitle().subpageText&lt;br /&gt;
	local donnees = &amp;quot;Module:Données/&amp;quot; .. nom .. &amp;quot;/évolution population&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	-- on charge les données associées à la commune&lt;br /&gt;
	local data, wlm = p.donnees.charge_donnees(nom)&lt;br /&gt;
	if (type(wlm) == &amp;quot;number&amp;quot;) then&lt;br /&gt;
		return p.outils.err_nodata(&amp;quot;variation_texte&amp;quot;, donnees, wlm, true)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local txt, sens = p.donnees.variation_texte(data)&lt;br /&gt;
	if (txt == nil) then&lt;br /&gt;
		return p.outils.err_nodata(&amp;quot;variation_texte&amp;quot;, donnees, 7, true)&lt;br /&gt;
	end&lt;br /&gt;
	if (prm[&amp;quot;type&amp;quot;] ~= &amp;quot;picto&amp;quot;) then&lt;br /&gt;
		return txt&lt;br /&gt;
	end&lt;br /&gt;
	-- on crée le pictogramme&lt;br /&gt;
	if (sens &amp;gt; 0) then&lt;br /&gt;
		return &amp;quot;[[Fichier:Increase2.svg|11px|link=|class=noviewer|&amp;quot; .. txt .. &amp;quot;]]&amp;quot;&lt;br /&gt;
	elseif (sens &amp;lt; 0) then&lt;br /&gt;
		return &amp;quot;[[Fichier:Decrease2.svg|11px|link=|class=noviewer|&amp;quot; .. txt .. &amp;quot;]]&amp;quot;&lt;br /&gt;
	else -- égal&lt;br /&gt;
		return &amp;quot;[[fichier:steady.svg|10px|link=|class=noviewer|&amp;quot; .. txt .. &amp;quot;]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- fonction &amp;quot;wrapper&amp;quot; pour la fonction précédente, pour appel depuis un modèle&lt;br /&gt;
function p.variation_texte(frame)&lt;br /&gt;
	local pframe = frame:getParent()&lt;br /&gt;
	local param = {}&lt;br /&gt;
	-- récupération des paramètre (nom et titre)&lt;br /&gt;
	param[&amp;quot;nom&amp;quot;] = p.outils.nettoie(frame.args[&amp;quot;nom&amp;quot;] or pframe.args[&amp;quot;nom&amp;quot;] or nil)&lt;br /&gt;
	param[&amp;quot;type&amp;quot;] = frame.args[&amp;quot;type&amp;quot;] or pframe.args[&amp;quot;type&amp;quot;] or nil&lt;br /&gt;
	return p.variation_texte_m(param)	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
  Retourne la densité de la commune. Si &amp;quot;précision&amp;quot; indiquée utilise celle-ci,&lt;br /&gt;
  sinon précision 1 par défaut&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
function p.densite_m(prm)&lt;br /&gt;
	local nom = prm[&amp;quot;nom&amp;quot;] or mw.title.getCurrentTitle().subpageText&lt;br /&gt;
	local donnees = &amp;quot;Module:Données/&amp;quot; .. nom .. &amp;quot;/évolution population&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	-- on charge les données associées à la commune&lt;br /&gt;
	local data, wlm = p.donnees.charge_donnees(nom)&lt;br /&gt;
	if (type(wlm) == &amp;quot;number&amp;quot;) then&lt;br /&gt;
		return p.outils.err_nodata(&amp;quot;densite&amp;quot;, donnees, wlm, true)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local prc = 1&lt;br /&gt;
	if (type(prm[&amp;quot;précision&amp;quot;]) == &amp;quot;number&amp;quot;) then&lt;br /&gt;
		prc = prm[&amp;quot;précision&amp;quot;]&lt;br /&gt;
	end&lt;br /&gt;
	if ((data[data[&amp;quot;dernier&amp;quot;]][&amp;quot;pop&amp;quot;] == nil) or (data[&amp;quot;superficie&amp;quot;] == nil)) then&lt;br /&gt;
		return p.outils.err_nodata(&amp;quot;densite&amp;quot;, donnees, 7, true)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if (prm[&amp;quot;format&amp;quot;] ~= nil) then&lt;br /&gt;
		return mw.language.getContentLanguage():formatNum(&lt;br /&gt;
			p.outils.round(data[data[&amp;quot;dernier&amp;quot;]][&amp;quot;pop&amp;quot;] / data[&amp;quot;superficie&amp;quot;], prc))&lt;br /&gt;
	else&lt;br /&gt;
		return p.outils.round(data[data[&amp;quot;dernier&amp;quot;]][&amp;quot;pop&amp;quot;] / data[&amp;quot;superficie&amp;quot;], prc)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- fonction &amp;quot;wrapper&amp;quot; pour la fonction précédente, pour appel depuis un modèle&lt;br /&gt;
function p.densite(frame)&lt;br /&gt;
	local pframe = frame:getParent()&lt;br /&gt;
	local param = {}&lt;br /&gt;
	-- récupération des paramètre (nom et titre)&lt;br /&gt;
	param[&amp;quot;nom&amp;quot;] = p.outils.nettoie(frame.args[&amp;quot;nom&amp;quot;] or pframe.args[&amp;quot;nom&amp;quot;] or nil)&lt;br /&gt;
	param[&amp;quot;précision&amp;quot;] = tonumber(frame.args[&amp;quot;précision&amp;quot;] or pframe.args[&amp;quot;précision&amp;quot;] or nil)&lt;br /&gt;
	param[&amp;quot;format&amp;quot;] = frame.args[&amp;quot;format&amp;quot;] or pframe.args[&amp;quot;format&amp;quot;] or nil&lt;br /&gt;
	return p.densite_m(param)	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
  Retourne la superficie de la commune. &lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
function p.superficie_m(prm)&lt;br /&gt;
	local nom = prm[&amp;quot;nom&amp;quot;] or mw.title.getCurrentTitle().subpageText&lt;br /&gt;
	local donnees = &amp;quot;Module:Données/&amp;quot; .. nom .. &amp;quot;/évolution population&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	-- on charge les données associées à la commune&lt;br /&gt;
	local data, wlm = p.donnees.charge_donnees(nom)&lt;br /&gt;
	if (type(wlm) == &amp;quot;number&amp;quot;) then&lt;br /&gt;
		return p.outils.err_nodata(&amp;quot;superficie&amp;quot;, donnees, wlm, true)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return (data[&amp;quot;superficie&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- fonction &amp;quot;wrapper&amp;quot; pour la fonction précédente, pour appel depuis un modèle&lt;br /&gt;
function p.superficie(frame)&lt;br /&gt;
	local pframe = frame:getParent()&lt;br /&gt;
	local param = {}&lt;br /&gt;
	-- récupération des paramètre (nom et titre)&lt;br /&gt;
	param[&amp;quot;nom&amp;quot;] = p.outils.nettoie(frame.args[&amp;quot;nom&amp;quot;] or pframe.args[&amp;quot;nom&amp;quot;] or nil)&lt;br /&gt;
	return p.superficie_m(param)	&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Infobox&gt;JessydeVilly</name></author>
	</entry>
</feed>