Apex Legends Esports Wiki

READ MORE

Apex Legends Esports Wiki
Register
Advertisement
To edit the documentation or categories for this module, click here.

This module returns values from {{Leaguenames}}m, which defines variables for leagues. Unlike {{Teamnames}}m, none of the outputs is guaranteed to be globally unique. That is to say, while in {{Teamnames}}m, you are guaranteed that |link= is a unique identifier of a team, in this case there is no single output like that. Leagues can change logos across years, so league name and link are not unique; and two different leagues could use the same logo, so logo is not unique.

While one may consider <League>_<Year> as a candidate for unique identifier, the reality is that a league could change logo mid-season. If we were to use this syntax it would be at the cost of potentially a huge amount of technical debt.

Therefore, when storing league data it is advised to store a specific property just for calling this module.

FAQ:

Why is this a module and not a Cargo table?

This way we don't have to use Cargo every single time when pulling a league image (for example in News). Also, if it were a Cargo table, on some level it would have to be "in between" [CCMLeagues] and [CCMTournaments] anyway: The former doesn't allow for changes in status across years, and the latter would be cumbersome to keep updated and also will not include as many entries as are needed for this table. Additionally, this table will need to be interacted with by users significantly more than the other two, since any image uploaded for a tournament to be listed in news will need to be added to this list.

So how does this work with [CCMTournaments]?

The value of |League= given in that module is the league's unique key for this module. That table will store all of its metadata as well as the raw key input by the user, to preserve uniqueness.

local p = {}

function p.league ( frame )
	local args = frame 
	local text = ''
	if frame == mw.getCurrentFrame() then
		args = require( 'Module:ProcessArgs' ).merge( true )
	else
		frame = mw.getCurrentFrame()
	end
	local leagueinput = mw.ustring.lower(args[1] or '')
	local leaguestyle = mw.ustring.lower(args[2] or 'default')
	local size = args['size']
	local text = ""
	
	local Leaguenames = mw.loadData('Module:Leaguenames')
	local Leaguestyles = mw.loadData('Module:Leaguestyles')
	
	local namevars = Leaguenames[leagueinput]
	
	if not namevars then
		namevars = {link = args[1], long = args[1], short = args[1], image = "Unknown Infobox Image - Tournament.png"}
	elseif type(namevars) == 'string' then
		namevars = Leaguenames[namevars]
	end
	
	text = Leaguestyles[leaguestyle]
	
	if not size then
		text = text:gsub("REPLACESIZE","")
	else
		text = text:gsub("REPLACESIZE(%d+)px",size)
	end
	
	text = text:gsub("REPLACE(%u+)", { ["LINK"] = (args["link"] or namevars.link), ["LONG"] = namevars.long, ["SHORT"] = namevars.short, ["FILE"] = namevars.image })
	
	return text
	
end
return p
Advertisement