Homepage
Games
News
News βΎ
All
Transfers
Drama
Business
Sponsors
Mergers
Investors
Hires
Companies
More
People
Tournaments
Brands
Brands βΎ
Companies
Organizations
Sponsors
Other
Locations
Search
Editing
Module:Placement
From TwogPedia
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
--- -- @Liquipedia -- wiki=commons -- page=Module:Placement -- -- Please see https://github.com/Liquipedia/Lua-Modules to contribute -- local Arguments = require('Module:Arguments') local Class = require('Module:Class') local Ordinal = require('Module:Ordinal') local Placement = {} --[[ Returns a text label for a range of placements. Example: Placement.RangeLabel({1, 2}) -- Returns 1stβ2nd ]] function Placement.RangeLabel(range) local zeroWidthSpace = '​' local enDash = 'β' return table.concat({ Ordinal._ordinal(range[1]), range[1] < range[2] and Ordinal._ordinal(range[2]) or nil, }, zeroWidthSpace .. enDash .. zeroWidthSpace) end Placement.placementClasses = { 'background-color-first-place', 'background-color-second-place', 'background-color-third-place', 'background-color-fourth-place', } --[[ Converts a placement to a css class that sets its background. Example: Placement.getBgClass(2) -- returns 'background-color-second-place' ]] function Placement.getBgClass(placement) return Placement.placementClasses[placement] end local ordinalSuffix = { ['1'] = 'st', ['2'] = 'nd', ['3'] = 'rd', ['4'] = 'th', ['5'] = 'th', ['6'] = 'th', ['7'] = 'th', ['8'] = 'th', ['9'] = 'th', ['0'] = 'th', ['11'] = 'th', ['12'] = 'th', ['13'] = 'th', } local placeSortPrefix = { ['1'] = 'A', ['2'] = 'B', ['3'] = 'C', ['4'] = 'D', ['5'] = 'E', ['6'] = 'F', ['7'] = 'G', ['8'] = 'H', ['9'] = 'I', ['10'] = 'J', ['11'] = 'K', ['12'] = 'L', ['13'] = 'M', ['14'] = 'N', ['15'] = 'O', ['16'] = 'P', ['17'] = 'Q', ['w'] = 'T1', ['l'] = 'T2', ['dq'] = 'T3', ['dnp'] = 'V', ['proceeded'] = 'W1', ['stay'] = 'W2', ['relegated'] = 'W3', } local placeColor = { ['1'] = '#FFD739', ['2'] = '#BEBEBE', ['3'] = '#BB8644', ['4'] = '#F8996B', ['5'] = '#007F99', ['6'] = '#007F99', ['7'] = '#007F99', ['8'] = '#007F99', ['9'] = '#166F82', ['10'] = '#166F82', ['11'] = '#166F82', ['12'] = '#166F82', ['13'] = '#166F82', ['14'] = '#166F82', ['15'] = '#166F82', ['16'] = '#166F82', ['32'] = '#2D606B', ['256'] = '#445154', ['w'] = '#009E60', ['l'] = '#dddddd', ['dq'] = '#dddddd', ['dnp'] = '#d0d0d0', ['proceeded'] = '#89E069', ['stay'] = '#FEDE68', ['relegated'] = '#FF6F6F', } local textColor = { -- White is the default color. Only overrides will need to be entered here. ['dnp'] = 'black', } local skipShadow = { -- Default is false ['dnp'] = true, } function Placement._placement(args) -- Defaults local textColorCell = 'white' local skipShadowCell = false -- Attempt to split the placement into two parts and store it in a table local placement = mw.text.split(tostring(args.placement), '-', true) -- If the table has 2 parts, the placement has a start and end number local text local diff if tonumber(placement[1]) == nil then text = string.upper(placement[1]) diff = 1 elseif table.maxn(placement) == 2 then if ordinalSuffix[placement[2]] then text = placement[1] .. ' - ' .. placement[2] .. ordinalSuffix[placement[2]] else text = placement[1] .. ' - ' .. placement[2] .. ordinalSuffix[string.sub(placement[2], -1)] end diff = (tonumber(placement[2]) or 1000) - tonumber(placement[1]) else if ordinalSuffix[placement[1]] then text = placement[1] .. ordinalSuffix[placement[1]] else text = placement[1] .. ordinalSuffix[string.sub(placement[1], -1)] end diff = 1 end -- Cell color if tonumber(placement[1]) ~= nil then if tonumber(placement[1]) <= 16 then args.parent:attr('bgcolor', placeColor[placement[1]]) textColorCell = textColor[placement[1]] or textColorCell skipShadowCell = skipShadow[placement[1]] or skipShadowCell elseif tonumber(placement[1]) <= 32 then args.parent:attr('bgcolor', placeColor['32']) textColorCell = textColor['32'] or textColorCell skipShadowCell = skipShadow['32'] or skipShadowCell else args.parent:attr('bgcolor', placeColor['256']) textColorCell = textColor['256'] or textColorCell skipShadowCell = skipShadow['256'] or skipShadowCell end else args.parent:attr('bgcolor', placeColor[placement[1]]) textColorCell = textColor[placement[1]] or textColorCell skipShadowCell = skipShadow[placement[1]] or skipShadowCell end -- Parent attributes args.parent:attr('align', 'center') -- HiddenSort local sortPrefix --Sort key for first part if tonumber(placement[1]) ~= nil then if tonumber(placement[1]) <= 17 then sortPrefix = placeSortPrefix[placement[1]] elseif tonumber(placement[1]) <= 32 then sortPrefix = 'R' else sortPrefix = 'S' end elseif placement[1] ~= nil then sortPrefix = placeSortPrefix[placement[1]] else sortPrefix = 'Z' end local sortPrefix2 --Sort key for second part if tonumber(diff) <= 17 then sortPrefix2 = placeSortPrefix[tostring(diff)] elseif tonumber(diff) <= 32 then sortPrefix2 = 'R' else sortPrefix2 = 'S' end if sortPrefix == nil then mw.log('No placement found in Module:Placement: ' .. args.placement) args.parent:tag('span') :css('display', 'none') :wikitext('ZZ') args.parent:tag('font') :wikitext(args.placement .. ' [[Category:Pages with unknown placements]]') else args.parent:tag('span') :css('display', 'none') :wikitext(sortPrefix .. sortPrefix2) -- Display text args.parent:tag('font') :addClass('placement-text') -- luacheck: ignore -- line length :css('text-shadow', (skipShadowCell and 'none' or '1px 1px rgba(64, 64, 64, 0.4), 1px -1px rgba(64, 64, 64, 0.4), -1px -1px rgba(64, 64, 64, 0.4), -1px 1px rgba(64, 64, 64, 0.4)')) :css('font-weight', 'bold') :css('color', textColorCell) :wikitext(text .. (args.text and ' ' .. args.text or '')) end end function Placement.placement(frame) return Placement._placement(Arguments.getArgs(frame)) end return Class.export(Placement)
Summary:
Please note that all contributions to TwogPedia may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
TwogPedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Preview page with this template
Template used on this page:
Module:Placement/doc
(
edit
)
No categories
Edit