Jump to content
Menú alternativo
Alternar el menú de preferencias
Menú alternativo personal
No has accedido
Tu dirección IP será visible si haces alguna edición
Revisión del 23:34 11 oct 2026 de Luxbane (discusión | contribs.)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)

La documentación para este módulo puede ser creada en Módulo:Portal navigation/doc

local p = {}
local getArgs = require('Module:Arguments').getArgs

local SKINVERT = 'skin-invert-image'
-- possible refactor for this: collect all tabs/icons into one array you can
-- iterate through. would also allow warning about unused args.

function p._main(args)
	local container = mw.html.create('div')
		:addClass('portal-navigation')

	local header = container
		:tag('div')
		:addClass('portal-navigation-header')
		:css({
			['color'] = args.header_text_color,
			['background-color'] = args.header_background_color,
			['border-bottom-color'] = args.header_border_color,
		})
	if not args.noinvert then
		header:addClass(SKINVERT)
	end

	header:tag('span')
		:addClass('portal-navigation-portalicon')
		:wikitext(args.portalicon)
	header:tag('span')
		:addClass('portal-navigation-portalname')
		:wikitext(args.portalname)

	local nav = container:tag('ul')
		:addClass('portal-navigation-body')
		:addClass(SKINVERT)

	local i = 1
	local activetab = tonumber(args.active)
	while true do
		local tab = args['tab' .. i]
		local icon = args['icon' .. i]
		if not tab then break end

		local item = nav:tag('li'):addClass('portal-navigation-item')
		if i == activetab then
			item:addClass('active-tab')
		end

		if icon then
			item:tag('span')
				:addClass('portal-navigation-tabicon')
				:wikitext(icon)
		end

		item:tag('span')
			:addClass('portal-navigation-tabname')
			:wikitext(tab)

		i = i + 1
	end

	return container
end

function p.main(frame)
	return tostring(p._main(getArgs(frame))) .. frame:extensionTag('templatestyles', '', {
		src = 'Module:Portal navigation/styles.css',
	})
end

return p