Módulo:PetOutfitsVisualizer: mudanças entre as edições

De TibiaRPGBrasil Wiki
Ir para navegação Ir para pesquisar
Sem resumo de edição
Etiqueta: Reversão manual
Sem resumo de edição
 
(4 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 3: Linha 3:
function p.render(frame)
function p.render(frame)
     local outfitsStr = frame.args.outfits or ""
     local outfitsStr = frame.args.outfits or ""
     local lineBreak = tonumber(frame.args.linebreak) or 1000
    local countOutfits = select(2, outfitsStr:gsub(";", "")) + 1
     local lineBreak = tonumber(frame.args.linebreak) or countOutfits
     local container = mw.html.create('div'):addClass('pet-outfit-gallery')
     local container = mw.html.create('div'):addClass('pet-outfit-gallery')
     local childContainer = mw.html.create('div')
     local childContainer = mw.html.create('div')
         :addClass('pet-outfit-gallery-child')
         :addClass('pet-outfit-gallery-child')
         :css({
         :css({
             display = 'flex',
             display = 'grid',
             flexWrap = 'wrap',
             ["grid-template-columns"] = 'repeat('.. lineBreak ..', 1fr)',
             gap = '10px'
             gap = '10px'
         })
         })
Linha 34: Linha 35:


             childContainer:node(box)
             childContainer:node(box)
            line = line + 1
            if line % lineBreak == 0 then
                childContainer:node(mw.html.create('br'))
            end
         end
         end
     end
     end

Edição atual tal como às 18h46min de 19 de agosto de 2025

A documentação para este módulo pode ser criada em Módulo:PetOutfitsVisualizer/doc

local p = {}

function p.render(frame)
    local outfitsStr = frame.args.outfits or ""
    local countOutfits = select(2, outfitsStr:gsub(";", "")) + 1
    local lineBreak = tonumber(frame.args.linebreak) or countOutfits
    local container = mw.html.create('div'):addClass('pet-outfit-gallery')
    local childContainer = mw.html.create('div')
        :addClass('pet-outfit-gallery-child')
        :css({
            display = 'grid',
            ["grid-template-columns"] = 'repeat('.. lineBreak ..', 1fr)',
            gap = '10px'
        })

    local line = 0
    for outfitPair in outfitsStr:gmatch("[^;]+") do
        local file, caption = outfitPair:match("^%s*(.-)%s*,%s*(.-)%s*$")
        if file then
            local box = mw.html.create('div')
                :addClass('gallerybox')

            -- Imagem
            local imgDiv = mw.html.create('div')
                :css({ textAlign = 'center' })
                :wikitext(string.format('[[File:%s]]', file))
            box:node(imgDiv)

            -- Texto/legenda
            local textDiv = mw.html.create('div')
                :addClass('gallerytext')
                :css({ textAlign = 'center', marginTop = '4px' })
                :wikitext(caption or "")
            box:node(textDiv)

            childContainer:node(box)
        end
    end
    container:node(childContainer)
    return tostring(container)
end

return p