« Module:Infobox/Configs/Localite » : différence entre les versions
De Nefald
Autres actions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| (10 versions intermédiaires par 2 utilisateurs non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
local config = { | local config = { | ||
titre = function(args) | titre = function(args) | ||
return args.nom or '{{PAGENAME}}' | return args.nom or '{{PAGENAME}}' | ||
end, | end, | ||
image = function(args) | -- Icône de l’infobox | ||
icone = { | |||
type = 'fas', | |||
nom = 'map-location-dot' | |||
}, | |||
-- Gestion de l’image | |||
image = function(args) | |||
if args.image then | if args.image then | ||
return { | return { | ||
| Ligne 15 : | Ligne 22 : | ||
end, | end, | ||
-- Configuration du champ "type" | |||
typeField = { | |||
required = false, | |||
allowedValues = { | |||
['ville'] = { display = 'Ville', category = 'Ville' }, | |||
['village'] = { display = 'Village', category = 'Village' }, | |||
['cité'] = { display = 'Cité', category = 'Cité' }, | |||
['capitale'] = { display = 'Capitale', category = 'Capitale' }, | |||
['port'] = { display = 'Port', category = 'Port' }, | |||
['forteresse'] = { display = 'Forteresse', category = 'Forteresse' }, | |||
['château'] = { display = 'Château', category = 'Château' }, | |||
['ruine'] = { display = 'Ruine', category = 'Ruine' }, | |||
['avant-poste'] = { display = 'Avant-poste', category = 'Avant-poste' }, | |||
['campement'] = { display = 'Campement', category = 'Campement' }, | |||
['métropole'] = { display = 'Métropole', category = 'Métropole' }, | |||
['sanctuaire'] = { display = 'Sanctuaire', category = 'Sanctuaire' }, | |||
['cité-état'] = { display = 'Cité-État', category = 'Cité-État' } | |||
}, | |||
errorMessage = 'Type de localité non reconnu. Types autorisés : ville, village, cité, capitale, port, forteresse, château, ruine, avant-poste, campement, métropole, sanctuaire' | |||
}, | |||
-- Sections de l’infobox | |||
sections = { | sections = { | ||
{ | { | ||
| Ligne 25 : | Ligne 54 : | ||
{ cle = 'symbole', label = 'Symbole' }, | { cle = 'symbole', label = 'Symbole' }, | ||
{ cle = 'statut', label = 'Statut' }, | { cle = 'statut', label = 'Statut' }, | ||
{ cle = 'x', label = 'Coordonnée X' }, | { cle = 'x', label = 'Coordonnée X' }, | ||
{ cle = 'y', label = 'Coordonnée Y' }, | { cle = 'y', label = 'Coordonnée Y' }, | ||
{ cle = 'z', label = 'Coordonnée Z' } | { cle = 'z', label = 'Coordonnée Z' } | ||
} | } | ||
| Ligne 64 : | Ligne 93 : | ||
} | } | ||
} | } | ||
} | }, | ||
-- Catégorisation automatique selon le type | |||
categories = function(args, config, frame) | |||
local cats = {} | |||
local title = mw.title.getCurrentTitle() | |||
-- On ajoute les catégories uniquement dans le namespace principal (0) | |||
if title.namespace ~= 0 then | |||
return cats | |||
end | |||
-- Catégorie selon le type | |||
if args.type and config.typeField and config.typeField.allowedValues then | |||
local cleanType = mw.text.trim(mw.ustring.lower(args.type)) | |||
local typeDef = config.typeField.allowedValues[cleanType] | |||
if typeDef and typeDef.category then | |||
table.insert(cats, typeDef.category) | |||
end | |||
end | |||
return cats | |||
end | |||
} | } | ||
return config | return config | ||