Menú alternativo
Menú alternativo personal
No has accedido
Tu dirección IP será visible si haces alguna edición

Módulo:Pestañas

De Wiki Polandball Hispana

Este módulo es utilizado por la plantilla Pestañas. Es encargado de generar las diferentes pestañas, actualmente tiene un máximo de 8 pestañas, sin embargo, se puede aumentar.

Para más información sobre su uso dirígete a la documentación de la plantilla.


local p = {}

function p.Tabber(frame)
    local args = frame.args
    local tabs = {}
    local tabContainer = mw.html.create('div'):addClass('article-container-tabs tabber__tabs')
    
    -- Obtener el título base del artículo
    local baseTitle = mw.title.getCurrentTitle().text:match("([^/]+)")
    
    -- Main page tab
    if mw.title.getCurrentTitle().namespace == 0 then
        local mainPageText = args[1] or 'Información'
        local mainPageTab = mw.html.create('li'):addClass('article-tab tabber__tab' .. (mw.title.getCurrentTitle().text == baseTitle and ' selected' or '')):wikitext('[[' .. mw.title.getCurrentTitle().nsText .. ':' .. baseTitle .. '|' .. mainPageText .. ']]')
        table.insert(tabs, mainPageTab)
    end
    
    -- Generate tabs dynamically
    for i = 2, 8 do
        local tabName = args['tab' .. i]
        if tabName and tabName ~= '' then
            local tabText = mw.html.create('li')
            if mw.title.getCurrentTitle().text == baseTitle .. '/' .. tabName then
                tabText:addClass('article-tab tabber__tab selected'):wikitext(tabName)
            else
                tabText:addClass('article-tab tabber__tab'):wikitext('[[' .. mw.title.getCurrentTitle().nsText .. ':' .. baseTitle .. '/' .. tabName .. '|' .. tabName .. ']]')
            end
            table.insert(tabs, tabText)
        else
            break  -- Exit loop if no more tabs are defined
        end
    end
    
    -- Add tabs to tab container
    for _, tab in ipairs(tabs) do
        tabContainer:node(tab)
    end
    
    return tostring(tabContainer)
end

return p