Module:Sports roster/default

local pp = {}

-- Roster format function pp.headings(args, keys) local h = mw.html.create('tr') if keys['pos'] then h:tag('th'):tag('abbr'):attr('title', 'Position'):wikitext('Pos.') end if keys['num'] then h:tag('th'):tag('abbr'):attr('title', 'Number'):wikitext('No.') end if keys['nat'] then h:tag('th'):tag('abbr'):attr('title', 'Nationality'):wikitext('Nat.') end h:tag('th'):wikitext('Name') if keys['ft'] or keys['in'] then h:tag('th'):wikitext('Height') end if keys['lbs'] then h:tag('th'):wikitext('Weight') end if keys['DOB'] then h:tag('th'):tag('abbr'):attr('title', 'Date of birth'):wikitext('DOB') end if keys['college'] or keys['school'] or keys['from'] then h:tag('th'):wikitext('From') end if keys['yrs'] then h:tag('th'):tag('abbr'):attr('title', 'Years'):wikitext('Yrs') end return tostring(h) end

function pp.players_roster(args, players, keys) local tracking = '' local res = mw.html.create('') for k,v in ipairs(players) do		local r = res:tag('tr'):css('text-align', 'center') if keys['pos'] then r:tag('td'):wikitext(v['pos'] or '') end if keys['num'] then r:tag('td'):wikitext(v['num'] or '') end if keys['nat'] then r:tag('td'):wikitext(v['nat'] or '') end local name = v['name'] or '' if (v['inj'] or 'no') == 'yes' then name = name .. ' '		end if v['note'] then name = name .. ' ' .. "(" .. v['note'] .. ")" end r:tag('td'):css('text-align', 'left'):wikitext(name) if keys['ft'] or keys['in'] then local h = '' if v['ft'] and tonumber(v['ft']) then local inches = 12*tonumber(v['ft']) + (tonumber(v['in']) or 0) local cm = math.floor(2.54*inches + 0.5) h = ' ' .. tonumber(v['ft']) .. '\' ' .. (tonumber(v['in']) or 0) .. '"'					.. ' (' .. (cm / 100) .. 'm) '			end			r:tag('td')				:css('text-align', 'right')				:css('white-space', 'nowrap')				:wikitext(h)		end		if keys['lbs'] then			local w = ''			if v['lbs'] and tonumber(v['lbs']) then				local kg = math.floor(0.45359237*tonumber(v['lbs']) + 0.5)				w = tonumber(v['lbs']) .. ' lb '					.. ' (' .. kg .. 'kg)'			end			r:tag('td')				:css('text-align', 'right')				:css('white-space', 'nowrap')				:wikitext(w)		end

if keys['DOB'] then r:tag('td'):wikitext(v['DOB']) end if keys['college'] or keys['school'] or keys['from'] then if v['college'] or v['school'] then r:tag('td'):css('text-align', 'left'):wikitext(v['college'] or v['school']) elseif v['from'] then r:tag('td'):css('text-align', 'left'):wikitext( .. v['from'] .. ) else r:tag('td') end end if keys['yrs'] then if v['yrs'] == 'R' then r:tag('td'):wikitext(' R ') else r:tag('td'):wikitext(v['yrs']) end end end return tostring(res) .. tracking end

function pp.coaches_roster(coaches) local res = '' local role = '' for k,v in ipairs(coaches) do		if v['role'] ~= role then role = v['role'] res = res .. '\n; ' .. role end res = res .. '\n: ' .. (v['nat'] or '') .. ' ' .. (v['name'] or '') if v['college'] then res = res .. ' (' .. v['college'] .. ')' elseif v['from'] then res = res .. ' (' .. v['from'] .. ')' end end return res end

function pp.staff_roster(staff) local res = '' local role = '' for k,v in ipairs(staff) do		if v['role'] ~= role then role = v['role'] res = res .. '\n; ' .. role end res = res .. '\n: ' .. (v['nat'] or '') .. ' ' .. (v['name'] or '') if v['college'] then res = res .. ' (' .. v['college'] .. ')' elseif v['from'] then res = res .. ' (' .. v['from'] .. ')' end end return res end

function pp.legend(args) local res = '' if args['legend'] then res = res .. '\n' res = res .. '\n;Legend' res = res .. args['legend'] end if args['notes'] then if res == '' then res = res .. '\n' end res = res .. '\n;Notes\n' .. args['notes'] end return res end

function pp.above(args, keys) return args['above'] end

function pp.abovestyle(frame, args, keys) return args['abovestyle'] end

function pp.headingstyle(frame, args, keys) return args['headingstyle'] end

function pp.footer(args, keys) return args['footer'] end

function pp.footerstyle(frame, args, keys) return args['footerstyle'] end

-- Navbox format

function pp.players_list(args, players, keys) local r = '' for k,v in ipairs(players) do r = r .. '\n*' .. (v['num'] or '') .. ' ' .. (v['name'] or '') end return r end

function pp.coaches_list(coaches) local res = '' local role = '' for k,v in ipairs(coaches) do		if v['role'] ~= role then role = v['role'] res = res .. '\n; ' .. role end res = res .. '\n: ' .. (v['name'] or '') end return res end

function pp.title(args, keys) return args['title'] end

function pp.titlestyle(frame, args, keys) return args['titlestyle'] end

function pp.below(args, keys) return args['below'] end

function pp.belowstyle(frame, args, keys) return 'background:transparent;' .. (args['belowstyle'] or '') end

return pp