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

De Nefald
Aucun résumé des modifications
Aucun résumé des modifications
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,
   
 
     icone = {
     icone = {
         type = 'fas',
         type = 'fas',
         nom = 'person'
         nom = 'person'
     },
     },
   
 
     image = function(args)
     image = function(args)
         if args.image then
         if args.image then
Ligne 16 : Ligne 17 :
     end,
     end,


     -- Catégories (uniquement dans le namespace principal)
     -- TYPE DU PERSONNAGE
    typeField = {
        required = false,
        allowedValues = {
            ['humain'] = { display = 'Humain', category = 'Humains' },
            ['elfe'] = { display = 'Elfe', category = 'Elfes' },
            ['nain'] = { display = 'Nain', category = 'Nains' },
            ['orc'] = { display = 'Orc', category = 'Orcs' },
            ['divinité'] = { display = 'Divinité', category = 'Divinités' }
        }
    },
 
    -- STATUT DU PERSONNAGE
    statutField = {
        required = false,
        allowedValues = {
            ['vivant'] = { display = 'Vivant', category = 'Personnages vivants' },
            ['décédé'] = { display = 'Décédé', category = 'Personnages décédés' },
            ['disparu'] = { display = 'Disparu', category = 'Personnages disparus' },
            ['immortel'] = { display = 'Immortel', category = 'Personnages immortels' }
        }
    },
 
    -- CATÉGORIES AUTOMATIQUES
     categories = function(args, config, frame)
     categories = function(args, config, frame)
        local cats = {}
         local title = mw.title.getCurrentTitle()
         local title = mw.title.getCurrentTitle()


         -- Si on n'est PAS dans le namespace principal → aucune catégorie
         -- uniquement namespace principal
         if title.namespace ~= 0 then
         if title.namespace ~= 0 then
             return {}
             return cats
         end
         end


         -- Sinon on laisse la logique habituelle (à adapter selon ton module)
         -- === catégorie TYPE ===
         local cats = {}
        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
 
         -- === catégorie STATUT ===
        if args.statut and config.statutField and config.statutField.allowedValues then
            local cleanStatut = mw.text.trim(mw.ustring.lower(args.statut))
            local statutDef = config.statutField.allowedValues[cleanStatut]


        -- exemple :
            if statutDef and statutDef.category then
        -- table.insert(cats, 'Catégorie:Exemple')
                table.insert(cats, statutDef.category)
            end
        end


         return cats
         return cats
Ligne 44 : Ligne 84 :
                 { cle = 'lieu_naissance', label = 'Lieu de naissance' },
                 { cle = 'lieu_naissance', label = 'Lieu de naissance' },
                 { cle = 'lieu_residence', label = 'Lieu de résidence' },
                 { cle = 'lieu_residence', label = 'Lieu de résidence' },
                 { cle = 'statut', label = 'Statut' },
                 { cle = 'statut', label = 'Statut' }
             }
             }
         }
         }
Les témoins (''cookies'') nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation de témoins.