Aller au contenu

Module:Bac à sable

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 7 octobre 2024 à 17:57 et modifiée en dernier par Ménestor (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

 Documentation[voir] [modifier] [historique] [purger]


Utilisation

Cette page est destinée à vous aider à vous familiariser avec le système de création et modification de modules de Wikipédia.

Il est possible de tester le résultat de votre module dans la page Modèle:Bac à sable (placez-y le code {{#invoke:Bac à sable|nom_fonction|arg1|arg2|…}}).

Vous pouvez consulter le Manuel de référence complet en français sur www.mediawiki.org, Projet:Scribunto/Guide, aide:module, ou discuter avec les autres membres du projet Scribunto.

local p = {}

-- Table des codes couleur
-- ["(code couleur)"] = "#(couleur)"
local codesTable = {
		["Ind."] = "#C0C0C0",
		["Ishin2015"] = "#B8CE43",
		["Kaishintō"] = "#0C7E97",
		["Komeito1998"] = "#F55881",
		["PCJ"] = "#CC222C",
		["PDC"] = "#004097",
		["PDJ"] = "#E60000",
		["PDP 2018"] = "#FFD700",
		["PE"] = "#18643A",
		["PL-1998"] = "#000099",
		["PLD"] = "#41A12E",
		["RW"] = "#E3007F",
		["TF"] = "#18643A"
	}

--[[ Fonction qui renvoie la couleur HEX associée au code d'un parti politique et permet si besoin de la personnaliser avec des propriétés CSS :
	si le code couleur rentré commence par un tiret, renvoie la couleur seule ;
	si non, renvoie l'attribut HTML style contenant les propriétés :
		- background-color:#(couleur);
		- width:(largeur); si le paramètre largeur est complété
		- la valeur du paramètre style s'il est complété ]]
function p.couleurParti(frame)
	-- Fonction pour mettre en forme les paramètres
	local function mef(parametre)
		if type(parametre) ~= 'string' then
			parametre = ''
		end
		return parametre
	end

	-- Récupération des paramètres
	local pframe = frame:getParent()
	local args = pframe.args
	local premierParametre = mef(args[1])
	local largeur = mef(args.largeur)
	local styleBonus = mef(args.style)
	
	-- Vérification de la présence d'un tiret en première position
	local tiret = false
	if mw.ustring.sub(premierParametre, 1, 1) == '-' then
		tiret = true
	end
	
	-- Fonction pour récupérer la couleur dans la table des codes
	local function obtenirCouleur(code)
		if tiret == true then
			code = mw.ustring.sub(code, 2) -- Retrait du tiret pour la recherche dans la table des codes
		end
		return codesTable[code]
	end
	
	-- Récupération de la couleur
	local couleur = mef(obtenirCouleur(premierParametre))
	
	-- Fonction générant l'attribut HTML style
	local function attribut(style)
		if largeur ~= '' then
			style = 'style="background-color: ' .. couleur .. '; width: ' .. largeur .. ';' .. styleBonus .. '"'
		else
			style = 'style="background-color: ' .. couleur .. ';' .. styleBonus .. '"'
		end
		return style
	end
	
	-- Résultat
	if couleur == '' then
		return ''
	elseif tiret == true then
		return mw.text.nowiki(couleur) -- Applique nowiki pour ne pas générer une liste numérotée
	else
		return attribut()
	end
end

return p