« 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 | ||
Version du 21 octobre 2025 à 09:15
La documentation pour ce module peut être créée à Module:Infobox/Configs/Localite/doc
local config = {
titre = function(args)
return args.nom or '{{PAGENAME}}'
end,
-- Icône avec type et nom
icone = {
type = 'fas',
nom = 'map-location-dot'
},
image = function(args)
if args.image then
return {
nom = args.image,
taille = args.tailleimage or "250px",
legende = args.legende
}
end
return nil
end,
-- Configuration du champ "type" avec validation et catégorisation
typeField = {
required = false,
allowedValues = {
['ville'] = {
display = 'Ville',
category = 'Villes'
},
['village'] = {
display = 'Village',
category = 'Villages'
},
['cité'] = {
display = 'Cité',
category = 'Cités'
},
['capitale'] = {
display = 'Capitale',
category = 'Capitales'
},
['port'] = {
display = 'Port',
category = 'Ports'
},
['forteresse'] = {
display = 'Forteresse',
category = 'Forteresses'
},
['château'] = {
display = 'Château',
category = 'Châteaux'
},
['ruine'] = {
display = 'Ruine',
category = 'Ruines'
},
['avant-poste'] = {
display = 'Avant-poste',
category = 'Avant-postes'
},
['campement'] = {
display = 'Campement',
category = 'Campements'
},
['métropole'] = {
display = 'Métropole',
category = 'Métropoles'
},
['sanctuaire'] = {
display = 'Sanctuaire',
category = 'Sanctuaires'
},
['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, cité-état'
},
sections = {
{
titre = 'Informations Générales',
champs = {
{
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 = 'destruction', label = 'Destruction' },
{ cle = 'fondateur', label = 'Fondateur(s)' },
{ cle = 'symbole', label = 'Symbole' },
{ cle = 'statut', label = 'Statut' },
{ cle = 'x', label = 'Coordonnée X' },
{ cle = 'y', label = 'Coordonnée Y' },
{ cle = 'z', label = 'Coordonnée Z' }
}
},
{
titre = 'Organisation Interne',
champs = {
{ cle = 'dirigeant', label = 'Dirigeant' },
{ cle = 'population', label = 'Population' },
{ cle = 'culte', label = 'Culte' },
{ cle = 'organisation_rattachee', label = 'Organisation rattachée' },
{ cle = 'gouvernement', label = 'Type de gouvernement' },
{ cle = 'quartiers', label = 'Quartiers' }
}
},
{
titre = 'Économie et Société',
champs = {
{ cle = 'activite', label = 'Activité' },
{ cle = 'ressources', label = 'Ressources' },
{ cle = 'monnaie', label = 'Monnaie' },
{ cle = 'commerce', label = 'Commerce' },
{ cle = 'culture', label = 'Culture' },
{ cle = 'langues', label = 'Langues' }
}
},
{
titre = 'Géographie',
champs = {
{ cle = 'monde', label = 'Monde' },
{ cle = 'climat', label = 'Climat' },
{ cle = 'biome', label = 'Biome' },
{ cle = 'relief', label = 'Relief' },
{ cle = 'superficie', label = 'Superficie' },
{ cle = 'cours_eau', label = 'Cours d\'eau' },
{ cle = 'batiments', label = 'Bâtiments notables' }
}
}
},
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