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 16 : Ligne 16 :
         return nil
         return nil
     end,
     end,
    -- 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
     -- STATUT DU PERSONNAGE
Ligne 33 : Ligne 21 :
         required = false,
         required = false,
         allowedValues = {
         allowedValues = {
             ['vivant'] = { display = 'Vivant', category = 'Personnages vivants' },
             ['vivant'] = { display = 'Vivant', category = 'Personnage vivant' },
             ['décédé'] = { display = 'Décédé', category = 'Personnages décédés' },
             ['décédé'] = { display = 'Décédé', category = 'Personnage décédé' },
             ['disparu'] = { display = 'Disparu', category = 'Personnages disparus' },
             ['disparu'] = { display = 'Disparu', category = 'Personnage disparu' },
             ['immortel'] = { display = 'Immortel', category = 'Personnages immortels' }
             ['immortel'] = { display = 'Immortel', category = 'Personnage immortel' }
         }
         }
     },
     },


     -- CATÉGORIES AUTOMATIQUES
     -- CATÉGORIES AUTOMATIQUES (STATUT UNIQUEMENT)
     categories = function(args, config, frame)
     categories = function(args, config, frame)


Ligne 46 : Ligne 34 :
         local title = mw.title.getCurrentTitle()
         local title = mw.title.getCurrentTitle()


         -- uniquement namespace principal
         -- catégories uniquement namespace principal
         if title.namespace ~= 0 then
         if title.namespace ~= 0 then
             return cats
             return cats
         end
         end


         -- === catégorie TYPE ===
         -- catégorie selon statut
        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
         if args.statut and config.statutField and config.statutField.allowedValues then
             local cleanStatut = mw.text.trim(mw.ustring.lower(args.statut))
             local cleanStatut = mw.text.trim(mw.ustring.lower(args.statut))
Ligne 85 : Ligne 63 :
                 { cle = 'lieu_residence', label = 'Lieu de résidence' },
                 { cle = 'lieu_residence', label = 'Lieu de résidence' },
                 { cle = 'statut', label = 'Statut' }
                 { cle = 'statut', label = 'Statut' }
            }
        },
        {
            titre = 'Rôles et activités',
            champs = {
                { cle = 'activite', label = 'Activité' },
                { cle = 'organisation', label = 'Organisation' },
                { cle = 'role', label = 'Rôle' },
                { cle = 'croyances', label = 'Croyances' }
            }
        },
        {
            titre = 'Affiliations',
            champs = {
                { cle = 'famille', label = 'Famille' },
                { cle = 'conjoint', label = 'Conjoint' },
                { cle = 'parents', label = 'Parents' },
                { cle = 'enfants', label = 'Enfants' }
            }
        },
        {
            titre = 'Apparence',
            champs = {
                { cle = 'sexe', label = 'Sexe' },
                { cle = 'taille', label = 'Taille' },
                { cle = 'poids', label = 'Poids' },
                { cle = 'traits', label = 'Traits' }
             }
             }
         }
         }

Dernière version du 20 février 2026 à 08:34

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

local config = {

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

    icone = {
        type = 'fas',
        nom = 'person'
    },

    image = function(args)
        if args.image then
            return '[[Fichier:' .. args.image .. '|300px]]'
        end
        return nil
    end,

    -- STATUT DU PERSONNAGE
    statutField = {
        required = false,
        allowedValues = {
            ['vivant'] = { display = 'Vivant', category = 'Personnage vivant' },
            ['décédé'] = { display = 'Décédé', category = 'Personnage décédé' },
            ['disparu'] = { display = 'Disparu', category = 'Personnage disparu' },
            ['immortel'] = { display = 'Immortel', category = 'Personnage immortel' }
        }
    },

    -- CATÉGORIES AUTOMATIQUES (STATUT UNIQUEMENT)
    categories = function(args, config, frame)

        local cats = {}
        local title = mw.title.getCurrentTitle()

        -- catégories uniquement namespace principal
        if title.namespace ~= 0 then
            return cats
        end

        -- catégorie selon 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]

            if statutDef and statutDef.category then
                table.insert(cats, statutDef.category)
            end
        end

        return cats
    end,

    sections = {
        {
            titre = 'État civil',
            champs = {
                { cle = 'titre', label = 'Titre' },
                { cle = 'surnom', label = 'Surnom' },
                { cle = 'naissance', label = 'Date de naissance' },
                { cle = 'deces', label = 'Date de décès' },
                { cle = 'lieu_naissance', label = 'Lieu de naissance' },
                { cle = 'lieu_residence', label = 'Lieu de résidence' },
                { cle = 'statut', label = 'Statut' }
            }
        },
        {
            titre = 'Rôles et activités',
            champs = {
                { cle = 'activite', label = 'Activité' },
                { cle = 'organisation', label = 'Organisation' },
                { cle = 'role', label = 'Rôle' },
                { cle = 'croyances', label = 'Croyances' }
            }
        },
        {
            titre = 'Affiliations',
            champs = {
                { cle = 'famille', label = 'Famille' },
                { cle = 'conjoint', label = 'Conjoint' },
                { cle = 'parents', label = 'Parents' },
                { cle = 'enfants', label = 'Enfants' }
            }
        },
        {
            titre = 'Apparence',
            champs = {
                { cle = 'sexe', label = 'Sexe' },
                { cle = 'taille', label = 'Taille' },
                { cle = 'poids', label = 'Poids' },
                { cle = 'traits', label = 'Traits' }
            }
        }
    }
}

return config
Les témoins (''cookies'') nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation de témoins.