Aller au contenu

« Module:Dates » : différence entre les versions

De Wikiquestia
Aucun résumé des modifications
Aucun résumé des modifications
 
(26 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
local p = {}
local p = {}


function p.afficherComparaison(frame)
function p.afficherDates(frame)
local args = frame:getParent().args
local args = frame:getParent().args
local charte = frame.args.charte or 'defaut'
local couleur = require('Module:Charte').couleur{ args = { charte = charte, type = 'hr' } }
local res = ''
local res = ''
local i = 1
local i = 1


while args['Élément ' .. i] or args['Valeur ' .. i] do
while args['Date ' .. i] or args['Événement ' .. i] do
local titre = args['Élément ' .. i] or ''
local date = args['Date ' .. i] or ''
local valeur = args['Valeur ' .. i] or ''
local evenement = args['Événement ' .. i] or ''


if titre ~= '' or valeur ~= '' then
if date ~= '' or evenement ~= '' then
res = res .. string.format('<tr><td style="padding-right:1em;"><b>%s</b></td><td>%s</td></tr>', titre, valeur)
res = res .. string.format(
'<tr><th style="text-align:left;">%s</th><td>%s</td></tr>',
date, -- HTML autorisé (ex. : <sup>)
mw.text.nowiki(evenement)  -- protégé
)
end
end
i = i + 1
i = i + 1
Ligne 17 : Ligne 24 :


if res ~= '' then
if res ~= '' then
return string.format(
local tableau = string.format(
'<div class="soustitre" style="text-align:center; background-color: #ecf6fb; font-weight: bold; padding: 4px 8px; margin-top: 6px;">Comparaison</div><table class="infobox" style="width:100%%;">%s</table>',
'<table class="infobox" style="width:100%%;">%s</table>',
res
res
)
)
local separateur = string.format(
'<div style="width:100%%; display:block; clear:both;">' ..
'<hr style="height:1px; border:0; background-color:%s;">' ..
'</div>',
couleur
)
return tableau .. separateur
else
else
return ''
return ''
Ligne 27 : Ligne 43 :


return p
return p
--[=[
== 📘 Description ==
Ce module affiche dynamiquement une section « Comparaison » dans une infobox. 
Tu peux l’utiliser pour lister autant de paires Élément/Valeur que tu veux.
== 🔧 Syntaxe ==
{{Infobox V3/Comparaison
| Élément 1 = Taille
| Valeur 1 = 180 cm
| Élément 2 = Poids
| Valeur 2 = 75 kg
}}
== 📥 Paramètres ==
* Élément n — intitulé à afficher à gauche
* Valeur n — valeur correspondante à droite
== 🧩 Exemple pratique ==
* Élément 1 = Longueur
* Valeur 1 = 250 m
* Élément 2 = Largeur
* Valeur 2 = 80 m
== 🔗 Voir aussi ==
* [[Modèle:Infobox V3/Comparaison]]
]=]

Dernière version du 27 juin 2025 à 15:24

La documentation pour ce module peut être créée à Module:Dates/doc

local p = {}

function p.afficherDates(frame)
	local args = frame:getParent().args
	local charte = frame.args.charte or 'defaut'
	local couleur = require('Module:Charte').couleur{ args = { charte = charte, type = 'hr' } }

	local res = ''
	local i = 1

	while args['Date ' .. i] or args['Événement ' .. i] do
		local date = args['Date ' .. i] or ''
		local evenement = args['Événement ' .. i] or ''

		if date ~= '' or evenement ~= '' then
			res = res .. string.format(
				'<tr><th style="text-align:left;">%s</th><td>%s</td></tr>',
				date,  -- HTML autorisé (ex. : <sup>)
				mw.text.nowiki(evenement)  -- protégé
			)
		end
		i = i + 1
	end

	if res ~= '' then
		local tableau = string.format(
			'<table class="infobox" style="width:100%%;">%s</table>',
			res
		)

		local separateur = string.format(
			'<div style="width:100%%; display:block; clear:both;">' ..
			'<hr style="height:1px; border:0; background-color:%s;">' ..
			'</div>',
			couleur
		)

		return tableau .. separateur
	else
		return ''
	end
end

return p