Aller au contenu

Module:BilanMédailles

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 11 août 2024 à 15:39 et modifiée en dernier par Aferkiiw (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

 Documentation[voir] [modifier] [historique] [purger]

Utilisation

Fonctions exportables :

  • bilan(frame) – Génère un tableau de médailles avec les options de classement, de total, et un titre personnalisé. Cette fonction prend en paramètre le frame pour recevoir les arguments du modèle et retourne un tableau HTML.

Paramètres

Les paramètres suivants peuvent être passés au modèle via le `frame` :

  • titre – Titre du tableau, suivi automatiquement de la date de dernière mise à jour. Si ce paramètre est omis, aucun titre ne sera affiché.
  • ranking – Détermine si la colonne de classement doit être affichée. Les valeurs acceptées sont oui (par défaut) ou non.
  • total – Détermine si la ligne de total doit être affichée à la fin du tableau. Les valeurs acceptées sont oui (par défaut) ou non.
  • participant – Intitulé de la colonne représentant les participants. Par défaut, cette colonne est intitulée "Participant".

Autres fonctions :

  • calculerTotal(gold, silver, bronze) – Calcule le total des médailles. Cette fonction prend trois arguments (le nombre de médailles d'or, d'argent, et de bronze) et retourne leur somme.

Modules externes et autres éléments dont ce module a besoin pour fonctionner :

  • mw.title – Ce module n'a pas de dépendances externes spécifiques au moment de l'écriture.

Exemples

Pour des exemples, voir la page de test permettant de tester diverses modifications apportées.


-- Déclaration du module
local p = {}

-- Fonction principale pour générer le tableau des médailles
function p.bilan(frame)
    -- Récupérer la chaîne de données complète
    local data = frame.args["data"]
    local result = "{| class=\"wikitable\"\n! Participant !! Or !! Argent !! Bronze !! Total\n"

    -- Vérifier que la chaîne de données n'est pas vide
    if data and data ~= "" then
        -- Diviser la chaîne en plusieurs entrées (chaque entrée correspond à un participant)
        local entries = mw.text.split(data, ";")
        
        for _, entry in ipairs(entries) do
            -- Diviser chaque entrée en quatre parties: nom, or, argent, bronze
            local fields = mw.text.split(mw.text.trim(entry), "|")
            
            -- Vérifier que nous avons bien 4 champs
            if #fields == 4 then
                local name = fields[1]
                local gold = tonumber(fields[2]) or 0
                local silver = tonumber(fields[3]) or 0
                local bronze = tonumber(fields[4]) or 0
                
                -- Calculer le total des médailles
                local total = gold + silver + bronze
                
                -- Ajouter une ligne au tableau
                result = result .. string.format("|-\n| %s || %d || %d || %d || %d\n", name, gold, silver, bronze, total)
            end
        end
    end

    -- Fermer le tableau
    result = result .. "|}"

    return result
end

-- Retourner le module
return p