Módulo:Larifk
Ir para navegação
Ir para pesquisar
A documentação para este módulo pode ser criada em Módulo:Larifk/doc
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')
-- Título
if nome ~= '' then
root:tag('div'):attr('class','lk-titulo'):wikitext(nome)
end
-- Coleta baús existentes
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
local tab = 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 prefix = 'bau'..n
local tipo = mw.text.trim(args[prefix..'tipo'] or '')
local img = mw.text.trim(args[prefix..'img'] or '')
local video = mw.text.trim(args[prefix..'video'] or '')
local imagem = mw.text.trim(args[prefix..'imagem'] or '')
local panel = root:tag('div')
:attr('class', idx == 1 and 'lk-panel active' or 'lk-panel')
:attr('data-panel', 'b'..n)
-- Coluna 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)
-- Coluna direita
local right = panel:tag('div'):attr('class','lk-right')
-- Recompensas
local rewardSec = right:tag('div')
rewardSec:tag('div'):attr('class','lk-slabel'):wikitext('Recompensas')
local grid = rewardSec:tag('div'):attr('class','lk-rewards')
local j = 1
while true do
local qty = mw.text.trim(args[prefix..'reward'..j] or '')
local rimg = mw.text.trim(args[prefix..'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 mediaSec = right:tag('div')
mediaSec:tag('div'):attr('class','lk-slabel'):wikitext('Como chegar')
local wrap = mediaSec:tag('div'):attr('class','lk-media-wrap')
if video ~= '' then
wrap:tag('iframe')
:attr('src','https://www.youtube.com/embed/'..video)
:attr('allowfullscreen','')
:wikitext('')
else
wrap:tag('img'):attr('src',imagem):attr('alt','como chegar')
end
end
end
return tostring(root)
end
return p