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/Localite » : différence entre les versions

De Nefald
Aucun résumé des modifications
Balise : Révoqué
Annulation des modifications 1052 de Ayd (discussion)
Balise : Annulation
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', -- ou 'fab', 'far', 'fal', 'fad'
         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, -- Optionnel pour les localités
         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, 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'
     },
     },


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