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 8 octobre 2024 à 16:18 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 listeCodes = mw.loadData('Module:Infobox Parti politique japonais/couleurs/data')

-- Fonction principale
function p.couleurParti(frame)
	-- Fonction pour convertir un paramètre absent ou non rempli en chaîne vide
	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 parametre1 = mef(args[1])
	local largeur = mef(args.largeur)
	
	-- Vérification de la présence d'un tiret en première position
	local tiret = false
	if mw.ustring.sub(parametre1, 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 listeCodes[code]
	end
	
	-- Récupération de la couleur
	local couleur = mef(obtenirCouleur(parametre1))
	
	-- Résultat
	if couleur == '' then
		return nil
	elseif tiret == true then
		return mw.text.nowiki(couleur) -- Applique nowiki pour ne pas générer une liste numérotée
	elseif largeur ~= '' then
		return 'style="background-color: ' .. couleur .. '; width: ' .. largeur .. ';"'
	else
		return 'bgcolor="' .. couleur .. '"'
	end
end

function p.obtCouleurTest(code)
	if mw.ustring.sub(code, 1, 1) == '-' then
		code = mw.ustring.sub(code, 2) -- Retrait du tiret pour la recherche dans la table des codes
	end
	return listeCodes[code]
end

local function statut(parametre)
	if parametre == nil then
		return "'''rien'''"
	elseif type(parametre) == 'string' then
		return "'''chaîne'''"
	else
		return "'''autre'''"
	end
end

local function controle(parametre)
	if type(parametre) == 'nil' then
		return "''rien''"
	elseif type(parametre) == 'string' then
		return "''chaîne''"
	else
		return "''autre''"
	end
end

local function infos(parametre)
	return statut(parametre) .. ' (' .. controle(parametre) .. ')'
end

function p.test(frame)
	local pframe = frame:getParent()
	local args = pframe.args
	local parametre1 = args[1]
	local contenu = args.contenu
	
	return 'PARAMETRE1 = ' .. infos(parametre1) .. ' / ' .. 'CONTENU = ' .. infos(contenu)
end

return p