Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.
Version datée du 28 octobre 2025 à 20:39 par Hiob (discussion | contributions) (map)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

La documentation pour ce module peut être créée à Module:Infobox/Configs/Geographie/doc

local config = {
    titre = function(args)
        return args.nom or '{{PAGENAME}}'
    end,

    -- Icône avec type et nom
    icone = {
        type = 'fas',  -- ou 'fab', 'far', 'fal', 'fad'
        nom = 'globe-stand'
    },
    
    image = function(args)
        if args.image then
            return {
                nom = args.image,
                taille = args.tailleimage or "300px",
                legende = args.legende or args.nom or '{{PAGENAME}}'
            }
        end
        return nil
    end,
    
    typeField = {
        required = false, -- Optionnel pour les géographies
        allowedValues = {
            ['supercontinent'] = {
                display = 'Supercontinent',
                category = 'Supercontinent'
            },
            ['continent'] = {
                display = 'Continent', 
                category = 'Continent'
            },
            ["cours d'eau"] = {
                display = "Cours d'eau",
                category = "Cours d'eau"
            },
            ['océan'] = {
                display = 'Mers & Océans',
                category = 'Mers & Océans'
            },
            ['mer'] = {
                display = 'Mers & Océans',
                category = 'Mers & Océans'
            },
            ['monde'] = {
                display = 'Monde',
                category = 'Monde'
            },
            ['région'] = {
                display = 'Région',
                category = 'Région'
            },
        },
        errorMessage = "Type de Géographie non reconnu. Types autorisés : Monde, Supercontinent, Continent, Région, Océan, Mer, Cours d'eau"
    },
    
    sections = {
        {
            titre = 'Informations générales',
            champs = {
                { cle = 'type', label = 'Type' },
                { cle = 'climat', label = 'Climat' },
                { cle = 'statut', label = 'Statut' },
            }
        },
        {
            titre = 'Habitants et culture',
            champs = {
                { cle = 'controle', label = 'Contrôle' },
                { cle = 'langues', label = 'Langues' },
                { cle = 'cultes', label = 'Cultes' },
                { cle = 'capitale', label = 'Capitale' },
            }
        },
        {
            titre = 'Localisation',
            champs = {
                { cle = 'monde', label = 'Monde' },
                { cle = 'localisation', label = 'Localisation' },
                -- Les coordonnées seront affichées automatiquement ici si renseignées
                { cle = 'x', label = 'X' },  -- Masqué si coordonnées complètes
                { cle = 'y', label = 'Y' },  -- Masqué si coordonnées complètes
                { cle = 'z', label = 'Z' },  -- Masqué si coordonnées complètes
                { cle = 'worldname', label = 'Monde technique' },  -- Masqué si coordonnées complètes
                { cle = 'mapname', label = 'Type de carte' },  -- Optionnel, masqué
                { cle = 'zoom', label = 'Zoom' },  -- Optionnel, masqué
            }
        }
    },

    -- 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
Les témoins (''cookies'') nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation de témoins.