Jump to content

Module:Medals table

Permanently protected module
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Zackmann08 (talk | contribs) at 19:57, 17 September 2018 (Created page with 'require('Module:No globals') local getArgs = require('Module:Arguments').getArgs local navbar = require('Module:Navbar')._navbar local p = {} function p.createT...'). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

require('Module:No globals')
local getArgs = require('Module:Arguments').getArgs
local navbar = require('Module:Navbar')._navbar

local p = {}
function p.createTable(frame, args)
	if not args then
		args = getArgs(frame)
	end
	local root = mw.html.create()

	root = root
		:tag('table')
		:addClass('wikitable')
		:addClass('sortable')
		:addClass('plainrowheaders')
		:addClass('jquery-tablesorter')
		:css('text-align', 'center')
		
	-- add the header row
	root:tag('tr')
			:tag('th')
				:wikitext('Rank')
			:tag('th')
				:wikitext('Nation')
			:tag('th')
				:addClass('headerSort')
				:css('width', '6em')
				:css('background', 'gold')
				:wikitext('Gold')
			:tag('th')
				:addClass('headerSort')
				:css('background', 'silver')
				:wikitext('Silver')
			:tag('th')
				:addClass('headerSort')
				:css('background', '#c96')
				:wikitext('Bronze')
			:tag('th')
				:wikitext('Total')
	
	-- enumerate the rows
	local rowNums = {}
	
	for k,v in pairs(args) do
		k = ''..k
		local num = k:match('^nation(%d+)$') 
		if num then table.insert(rowNums, tonumber(num)) end
	end
	
	table.sort(rowNums)
	-- for k,v in pairs(args) do
	-- 	k = ''..k
	-- 	local num = k:match('^nation(%d+)$') 
	-- 	if num then 
	-- 		root:tag('tr')
	-- 				:tag('td')
	-- 				:tag('td')
	-- 					:wikitext(v)
	-- 	end
	-- end
	
	-- For finding the matching args...
	-- make num equal to the current number (i.e. 1 for nation 1)
	-- then merge it and find the corresponding argument: 
	mw.logObject(rowNums)
	
	for i, num in ipairs(rowNums) do
		local nation = args['nation' .. num]
		local gold   = args['gold' .. num]
		local silver = args['silver' .. num]
		local bronze = args['bronze' .. num]
		
		root:tag('tr')
			:tag('td')
				:wikitext('-')
			:tag('td')
				:wikitext(nation)
			:tag('td')
				:wikitext(gold)
			:tag('td')
				:wikitext(silver)
			:tag('td')
				:wikitext(bronze)
			:tag('td')
				:wikitext(tonumber(gold)+tonumber(silver)+tonumber(bronze))
	end
		
		
	return tostring(root)
end
return p