For faster navigation, this Iframe is preloading the Wikiwand page for Module:Chartes.

Module:Chartes

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

Utilisation

Fonction exportable :

  • charte(frame) – retourne la couleur correspondant à l'infobox, la catégorie et le type de charte graphique désirée
    • Paramètres :
      • infobox= : indique le type d'infobox (chaque type d'infobox peut avoir ses chartes graphiques). Valeur par défaut : "biographie"
      • type= : type de charte dans le cadre de l'infobox choisie. Valeur par défaut : "défaut"
      • catégorie= : catégorie de couleur dans le cadre de l'infobox et du type de charte. Les valeurs possibles sont "principale" (ou "1" ou "primaire"), "secondaire" (ou "2"), éventuellement "tertiaire" (ou "3"). Valeur par défaut : "primaire"
      • dièse=oui : la couleur retournée est précédée du dièse (#). Valeur par défaut : absent (le # n'est pas inséré)

Note : l'option dièse=oui pose problème : le # est interprété lors du retour du module, générant un début de liste numérotée. Ne pas utiliser pour le moment.

Fonction utilisable directement depuis un autre module :

  • charte_m(infobox, categorie, tpe, diese) − fonction identique à la précédente, mais appelable directement depuis un autre module (note : diese peut valoir « oui » ou true)

Sous-module de données

Ce module utilise le sous-module Module:Chartes/données qui décrit les chartes pour les différentes infobox, types et catégories.

Format

Le format de ce sous-module est le suivant :

  • une entrée dans la table data pour chaque infobox gérée
    • cette entrée doit avoir comme index le nom de l'infobox (tel que passé au paramètre infobox=). Ceci peut se faire de deux façons :
      • data.nom = { … } pour l'infobox « nom », si et seulement si « nom » ne contient que des lettres non accentués (et pas d'espaces)
      • data["nom"] = { … } pour l'infobox « nom », dans les autres cas (espaces, accents, autres caractères)
    • cette entrée est une table dont chaque élément décrit un type de charte. Construction :
      • indexé par le type tel que passé au paramètre type=
      • le contenu est une table contenant au moins deux chaînes, la première correspondant à la catégorie "primaire", la seconde à la catégorie "secondaire" (et éventuellement une troisième pour la catégorie "tertiaire")
      • il doit obligatoirement y avoir une entrée pour le type "défaut" correspondant aux couleurs par défaut
      • les entrées doivent obligatoirement être en minuscules. Il ne faut pas écrire "rugby à XIII" mais "rugby à xiii".
      • si un type reprend les mêmes valeurs qu'un autre type il faut remplacer la table par une chaîne contenant le nom du type cible (voir exemples)

Exemples

Dans l'exemple ci-dessous on crée une charte pour l'infobox "biographie" et une charte pour l'infobox "test" :

-- Note : bien penser au séparateur l'éléments (la virgule en fin de ligne).
--        Le dernier élément peut ne pas en avoir.
-- une entrée pour l'infobox "biographie" dans la table "data"
data["biographie"] = {
    -- on crée une entrée par "type"
    -- une entrée "défaut" obligatoire
    ["défaut"] = { "FFFFFF", "EEEEEE" },  -- une entrée par catégorie (primaire, secondaire)
    -- pour compatibilité on accepte "default", identique
    ["default"] = "défaut",  -- un texte au lieu d'une table indique une "redirection"
    -- type "animation et BD asiatique"
    ["animation et bande dessinée asiatiques"] = { "80DDBF", "B0FFD0" },
    -- version plus courte
    ["abda"] = "animation et bande dessinée asiatiques"
} -- fin de "biographie"

-- une entrée pour l'infobox "test" dans la table "data"
data["test"] = {
    -- une entrée "défaut" obligatoire
    ["défaut"] = { "AACCEE", "EECCAA", "AAEECC" },  -- une entrée par catégorie (primaire, secondaire, tertiaire)
    -- type "type1"
    ["type1"] = { "00CCEE", "00CCAA", "00EECC" },
    -- type "type2"
    ["type2"] = { "AACC00", "EECC00", "AAEE00" },
} -- fin de "test"

Exemples d'utilisation

  • ((#invoke:Chartes|charte|infobox=test|type=cat1|catégorie=primaire)) donne « AAAAAA »
  • ((#invoke:Chartes|charte|infobox=test|type=cat1|catégorie=secondaire)) donne « AAAA00 »
  • ((#invoke:Chartes|charte|infobox=test|type=cat2|catégorie=primaire)) donne « 777777 »
  • ((#invoke:Chartes|charte|infobox=test|type=cat2|catégorie=secondaire)) donne « 777700 »

Voir aussi Discussion module:Chartes.

Voir les statistiques d'utilisation du module sur l'outil wstat.

--[[
  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) or (tpe == "")) then tpe = "défaut" 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 == "oui") or (diese == true)) 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
  
  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
--]]
function p.charte(frame)
	local infobox = frame.args["infobox"] or frame:getParent().args["infobox"]
	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 diese = frame.args["dièse"] or frame:getParent().args["dièse"]
	
	return p.charte_m(infobox, categorie, tpe, diese)
end

return p
{{bottomLinkPreText}} {{bottomLinkText}}
Module:Chartes
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.