Module:SubpageNavbox

From Leaguepedia | League of Legends Esports Wiki
Jump to: navigation, search

To edit the documentation or categories for this module, click here.


local util_args = require("Module:ArgsUtil")
local util_cargo = require('Module:CargoUtil')
local util_vars = require('Module:VarsUtil')

local h = {}
local p = {}
function p.navbox(tabstype)
	if tabstype ~= 'Player' and tabstype ~= 'Team' then
		return nil
	end
	local teamAndSystem = h.getTeamAndSystem(
		tabstype,
		mw.title.getCurrentTitle().rootText
	)
	local ret = {
		h.clpnArgs(teamAndSystem, tabstype),
		h.orgNavboxArgs(teamAndSystem, tabstype)
	}
	return ret
end

function h.getTeamAndSystem(tabstype, title)
	if tabstype == 'Team' then
		return { Team = title }
	end
	return h.getTeamFromPlayer(title)
end

function h.getTeamFromPlayer(title)
	local query = {
		tables = 'Players',
		fields = { 'Team', 'TeamSystem=System' },
		where = string.format('_pageName="%s"', title)
	}
	return util_cargo.getOneRow(query) or {}
end

function h.orgNavboxArgs(teamAndSystem, tabstype)
	return {
		title = 'OrgNavbox',
		events = { showAll = true },
		args = {
			teamAndSystem.Team,
			system = teamAndSystem.System,
			suffix = util_args.boolToStringYN(true),
			from_player = tabstype == 'Player'
		},
	}
end

function h.clpnArgs(teamAndSystem, tabstype)
	return {
		title = 'CurrentLeagueParticipantNavbox',
		events = { showAll = true },
		args = { teamAndSystem.Team, suffix = util_args.boolToStringYN(true) },
		pagetype = tabstype
	}
end

return p