« Module:Compétences » : différence entre les versions

238 octets ajoutés ,  3 juillet 2023
Gestion des compétences inconnues
Aucun résumé des modifications
Gestion des compétences inconnues
Ligne 1 : Ligne 1 :
local p = {}
local p = {}
local UNKNOWN_SKILL = "[[Catégorie:Compétence inconnue]]"


-- Merci de conserver le tri
-- Merci de conserver le tri
Ligne 44 : Ligne 46 :
-- L'utilisateur doit passer un tableau associatif des compétences qu'il
-- L'utilisateur doit passer un tableau associatif des compétences qu'il
-- veut afficher au format `{["nom_compétence"]="niveau_compétence"}`.
-- veut afficher au format `{["nom_compétence"]="niveau_compétence"}`.
-- La compétence est ignorée si elle n'existe pas.
-- Si l'utilisateur renseigne inconnue alors la fonction ajoute
-- Les compétences sont triées par rang décroissant.
-- la catégorie "Compétence inconnue".
function p._skills_list(args)
function p._skills_list(args)
local list = mw.html.create('ul')
local list = mw.html.create("ul")
local names = {}
local names = {}
for name, rank in pairs(args) do table.insert(names, name) end
for name, rank in pairs(args) do table.insert(names, name) end
table.sort(names, function(n1, n2) return args[n1] > args[n2] end)
table.sort(names, function(n1, n2) return args[n1] > args[n2] end)
local contains_unknown_skill = false
for _, name in ipairs(names) do
for _, name in ipairs(names) do
Ligne 61 : Ligne 65 :
:wikitext(text)
:wikitext(text)
:done()
:done()
else
contains_unknown_skill = true
end
end
end
end
Ligne 66 : Ligne 72 :
list:allDone()
list:allDone()
local wrapper = mw.html.create('div')
local wrapper = mw.html.create("div")
:addClass('liste-simple')
:addClass("liste-simple")
:node(list)
:node(list)
:done()
:done()
return tostring(wrapper)
local category = ""
if contains_unknown_skill then
category = UNKNOWN_SKILL
end
return tostring(wrapper) .. category
end
end