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.

« Module:Infobox/Configs/Geopolitique » : différence entre les versions

De Nefald
Aucun résumé des modifications
Aucun résumé des modifications
 
Ligne 23 : Ligne 23 :
             ['guerre'] = {
             ['guerre'] = {
                 display = 'Guerre',
                 display = 'Guerre',
                 category = 'Guerre'
                 category = 'Conflit'
            },
            ['bataille'] = {
                display = 'Bataille',
                category = 'Conflit'
            },
            ['escarmouche'] = {
                display = 'Escarmouche',
                category = 'Conflit'
             },
             },
             ['traité'] = {
             ['traité'] = {
                 display = 'Traité',  
                 display = 'Traité',  
                 category = 'Traité'
                 category = 'Diplomatie'
             },
             },
['alliance'] = {
['alliance'] = {
                 display = 'Alliance',  
                 display = 'Alliance',  
                 category = 'Alliance'
                 category = 'Diplomatie'
             },
             },
['serment'] = {
['serment'] = {
                 display = 'Serment',  
                 display = 'Serment',  
                 category = 'Serment'
                 category = 'Diplomatie'
             },
             },
['événement'] = {
['événement'] = {
Ligne 42 : Ligne 50 :
             }
             }
         },
         },
         errorMessage = 'Type non reconnu. Types autorisés : Traité, Alliance, Serment,Guerre,Évènement'
         errorMessage = 'Type non reconnu. Types autorisés : Traité, Alliance, Serment, Guerre,Évènement, Escarmouche, Bataille '
     },
     },
      
      

Dernière version du 23 octobre 2025 à 17:22

La documentation pour ce module peut être créée à Module:Infobox/Configs/Geopolitique/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 = 'landmark-dome'
    },
    
    image = function(args)
        if args.image then
            return '[[Fichier:' .. args.image .. '|300px]]'
        end
        return nil
    end,
    
    
    typeField = {
        required = false, -- Optionnel pour les localités
        allowedValues = {
            ['guerre'] = {
                display = 'Guerre',
                category = 'Conflit'
            },
            ['bataille'] = {
                display = 'Bataille',
                category = 'Conflit'
            },
            ['escarmouche'] = {
                display = 'Escarmouche',
                category = 'Conflit'
            },
            ['traité'] = {
                display = 'Traité', 
                category = 'Diplomatie'
            },
			['alliance'] = {
                display = 'Alliance', 
                category = 'Diplomatie'
            },
			['serment'] = {
                display = 'Serment', 
                category = 'Diplomatie'
            },
			['événement'] = {
                display = 'Évènement', 
                category = 'Évènement'
            }
        },
        errorMessage = 'Type non reconnu. Types autorisés : Traité, Alliance, Serment, Guerre,Évènement, Escarmouche, Bataille '
    },
    
    sections = {
        {
            titre = 'Informations générales',
            champs = {
                { cle = 'type', label = 'Type' },
                { cle = 'date', label = 'Date' },
                { cle = 'parties', label = 'Parties' },
                { cle = 'lieux', label = 'Lieux' },
            }
        }
    },

    -- 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