« Module:Infobox/Configs/Localite » : différence entre les versions
De Nefald
Autres actions
Aucun résumé des modifications |
Aucun résumé des modifications Balise : Révoqué |
||
| 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, | ||
-- Icône avec type et nom | -- Icône avec type et nom | ||
icone = { | icone = { | ||
type = 'fas', | type = 'fas', | ||
nom = 'map-location-dot' | nom = 'map-location-dot' | ||
}, | }, | ||
image = function(args) | image = function(args) | ||
if args.image then | if args.image then | ||
return { | return { | ||
| Ligne 23 : | Ligne 23 : | ||
-- Configuration du champ "type" avec validation et catégorisation | -- Configuration du champ "type" avec validation et catégorisation | ||
typeField = { | typeField = { | ||
required = false, | required = false, | ||
allowedValues = { | allowedValues = { | ||
['ville'] = { | ['ville'] = { | ||
| Ligne 30 : | Ligne 30 : | ||
}, | }, | ||
['village'] = { | ['village'] = { | ||
display = 'Village', | display = 'Village', | ||
category = 'Villages' | category = 'Villages' | ||
}, | }, | ||
| Ligne 78 : | Ligne 78 : | ||
} | } | ||
}, | }, | ||
errorMessage = 'Type de localité non reconnu. Types autorisés : ville, village, cité, capitale, port, forteresse, château, ruine, avant-poste, campement, métropole, sanctuaire' | errorMessage = 'Type de localité non reconnu. Types autorisés : ville, village, cité, capitale, port, forteresse, château, ruine, avant-poste, campement, métropole, sanctuaire, cité-état' | ||
}, | }, | ||
| Ligne 85 : | Ligne 85 : | ||
titre = 'Informations Générales', | titre = 'Informations Générales', | ||
champs = { | champs = { | ||
{ cle = 'type', label = 'Type' }, | { | ||
cle = 'type', | |||
label = 'Type', | |||
process = function(value, args) | |||
if not value or value == '' then | |||
return nil | |||
end | |||
-- Validation du type | |||
local cleanValue = mw.text.trim(mw.ustring.lower(value)) | |||
if config.typeField.allowedValues[cleanValue] then | |||
return config.typeField.allowedValues[cleanValue].display | |||
else | |||
return '<span style="color: red; font-weight: bold;">' .. | |||
config.typeField.errorMessage .. | |||
'</span>[[Catégorie:Pages avec erreurs]]' | |||
end | |||
end | |||
}, | |||
{ cle = 'fondation', label = 'Fondation' }, | { cle = 'fondation', label = 'Fondation' }, | ||
{ cle = 'destruction', label = 'Destruction' }, | { cle = 'destruction', label = 'Destruction' }, | ||
| Ligne 130 : | Ligne 148 : | ||
} | } | ||
} | } | ||
} | }, | ||
categories = function(args, config, frame) | |||
local cats = {} | |||
-- Vérifier que la page est dans le namespace 0 (espace principal) | |||
if mw.title.getCurrentTitle().namespace == 0 then | |||
-- Ajouter la catégorie selon le type | |||
if args.type then | |||
local cleanType = mw.text.trim(mw.ustring.lower(args.type)) | |||
if config.typeField.allowedValues[cleanType] then | |||
table.insert(cats, config.typeField.allowedValues[cleanType].category) | |||
end | |||
end | |||
end | |||
return cats | |||
end | |||
} | } | ||
return config | return config | ||