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
 
(26 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
local p = {}
local p = {}


string.explode = function (str, sep)
function p.render(frame)
if(type(sep) ~= 'string' or isInArray({tostring(str):len(), sep:len()}, 0)) then
    local outfitsStr = frame.args.outfits or ""
return {}
    local countOutfits = select(2, outfitsStr:gsub(";", "")) + 1
end
    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 i, pos, tmp, t = 0, 1, "", {}
    local line = 0
for s, e in function() return string.find(str, sep, pos) end do
    for outfitPair in outfitsStr:gmatch("[^;]+") do
tmp = str:sub(pos, s - 1):trim()
        local file, caption = outfitPair:match("^%s*(.-)%s*,%s*(.-)%s*$")
table.insert(t, tmp)
        if file then
pos = e + 1
            local box = mw.html.create('div')
                :addClass('gallerybox')


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


tmp = str:sub(pos):trim()
            -- Texto/legenda
table.insert(t, tmp)
            local textDiv = mw.html.create('div')
return t
                :addClass('gallerytext')
end
                :css({ textAlign = 'center', marginTop = '4px' })
                :wikitext(caption or "")
            box:node(textDiv)


function p.render(frame)
            childContainer:node(box)
     local outfits = frame.args.outfits:explode(";")
        end
     return outfits
    end
     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