« 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 | ||
Dernière version du 30 octobre 2025 à 11:41
La documentation pour ce module peut être créée à Module:Infobox/Configs/Organisation/doc
-- 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 = {
{
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
}
}
-- ==========================
-- 🗂️ Catégories automatiques
-- ==========================
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
-- 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