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

De Lagny-sur-Marne Wiki
Aller à la navigation Aller à la recherche
0x010D (discussion | contributions)
m retouches indentation
0x010D (discussion | contributions)
déplacement du code principal dans une fonction appelable d'un autre module
Ligne 9 : Ligne 9 :


--[[
--[[
   Retourne la couleur correspondant à la charte graphique demandée.
   Fonction traitant réellement la demande (voir les paramètres ci-dessous)
  Les paramètres sont :
   Permet d'être appelé directement depuis un autre module, sans passer par
    type : le type de charte demandé (dépend de l'infobox)
    un appel de modèle/module en wikicode
    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)
function p.charte_m(infobox, categorie, tpe, diese)
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"]
-- validation des paramètres (valeur par défaut)
-- validation des paramètres (valeur par défaut)
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 == "") then tpe = "défaut" end
if ((tpe == nil) or (tpe == "")) then tpe = "défaut" 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
Ligne 82 : Ligne 69 :
return data[infobox][tpe][n]
return data[infobox][tpe][n]
end
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)
  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
end


return p
return p

Version du 19 novembre 2016 à 20:14

--[[

 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 "Problème interne au module (données)" 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 "Problème interne au module (infobox)" 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 "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" 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 "Problème interne au module (élément)" end

-- on retourne la valeur if (diese == "oui") 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)
 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