Modulo:Larifk

De Wiki Gla
Revisão de 14h17min de 16 de março de 2026 por Larifk (discussão | contribs) (Criou página com 'local p = {} function p.render(frame) local args = frame:getParent().args local nome = mw.text.trim(args['nome'] or '') local root = mw.html.create('div'):attr('...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

local p = {}

function p.render(frame)

   local args = frame:getParent().args
   local nome = mw.text.trim(args['nome'] or )
   local root = mw.html.create('div'):attr('class', 'lk-wrap')
   if nome ~=  then
       root:tag('div'):attr('class', 'lk-titulo'):wikitext(nome)
   end
   -- coleta baús (para no primeiro bauNtipo ausente)
   local baus = {}
   local i = 1
   while true do
       local tipo = mw.text.trim(args['bau' .. i .. 'tipo'] or )
       if tipo ==  then break end
       baus[#baus + 1] = i
       i = i + 1
   end
   if #baus == 0 then return tostring(root) end
   -- tabs
   local tabs = root:tag('div'):attr('class', 'lk-tabs')
   for idx, n in ipairs(baus) do
       tabs:tag('span')
           :attr('class', idx == 1 and 'lk-tab active' or 'lk-tab')
           :attr('data-tab', 'b' .. n)
           :wikitext('Baú ' .. string.format('%02d', n))
   end
   -- painéis
   for idx, n in ipairs(baus) do
       local px     = 'bau' .. n
       local tipo   = mw.text.trim(args[px .. 'tipo']   or )
       local img    = mw.text.trim(args[px .. 'img']    or )
       local video  = mw.text.trim(args[px .. 'video']  or )
       local imagem = mw.text.trim(args[px .. 'imagem'] or )
       local panel = root:tag('div')
           :attr('class', idx == 1 and 'lk-panel active' or 'lk-panel')
           :attr('data-panel', 'b' .. n)
       -- esquerda
       local left = panel:tag('div'):attr('class', 'lk-left')
       local baubox = left:tag('div'):attr('class', 'lk-bau-box')
       if img ~=  then
           baubox:tag('img'):attr('src', img):attr('alt', 'baú')
       end
       left:tag('span'):attr('class', 'lk-badge ' .. tipo):wikitext(tipo)
       -- direita
       local right = panel:tag('div'):attr('class', 'lk-right')
       -- recompensas
       local rsec = right:tag('div')
       rsec:tag('div'):attr('class', 'lk-slabel'):wikitext('Recompensas')
       local grid = rsec:tag('div'):attr('class', 'lk-rewards')
       local j = 1
       while true do
           local qty  = mw.text.trim(args[px .. 'reward'    .. j] or )
           local rimg = mw.text.trim(args[px .. 'rewardimg' .. j] or )
           if qty ==  and rimg ==  then break end
           local item   = grid:tag('div'):attr('class', 'lk-reward')
           local sprite = item:tag('div'):attr('class', 'lk-rsprite')
           if rimg ~=  then
               sprite:tag('img'):attr('src', rimg):attr('alt', )
           end
           if qty ~=  then
               item:tag('span'):attr('class', 'lk-rqty'):wikitext(qty)
           end
           j = j + 1
       end
       -- mídia
       if video ~=  or imagem ~=  then
           right:tag('div'):attr('class', 'lk-divider')
           local msec = right:tag('div')
           msec:tag('div'):attr('class', 'lk-slabel'):wikitext('Como chegar')
           local mwrap = msec:tag('div'):attr('class', 'lk-media-wrap')
           if video ~=  then
               mwrap:tag('iframe')
                   :attr('src', 'https://www.youtube.com/embed/' .. video)
                   :attr('allowfullscreen', )
                   :wikitext()
           else
               mwrap:tag('img'):attr('src', imagem):attr('alt', 'como chegar')
           end
       end
   end
   return tostring(root)

end

return p