Module:Infobox/Configs/Organisation
De Nefald
Autres actions
La documentation pour ce module peut être créée à Module:Infobox/Configs/Organisation/doc
local config = {
-- Titre de la page (avec fallback sur {{PAGENAME}})
titre = function(args)
return args.nom or mw.title.getCurrentTitle().text
end,
-- Configuration de l'icône (Font Awesome)
icone = {
type = 'fas', -- Types possibles : 'fas', 'fab', 'far', 'fal', 'fad'
nom = 'landmark',
-- Couleur optionnelle (CSS valide)
couleur = args.couleuricone or '#2c3e50'
},
-- Gestion de l'image (avec légende et taille)
image = function(args)
if args.image then
return {
nom = args.image,
taille = args.tailleimage or "250px",
legende = args.legende,
position = args.positionimage or "right" -- 'left', 'center', 'right'
}
end
return nil
end,
-- Types d'organisation (avec catégories automatiques)
typeField = {
required = true, -- Champ obligatoire
allowedValues = {
['faction'] = {
display = 'Faction',
category = 'Faction',
icone = { type = 'fas', nom = 'flag' }
},
['tribu'] = {
display = 'Tribu',
category = 'Tribu',
icone = { type = 'fas', nom = 'users' }
},
['ordre'] = {
display = 'Ordre',
category = 'Ordre',
icone = { type = 'fas', nom = 'scroll' }
},
['guilde'] = {
display = 'Guilde',
category = 'Guilde',
icone = { type = 'fas', nom = 'handshake' }
},
['administration'] = {
display = 'Administration',
category = 'Administration',
icone = { type = 'fas', nom = 'gavel' }
}
},
default = 'faction', -- Valeur par défaut si non spécifié
errorMessage = 'Type non valide. Types autorisés : faction, tribu, ordre, guilde, administration.'
},
-- Sections de la fiche (avec gestion des coordonnées groupées)
sections = {
{
titre = 'Informations générales',
id = 'infos-generales', -- ID HTML pour les ancres
champs = {
{ cle = 'type', label = 'Type', type = 'select' }, -- Champ de type "select"
{ cle = 'fondation', label = 'Fondation', type = 'date' },
{ cle = 'dissolution', label = 'Dissolution', type = 'date' },
{ cle = 'fondateurs', label = 'Fondateur(s)', type = 'text' },
{ cle = 'symbole', label = 'Symbole', type = 'image' },
{ cle = 'statut', label = 'Statut', type = 'text' },
-- Coordonnées (seront affichées groupées dans la section "Localisation")
{ cle = 'x', label = 'Coordonnée X', type = 'number', hidden = true },
{ cle = 'y', label = 'Coordonnée Y', type = 'number', hidden = true },
{ cle = 'z', label = 'Coordonnée Z', type = 'number', hidden = true }
}
},
{
titre = 'Organisation interne',
id = 'organisation',
champs = {
{ cle = 'dirigeant', label = 'Dirigeant', type = 'text' },
{ cle = 'effectifs', label = 'Effectifs', type = 'number' },
{ cle = 'activite', label = 'Activité', type = 'text' },
{ cle = 'culte', label = 'Culte', type = 'text' }
}
},
{
titre = 'Géographie',
id = 'geographie',
champs = {
{ cle = 'territoire', label = 'Territoire d’influence', type = 'text' },
{ cle = 'siege', label = 'Siège', type = 'text' }
}
},
{
titre = 'Localisation',
id = 'localisation',
champs = {
{ cle = 'monde', label = 'Monde', type = 'text' },
{ cle = 'localisation', label = 'Localisation', type = 'text' },
-- Champs techniques pour la carte (masqués par défaut)
{ cle = 'worldname', label = 'Monde technique', type = 'text', hidden = true },
{ cle = 'mapname', label = 'Type de carte', type = 'text', hidden = true },
{ cle = 'zoom', label = 'Niveau de zoom', type = 'number', hidden = true }
},
-- Fonction pour afficher les coordonnées groupées
displayCoordonnees = function(args)
if args.x and args.y and args.z then
return string.format(
'Coordonnées : **%s**, **%s**, **%s** %s',
args.x,
args.y,
args.z,
(args.monde and ('(' .. args.monde .. ')') or '')
)
end
return nil
end
}
},
-- Catégories automatiques (ajoutées à la page)
categories = function(args)
local cats = {}
-- Catégorie par type
if args.type and config.typeField.allowedValues[args.type] then
table.insert(cats, config.typeField.allowedValues[args.type].category)
end
-- Catégorie par monde (si spécifié)
if args.monde then
table.insert(cats, 'Localisation dans ' .. args.monde)
end
-- Catégorie "Organisations" par défaut
table.insert(cats, 'Organisations')
return cats
end
}
return config