Mudanças entre as edições de "Módulo:WeeklyBosses"

De Wiki Gla
Ir para navegação Ir para pesquisar
(Criou página com '--[[ Module:WeeklyBosses – Botões de redirecionamento para bosses semanais. Uso: {{WeeklyBosses|imgbtn1=x|txtbtn1=y|linkbtn1=z|imgbtn2=...|txtbtn2=...|linkbtn2=...}} ]] lo...')
 
m
 
(8 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
--[[
--[[
Module:WeeklyBosses – Botões de redirecionamento para bosses semanais.
Module:WeeklyBosses – Botões de redirecionamento para bosses semanais.
Uso: {{WeeklyBosses|imgbtn1=x|txtbtn1=y|linkbtn1=z|imgbtn2=...|txtbtn2=...|linkbtn2=...}}
Params: imgbtn, txtbtn, linkbtn, bgimg (só nome do arquivo para fundo, ex: Fundo.png).
]]
]]


Linha 7: Linha 7:


function p.main(frame)
function p.main(frame)
     local args = frame:getParent().args or {}
     local parentFrame = frame:getParent()
     local container = mw.html.create('div'):addClass('weekly-bosses')
    local args = frame.args or (parentFrame and parentFrame.args) or {}
     local parent = parentFrame
    local out = {}


     for i = 1, 10 do
     for i = 1, 10 do
Linha 16: Linha 18:
         local txt = mw.text.trim(args['txtbtn' .. i] or '')
         local txt = mw.text.trim(args['txtbtn' .. i] or '')
         local img = mw.text.trim(args['imgbtn' .. i] or '')
         local img = mw.text.trim(args['imgbtn' .. i] or '')
         local bg = mw.text.trim(args['bg' .. i] or args['background'] or '#2a3544')
         local bgimg = mw.text.trim(args['bgimg' .. i] or args['bgimg'] or '')
        local nome = (txt ~= '' and txt or link)


         local btn = container:tag('div')
         local conteudo
             :addClass('weekly-bosses__btn')
        if img ~= '' then
             :attr('data-background', bg)
            local imgWikitext = '[[Arquivo:' .. img .. '|link=]]'
             local imgHtml = (parent or frame):preprocess(imgWikitext)
            conteudo = '<div class="weekly-bosses__btn-img">' .. imgHtml ..
                '</div><div class="weekly-bosses__btn-label">' .. mw.text.encode(nome, 'entity') .. '</div>'
        else
             conteudo = '<div class="weekly-bosses__btn-label">' .. mw.text.encode(nome, 'entity') .. '</div>'
        end


         local url = mw.uri.fullUrl(link)
         local uri = mw.uri.fullUrl(link)
         local a = btn:tag('a'):attr('href', url)
         local href = (type(uri) == 'string') and uri or tostring(uri)


         if img ~= '' then
         local dataAttrs = 'data-link="' .. mw.text.encode(link, 'entity') ..
             a:wikitext('[[Arquivo:' .. img .. '|48px]]')
             '" data-href="' .. mw.text.encode(href, 'entity') .. '"'
             a:tag('br')
        if bgimg ~= '' then
             dataAttrs = dataAttrs .. ' data-bgimg="' .. mw.text.encode(bgimg, 'entity') .. '"'
         end
         end
         a:wikitext(txt ~= '' and txt or link)
         table.insert(out, '<div class="weekly-bosses__btn" ' .. dataAttrs .. '>' .. conteudo .. '</div>')
     end
     end


     return tostring(container)
     return '<div class="weekly-bosses">' .. table.concat(out) .. '</div>'
end
end


return p
return p

Edição atual tal como às 05h08min de 22 de fevereiro de 2026

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

--[[
Module:WeeklyBosses – Botões de redirecionamento para bosses semanais.
Params: imgbtn, txtbtn, linkbtn, bgimg (só nome do arquivo para fundo, ex: Fundo.png).
]]

local p = {}

function p.main(frame)
    local parentFrame = frame:getParent()
    local args = frame.args or (parentFrame and parentFrame.args) or {}
    local parent = parentFrame
    local out = {}

    for i = 1, 10 do
        local link = mw.text.trim(args['linkbtn' .. i] or '')
        if link == '' then break end

        local txt = mw.text.trim(args['txtbtn' .. i] or '')
        local img = mw.text.trim(args['imgbtn' .. i] or '')
        local bgimg = mw.text.trim(args['bgimg' .. i] or args['bgimg'] or '')
        local nome = (txt ~= '' and txt or link)

        local conteudo
        if img ~= '' then
            local imgWikitext = '[[Arquivo:' .. img .. '|link=]]'
            local imgHtml = (parent or frame):preprocess(imgWikitext)
            conteudo = '<div class="weekly-bosses__btn-img">' .. imgHtml ..
                '</div><div class="weekly-bosses__btn-label">' .. mw.text.encode(nome, 'entity') .. '</div>'
        else
            conteudo = '<div class="weekly-bosses__btn-label">' .. mw.text.encode(nome, 'entity') .. '</div>'
        end

        local uri = mw.uri.fullUrl(link)
        local href = (type(uri) == 'string') and uri or tostring(uri)

        local dataAttrs = 'data-link="' .. mw.text.encode(link, 'entity') ..
            '" data-href="' .. mw.text.encode(href, 'entity') .. '"'
        if bgimg ~= '' then
            dataAttrs = dataAttrs .. ' data-bgimg="' .. mw.text.encode(bgimg, 'entity') .. '"'
        end
        table.insert(out, '<div class="weekly-bosses__btn" ' .. dataAttrs .. '>' .. conteudo .. '</div>')
    end

    return '<div class="weekly-bosses">' .. table.concat(out) .. '</div>'
end

return p