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

De Nefald
Hiob (discussion | contributions)
m Retrait catégorie:Plugin Minecraft
Hiob (discussion | contributions)
statut > autocatégorisation
Ligne 19 : Ligne 19 :
         return nil
         return nil
     end,
     end,
    -- Configuration des valeurs validées
    statusField = {
        allowedValues = {
            ['installé'] = {
                display = '[[Plugin installé|Installé]]',
                category = 'Plugins installés'
            },
            ['non-installé'] = {
                display = '[[Plugin non-installé|Non-installé]]',
                category = 'Plugins non-installés'
            }
        }
    },
    typeField = {
        allowedValues = {
            ['économie'] = {
                display = 'Économie',
                category = 'Plugins d\'économie'
            },
            ['pvp'] = {
                display = 'PvP',
                category = 'Plugins de PvP'
            },
            ['roleplay'] = {
                display = 'Roleplay',
                category = 'Plugins de roleplay'
            },
            ['administration'] = {
                display = 'Administration',
                category = 'Plugins d\'administration'
            },
            ['protection'] = {
                display = 'Protection',
                category = 'Plugins de protection'
            },
            ['cosmétique'] = {
                display = 'Cosmétique',
                category = 'Plugins cosmétiques'
            },
            ['communication'] = {
                display = 'Communication',
                category = 'Plugins de communication'
            },
            ['utilitaire'] = {
                display = 'Utilitaire',
                category = 'Plugins utilitaires'
            },
            ['mini-jeu'] = {
                display = 'Mini-jeu',
                category = 'Plugins de mini-jeux'
            },
            ['monde'] = {
                display = 'Monde',
                category = 'Plugins de monde'
            },
            ['inventaire'] = {
                display = 'Inventaire',
                category = 'Plugins d\'inventaire'
            },
            ['transport'] = {
                display = 'Transport',
                category = 'Plugins de transport'
            },
            ['magie'] = {
                display = 'Magie',
                category = 'Plugins de magie'
            },
            ['mob'] = {
                display = 'Mob',
                category = 'Plugins de mobs'
            }
        }
    },


     sections = {
     sections = {
         {
         {
             champs = {
             champs = {
                 { cle = 'type', label = 'Type',  
                 {  
                  process = function(value, args)
                    cle = 'type',  
                    local types = {
                    label = 'Type',  
                        ['économie'] = 'Économie',
                    process = function(value, args)
                         ['pvp'] = 'PvP',
                        if not value or value == '' then
                         ['roleplay'] = 'Roleplay',
                            return nil
                         ['administration'] = 'Administration',
                         end
                         ['protection'] = 'Protection',
                          
                         ['cosmétique'] = 'Cosmétique',
                         local cleanValue = mw.text.trim(mw.ustring.lower(value))
                         ['communication'] = 'Communication',
                         local typeConfig = config.typeField.allowedValues[cleanValue]
                         ['utilitaire'] = 'Utilitaire',
                          
                        ['mini-jeu'] = 'Mini-jeu',
                         if typeConfig then
                        ['monde'] = 'Monde',
                            return typeConfig.display
                        ['inventaire'] = 'Inventaire',
                         else
                        ['transport'] = 'Transport',
                            return '<span style="color: red; font-weight: bold;">Type invalide: "' .. value .. '"</span>[[Catégorie:Pages avec erreurs]]'
                        ['magie'] = 'Magie',
                         end
                         ['mob'] = 'Mob'
                     end
                     }
                    return types[value] or value
                  end
                 },
                 },
                 { cle = 'dev', label = 'Développeur' },
                 { cle = 'dev', label = 'Développeur' },
                 { cle = 'status', label = 'Statut' },
                 {  
                    cle = 'status',  
                    label = 'Statut',
                    process = function(value, args)
                        if not value or value == '' then
                            return nil
                        end
                       
                        local cleanValue = mw.text.trim(mw.ustring.lower(value))
                        local statusConfig = config.statusField.allowedValues[cleanValue]
                       
                        if statusConfig then
                            return statusConfig.display
                        else
                            return '<span style="color: red; font-weight: bold;">Statut invalide: "' .. value .. '"</span>[[Catégorie:Pages avec erreurs]]'
                        end
                    end
                },
                 { cle = 'grade', label = 'Grade requis' }
                 { cle = 'grade', label = 'Grade requis' }
             }
             }
Ligne 95 : Ligne 184 :
                   process = function(value, args, frame)
                   process = function(value, args, frame)
                     if value and value ~= '' then
                     if value and value ~= '' then
                        -- Si c'est déjà un lien complet, le garder tel quel
                         if value:match('^%[.+%]$') then
                         if value:match('^%[.+%]$') then
                             return frame:preprocess(value)
                             return frame:preprocess(value)
                        -- Sinon, créer un lien automatique
                         elseif value:match('^https?://') then
                         elseif value:match('^https?://') then
                             local domain = value:match('://([^/]+)')
                             local domain = value:match('://([^/]+)')
Ligne 131 : Ligne 218 :
         local cats = {}
         local cats = {}
          
          
        -- Catégorie basée sur le type
         if args.type then
         if args.type then
             local typeCategories = {
             local cleanType = mw.text.trim(mw.ustring.lower(args.type))
                ['économie'] = 'Plugins d\'économie',
            local typeConfig = config.typeField.allowedValues[cleanType]
                ['pvp'] = 'Plugins de PvP',
            if typeConfig then
                ['roleplay'] = 'Plugins de roleplay',
                 table.insert(cats, typeConfig.category)
                 ['administration'] = 'Plugins d\'administration',
            end
                ['protection'] = 'Plugins de protection',
        end
                ['cosmétique'] = 'Plugins cosmétiques',
       
                ['communication'] = 'Plugins de communication',
        -- Catégorie basée sur le statut
                ['utilitaire'] = 'Plugins utilitaires',
        if args.status then
                ['mini-jeu'] = 'Plugins de mini-jeux',
            local cleanStatus = mw.text.trim(mw.ustring.lower(args.status))
                ['monde'] = 'Plugins de monde',
            local statusConfig = config.statusField.allowedValues[cleanStatus]
                ['inventaire'] = 'Plugins d\'inventaire',
             if statusConfig then
                ['transport'] = 'Plugins de transport',
                 table.insert(cats, statusConfig.category)
                ['magie'] = 'Plugins de magie',
                ['mob'] = 'Plugins de mobs'
            }
             if typeCategories[args.type] then
                 table.insert(cats, typeCategories[args.type])
             end
             end
         end
         end
Les témoins (''cookies'') nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation de témoins.