« Module:TagInfoCard » : différence entre les versions

De Eco - Wiki Français
Aller à :navigation, rechercher
[version vérifiée][version vérifiée]
Page créée avec « local p = {} local Utils = require('Module:Utils') local IconUtils = require('Module:IconUtils') local RecipeUtils = require('Module:RecipeUtils') local Lang = Utils.getLanguageName() function p.main(frame) -- Récupération du nom de la page local NomPage = frame.args[1] -- Supprimer le suffixe "Tag" si présent local TagSuffixe = string.gsub(Utils.Translate("{0} Tag"), "{0}", "") NomPage = string.gsub(NomPage, TagSuffixe, "") -- Dé... »
 
Aucun résumé des modifications
 
Ligne 10 : Ligne 10 :
     -- Récupération du nom de la page
     -- Récupération du nom de la page
     local NomPage = frame.args[1]
     local NomPage = frame.args[1]
   
    -- Décoder les entités HTML (comme ' en ')
    NomPage = mw.text.decode(NomPage)
   
    -- Normaliser les apostrophes typographiques (au cas où)
    NomPage = Utils.NormalizeApostrophes(NomPage)


     -- Supprimer le suffixe "Tag" si présent
     -- Supprimer le suffixe "Tag" si présent
Ligne 30 : Ligne 36 :
     local Tag = TagData.tags[NomTag]
     local Tag = TagData.tags[NomTag]
     if not Tag then
     if not Tag then
         return "Tag introuvable : " .. NomTag
         return '<div class="alert alert-danger">Tag introuvable : "' .. NomPage .. '" (recherché comme : "' .. NomTag .. '")</div>'
     end
     end


Ligne 39 : Ligne 45 :
     local WikiTexte = ""
     local WikiTexte = ""
     WikiTexte = WikiTexte .. "__NOTOC__"
     WikiTexte = WikiTexte .. "__NOTOC__"
    WikiTexte = WikiTexte .. "Nom de la page : " .. NomPage .. "</br>"
    WikiTexte = WikiTexte .. "Nom du tag : " .. NomTag .. "</br>"


     -- Catégorie
     -- Catégorie
Ligne 54 : Ligne 58 :


     -- Liste des items associés
     -- Liste des items associés
     WikiTexte = WikiTexte .. "<h3>" .. Utils.Translate("Items in Tag", "Objets avec ce tag") .. " :</h3>"
     WikiTexte = WikiTexte .. "<h3>" .. Utils.Translate("Items in Tag") .. " :</h3>"
     WikiTexte = WikiTexte .. '<div class="row">'
     WikiTexte = WikiTexte .. '<div class="row">'


Ligne 75 : Ligne 79 :
     local RecetteTagIngredients = RecipeUtils.TagIngredient(NomTag)
     local RecetteTagIngredients = RecipeUtils.TagIngredient(NomTag)
     if RecetteTagIngredients ~= "" then
     if RecetteTagIngredients ~= "" then
         WikiTexte = WikiTexte .. "<h3>" .. Utils.Translate("Used in", "Utilisé dans") .. " :</h3>"
         WikiTexte = WikiTexte .. "<h3>" .. Utils.Translate("Used in") .. " :</h3>"
         WikiTexte = WikiTexte .. RecipeUtils.CraftTable(RecetteTagIngredients)
         WikiTexte = WikiTexte .. RecipeUtils.CraftTable(RecetteTagIngredients)
     end
     end

Dernière version du 21 novembre 2025 à 21:43

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

local p = {}

local Utils = require('Module:Utils')
local IconUtils = require('Module:IconUtils')
local RecipeUtils = require('Module:RecipeUtils')

local Lang = Utils.getLanguageName()

function p.main(frame)
    -- Récupération du nom de la page
    local NomPage = frame.args[1]
    
    -- Décoder les entités HTML (comme &#39; en ')
    NomPage = mw.text.decode(NomPage)
    
    -- Normaliser les apostrophes typographiques (au cas où)
    NomPage = Utils.NormalizeApostrophes(NomPage)

    -- Supprimer le suffixe "Tag" si présent
    local TagSuffixe = string.gsub(Utils.Translate("{0} Tag"), "{0}", "")
    NomPage = string.gsub(NomPage, TagSuffixe, "")

    -- Déterminer le nom interne du tag selon la langue
    local NomTag
    if Lang == 'English' then
        NomTag = NomPage
    else
        NomTag = Utils.TagSearch(NomPage)
    end

    -- Charger les modules de données
    local TagData = require("Module:TagData")
    local ItemData = require("Module:ItemData")
    
    -- Récupérer les données du tag
    local Tag = TagData.tags[NomTag]
    if not Tag then
        return '<div class="alert alert-danger">Tag introuvable : "' .. NomPage .. '" (recherché comme : "' .. NomTag .. '")</div>'
    end

    local TagID = Tag.ID
    local ListeItems = Tag.Items

    -- Début du texte Wiki
    local WikiTexte = ""
    WikiTexte = WikiTexte .. "__NOTOC__"

    -- Catégorie
    WikiTexte = WikiTexte .. "[[Catégorie:" .. Utils.Translate("Tags") .. "]]"

    -- Icône du tag
    WikiTexte = WikiTexte .. IconUtils.main{
        name = Tag.Name[Lang],
        id = TagID,
        size = 128,
        style = 4,
    }

    -- Liste des items associés
    WikiTexte = WikiTexte .. "<h3>" .. Utils.Translate("Items in Tag") .. " :</h3>"
    WikiTexte = WikiTexte .. '<div class="row">'

    for _, NomItem in pairs(ListeItems) do
        local Item = ItemData.items[NomItem]
        if Item then
            WikiTexte = WikiTexte .. IconUtils.main{
                name = Item.Name[Lang],
                id = Item.ID,
                size = 128,
                style = 4,
                link = Item.Name[Lang]
            }
        end
    end

    WikiTexte = WikiTexte .. "</div>"

    -- Objets utilisant ce tag dans des recettes
    local RecetteTagIngredients = RecipeUtils.TagIngredient(NomTag)
    if RecetteTagIngredients ~= "" then
        WikiTexte = WikiTexte .. "<h3>" .. Utils.Translate("Used in") .. " :</h3>"
        WikiTexte = WikiTexte .. RecipeUtils.CraftTable(RecetteTagIngredients)
    end

    return WikiTexte
end

return p