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

De TibiaRPGBrasil Wiki
Ir para navegação Ir para pesquisar
Sem resumo de edição
Sem resumo de edição
 
(19 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
local p = {}
local p = {}


function explode(str, sep)
function p.render(frame)
local i, pos, tmp, t = 0, 1, "", {}
    local outfitsStr = frame.args.outfits or ""
for s, e in function() return string.find(str, sep, pos) end do
    local countOutfits = select(2, outfitsStr:gsub(";", "")) + 1
tmp = str:sub(pos, s - 1)
    local lineBreak = tonumber(frame.args.linebreak) or countOutfits
         tmp = tmp:gsub("^%s*(.-)%s*$", "%1") -- trim
    local container = mw.html.create('div'):addClass('pet-outfit-gallery')
table.insert(t, tmp)
    local childContainer = mw.html.create('div')
pos = e + 1
        :addClass('pet-outfit-gallery-child')
         :css({
            display = 'grid',
            ["grid-template-columns"] = 'repeat('.. lineBreak ..', 1fr)',
            gap = '10px'
        })


i = i + 1
    local line = 0
end
    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')


tmp = str:sub(pos)
            -- Imagem
    tmp = tmp:gsub("^%s*(.-)%s*$", "%1") -- trim
            local imgDiv = mw.html.create('div')
table.insert(t, tmp)
                :css({ textAlign = 'center' })
return t
                :wikitext(string.format('[[File:%s]]', file))
end
            box:node(imgDiv)


function p.render(frame)
            -- Texto/legenda
    local outfits = explode(frame.args.outfits,";")
            local textDiv = mw.html.create('div')
    local retStr = ""
                :addClass('gallerytext')
    for i,outfit in pairs(outfits) do
                :css({ textAlign = 'center', marginTop = '4px' })
      retStr = retStr .. "File:" .. outfit .. "\n"
                :wikitext(caption or "")
            box:node(textDiv)
 
            childContainer:node(box)
        end
     end
     end
     return "File:Thanatos Level 1.gif|Level 1"
    container:node(childContainer)
     return tostring(container)
end
end


return p
return p

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