Module:Chartes

De Lagny-sur-Marne Wiki
Aller à la navigation Aller à la recherche

--[[

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

--]]

local p = {}

--[[

 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)
 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).

--]] 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 = frame.args["type"] or frame:getParent().args["type"]

-- 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

-- on charge le module de données local data = require "Module:Chartes/données"

-- 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 "Problème interne au module (infobox)" end

   end

-- on vérifie l'existence du type if (data[infobox][tpe] == nil) then tpe = "défaut" if (data[infobox][tpe] == nil) then return "Problème interne au module (type)" end end

-- on cherche le numéro d'ordre de la catégorie local n = 1 if (categorie == "primaire") then n = 1 elseif (categorie == "secondaire") then n = 2 elseif (categorie == "tertiaire") then n = 3 end

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

-- on retourne la valeur return data[infobox][tpe][n] end

return p