« Module:Chartes » : différence entre les versions
Aller à la navigation
Aller à la recherche
m (1 version importée) |
m (1 version importée) |
||
(2 versions intermédiaires par 2 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 | 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 | 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 | ||
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 | local args = frame.args | ||
local categorie = | |||
local tpe = | 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) | 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