-- This implements local p =
-- Internationalisationlocal trackingcat = 'Category:Pages using sports overview with unknown parameters'local labels =
-- Main functionfunction p.main(frame) local getArgs = require('Module:Arguments').getArgs local args = getArgs(frame)
-- Get the row numbers and check for invalid input local rownumbers = local unknown = local showdates, showrounds, showpos = false, false, false local maxrow = -1 local rowlimit = 99
local function addrownumber(num, flag) if num <= rowlimit then table.insert(rownumbers, num) maxrow = (num > maxrow) and num or maxrow return true end return flag end
for k, v in pairs(args) do k = tostring(k) local n = tonumber(k:match('^[a-z]+(%d+)$') or '-1') if k
'c' or k
'pts' then -- These are valid elseif k:match('^[cwdlfa]%d+$') then local added = addrownumber(n, false) elseif k:match('[dfl]m%d%d*$') then showdates = addrownumber(n, showdates) elseif k:match('sr%d%d*$') then showrounds = addrownumber(n, showrounds) elseif k:match('fp%d%d*$') then showpos = addrownumber(n, showpos) else table.insert(unknown, k) end end -- Sort the row numbers table.sort(rownumbers)
-- Remove duplicates for i=#rownumbers,2,-1 do if rownumbers[i-1]
local root = if maxrow > -1 then local WDL = require('Module:WDL').main -- Make the table table.insert(root,'
-') table.insert(root,'! rowspan=2 | ' .. labels['competition']) local totspan = 1 if showdates then table.insert(root,'! rowspan=2 | ' .. labels['firstmatch']) table.insert(root,'! rowspan=2 | ' .. labels['lastmatch']) totspan = totspan + 2 end if showrounds then table.insert(root,'! rowspan=2 | ' .. labels['startinground']) totspan = totspan + 1 end if showpos then table.insert(root,'! rowspan=2 | ' .. labels['finalposition']) totspan = totspan + 1 end table.insert(root,'! colspan=8 | ' .. labels['record']) table.insert(root,' | -') table.insert(root,'! ' .. labels['pld']) table.insert(root,' | ' .. labels['w']) table.insert(root,'! ' .. labels['d']) table.insert(root,' | ' .. labels['l']) local pg = args.pts and args.pts 'y' and 'p' or 'g' table.insert(root,'! ' .. labels[pg .. 'f']) table.insert(root,' | ' .. labels[pg .. 'a']) table.insert(root,'! ' .. labels[pg .. 'd']) table.insert(root,' | ' .. labels['wp']) local evenodd = 'odd' -- Now add the rows local wtot, dtot, ltot, ftot, atot = 0, 0, 0, 0, 0 for i=1,#rownumbers do local r = rownumbers[i] if evenodd 'even' then table.insert(root,' | - style="background-color:#EEE"') evenodd = 'odd' else table.insert(root,' | -') evenodd = 'even' end table.insert(root,' | ' .. (args['c' .. r] or )) if showdates then if args['dm' .. r] then table.insert(root,' | ' .. args['dm' .. r]) else table.insert(root,' | ' .. (args['fm' .. r] or )) table.insert(root,' | ' .. (args['lm' .. r] or )) end end if showrounds then table.insert(root,' | ' .. (args['sr' .. r] or )) end if showpos then local fp = args['fp' .. r] or local bg = (fp:match('^' .. labels['winner']) and 'gold') or (fp:match('^' .. labels['runnersup']) and 'silver') or (fp:match('^' .. labels['runnerup']) and 'silver') or nil if bg then table.insert(root,' | ' .. fp) else table.insert(root,' | ' .. fp) end end wtot = wtot + (tonumber(args['w' .. r]) or 0) dtot = dtot + (tonumber(args['d' .. r]) or 0) ltot = ltot + (tonumber(args['l' .. r]) or 0) ftot = ftot + (tonumber(args['f' .. r]) or 0) atot = atot + (tonumber(args['a' .. r]) or 0) table.insert(root, WDL(frame, ) ) end table.insert(root,' | -') if totspan > 1 then table.insert(root,'! colspan=' .. totspan .. ' | ' .. labels['total']) else table.insert(root,'! ' .. labels['total']) end table.insert(root, WDL(frame, ) ) table.insert(root, ' |
---|
\n') if args.u then table.insert(root, labels['lastupdated'] .. args.u .. '
') end table.insert(root, labels['source'] .. (args.s or labels['sourcedefault']) .. '\n
') end
if #unknown > 0 then local html = require('Module:If preview')._warning .. '' .. unknown[1] .. '' table.insert(root, html) end
return table.concat(root, '\n')end
return p