« Module:Infobox/Configs/Organisation » : différence entre les versions
De Nefald
Autres actions
Aucun résumé des modifications Balise : Révoqué |
Aucun résumé des modifications Balise : Révocation manuelle |
||
| Ligne 1 : | Ligne 1 : | ||
-- Module:Infobox/Configs/Organisation | |||
-- Configuration du modèle {{Infobox Organisation}} | |||
-- | local config = {} | ||
-- ========================== | |||
-- 🏷️ Titre de la page | |||
} | -- ========================== | ||
config.titre = function(args) | |||
return args.nom or mw.title.getCurrentTitle().text | |||
end | |||
-- ========================== | |||
-- 🏛️ Icône principale (Font Awesome) | |||
-- ========================== | |||
config.icone = { | |||
type = 'fas', | |||
nom = 'landmark', | |||
couleur = '#2c3e50' | |||
} | |||
-- ========================== | |||
-- 🖼️ Image principale | |||
-- ========================== | |||
config.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 | |||
-- ========================== | |||
-- 🧭 Type d'organisation | |||
-- ========================== | |||
config.typeField = { | |||
required = true, | |||
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', | |||
errorMessage = 'Type non valide. Types autorisés : faction, tribu, ordre, guilde, administration.' | |||
} | |||
- | -- ========================== | ||
-- 📑 Sections principales | |||
-- ========================== | |||
config.sections = { | |||
if args. | { | ||
titre = 'Informations générales', | |||
id = 'infos-generales', | |||
champs = { | |||
{ cle = 'type', label = 'Type', 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' }, | |||
{ 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' }, | |||
{ 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 } | |||
}, | |||
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 | end | ||
} | |||
} | |||
-- ========================== | |||
-- 🗂️ Catégories automatiques | |||
table.insert(cats, ' | -- ========================== | ||
config.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 | |||
if args.monde then | |||
table.insert(cats, 'Localisation dans ' .. args.monde) | |||
end | end | ||
-- Catégorie générique | |||
table.insert(cats, 'Organisations') | |||
return cats | |||
end | |||
-- ========================== | |||
-- 🧪 Fonction de test rapide | |||
-- ========================== | |||
function config.test() | |||
return "✅ Module Infobox/Configs/Organisation chargé correctement" | |||
end | |||
return config | return config | ||