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

De Musique du Saguenay–Lac-Saint-Jean
Aller à la navigation Aller à la recherche
Modèle:Infobox_Musique_(artiste)>Od1n
(Annulation de la modification de Od1n (d) : mouais, risqué ça… voir par exemple la fonction "color2rgb" dans Module:Population de France/Outils)
 
m (1 version importée)
 
(4 versions intermédiaires par 3 utilisateurs non affichées)
Ligne 17 : Ligne 17 :
if (infobox == nil) then infobox = "biographie" end
if (infobox == nil) then infobox = "biographie" end
if (categorie == nil) then categorie = "primaire" end
if (categorie == nil) then categorie = "primaire" end
if ((tpe == nil) or (tpe == "")) then tpe = "défaut" end
if (tpe == nil) then tpe = "défaut" end
if (diese == nil) then diese = false end
-- interruption si le chargement du module de données a échoué
-- interruption si le chargement du module de données a échoué
if (not success) then
if (not success) then
return "<span class=\"error\">Problème interne au module (données)</span>"
return "<span class=\"error\">Problème interne au module (données)</span>"
end
end
 
-- vérification de l'existence des données pour l'infobox
-- vérification de l'existence des données pour l'infobox
if (data[infobox] == nil) then
if (data[infobox] == nil) then
Ligne 57 : Ligne 58 :
end
end
end -- si pas trouvé on reste sur "1"
end -- si pas trouvé on reste sur "1"
 
-- on vérifie qu'on a bien un élément
-- on vérifie qu'on a bien un élément
if (data[infobox][tpe][n] == nil) then
if (data[infobox][tpe][n] == nil) then
return "<span class=\"error\">Problème interne au module (élément)</span>"
return "<span class=\"error\">Problème interne au module (élément)</span>"
end
end
 
-- on retourne la valeur
-- on retourne la valeur
if ((diese == "oui") or (diese == true)) then
if (diese) then
return "#" .. data[infobox][tpe][n]
return "#" .. data[infobox][tpe][n]
else
else
Ligne 81 : Ligne 82 :
   Si le type n'est pas précisé ou invalide, "défaut" est retourné
   Si le type n'est pas précisé ou invalide, "défaut" est retourné
   Si l'infobox n'est pas précisée ou invalide, "biographie" est retournée
   Si l'infobox n'est pas précisée ou invalide, "biographie" est retournée
 
 
  Les paramètres peuvent venir de l'appel au module ou de l'appel au modèle (évalué dans cet ordre).
 
   Note : wrapper récupérant les paramètres et appelant la « vraie » fonction
   Note : wrapper récupérant les paramètres et appelant la « vraie » fonction
--]]
--]]
function p.charte(frame)
function p.charte(frame)
local infobox = frame.args["infobox"] or frame:getParent().args["infobox"]
local args = frame.args
local categorie = frame.args["catégorie"] or frame:getParent().args["catégorie"]
 
local tpe = mw.ustring.lower(frame.args["type"] or frame:getParent().args["type"] or "")
local infobox = (args["infobox"] and args["infobox"] ~= "")
local diese = frame.args["dièse"] or frame:getParent().args["dièse"]
and args["infobox"]
or nil
 
local categorie = (args["catégorie"] and args["catégorie"] ~= "")
and args["catégorie"]
or nil
 
local tpe = (args["type"] and args["type"] ~= "")
and mw.ustring.lower(args["type"])
or nil
 
local diese = (args["dièse"] == "oui")
 
return p.charte_m(infobox, categorie, tpe, diese)
return p.charte_m(infobox, categorie, tpe, diese)
end
end


return p
return p

Version actuelle datée du 22 mars 2024 à 19:04

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

--[[
  Module retournant les couleurs liées à la charte indiquée
--]]

local p = {}

-- on charge le module de données
local success, data = pcall(mw.loadData, "Module:Chartes/données")

--[[
  Fonction traitant réellement la demande (voir les paramètres ci-dessous)
  Permet d'être appelé directement depuis un autre module, sans passer par
    un appel de modèle/module en wikicode
--]]
function p.charte_m(infobox, categorie, tpe, diese)
	-- validation des paramètres (valeur par défaut)
	if (infobox == nil) then infobox = "biographie" end
	if (categorie == nil) then categorie = "primaire" end
	if (tpe == nil) then tpe = "défaut" end
	if (diese == nil) then diese = false end
	-- interruption si le chargement du module de données a échoué
	if (not success) then
		return "<span class=\"error\">Problème interne au module (données)</span>"
	end

	-- vérification de l'existence des données pour l'infobox
	if (data[infobox] == nil) then
		infobox = "biographie"
		if (data[infobox] == nil) then
			-- ne devrait pas se produire !
			return "<span class=\"error\">Problème interne au module (infobox)</span>"
		end
	end

	-- si ce type contient une chaîne (au lieu d'une table) c'est un "redirect", on remplace
	if (type(data[infobox][tpe]) == "string") then
		tpe = data[infobox][tpe]
	end
	-- on vérifie l'existence du type
	if (data[infobox][tpe] == nil) then
		tpe = "défaut"
		if (data[infobox][tpe] == nil) then
			return "<span class=\"error\">Problème interne au module (type)</span>"
		end
	end

	-- on cherche le numéro d'ordre de la catégorie
	local n = 1
	if (categorie == "primaire" or categorie == "1" or categorie == "principale") then
		n = 1
	elseif (categorie == "secondaire" or categorie == "2") then
		n = 2
	elseif (categorie == "tertiaire" or categorie == "3") then
		n = 3
		-- le 3ème est optionnel
		if (data[infobox][tpe][n] == nil) then
			n = 1
		end
	end -- si pas trouvé on reste sur "1"

	-- on vérifie qu'on a bien un élément
	if (data[infobox][tpe][n] == nil) then
		return "<span class=\"error\">Problème interne au module (élément)</span>"
	end

	-- on retourne la valeur
	if (diese) then
		return "#" .. data[infobox][tpe][n]
	else
		return data[infobox][tpe][n]
	end
end

--[[
  Retourne la couleur correspondant à la charte graphique demandée.
  Les paramètres sont :
    type : le type de charte demandé (dépend de l'infobox)
    catégorie : primaire ou secondaire (ou tertiaire), la sous-couleur concernée
    infobox : l'infobox concernée (valeur par défaut : biographie)
    dièse : définir à "oui" pour préfixer la valeur retournée avec un caractère "#"
  Si la catégorie n'est pas précisée ou erronée, primaire est retournée
  Si le type n'est pas précisé ou invalide, "défaut" est retourné
  Si l'infobox n'est pas précisée ou invalide, "biographie" est retournée

  Note : wrapper récupérant les paramètres et appelant la « vraie » fonction
--]]
function p.charte(frame)
	local args = frame.args

	local infobox = (args["infobox"] and args["infobox"] ~= "")
		and args["infobox"]
		or nil

	local categorie = (args["catégorie"] and args["catégorie"] ~= "")
		and args["catégorie"]
		or nil

	local tpe = (args["type"] and args["type"] ~= "")
		and mw.ustring.lower(args["type"])
		or nil

	local diese = (args["dièse"] == "oui")

	return p.charte_m(infobox, categorie, tpe, diese)
end

return p