Module:Sports career
Appearance
![]() | This Lua module is used on approximately 20,000 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
![]() | This module depends on the following other modules: |
Renders the "Career history" section of {{Infobox basketball biography}}
local p = {}
local function isnotempty(s)
return s and s:match('%S')
end
function p.main(frame)
local player = {}
local coach = {}
local pargs = frame:getParent().args
local iargs = {}
for k,v in pairs(pargs) do
if type(k) == 'string' and isnotempty(v) then
if k:match('^team%d%d*$') then
local num = tonumber(mw.ustring.gsub(k,'^team(%d%d*)$')) or 0
table.insert(player, {num, pargs['years' .. num] or '', v})
elseif k:match('^cteam%d%d*$') then
local num = tonumber(mw.ustring.gsub(k,'^cteam(%d%d*)$')) or 0
table.insert(coach, {num, pargs['cyears' .. num] or '', v})
end
end
end
table.sort(player, function (a, b) return a[1] > b[1] end)
table.sort(coach, function (a, b) return a[1] > b[1] end)
local i = 1
if #player > 0 then
iargs['header' .. i] = frame.args['pheader'] or 'As player:'
i = i + 1
for k,v in ipairs(player) do
if v[2] ~= '' then iargs['label' .. i] = v[2] end
if v[3] ~= '' then iargs['data' .. i] = v[3] end
i = i + 1
end
end
if #coach > 0 then
iargs['header' .. i] = frame.args['cheader'] or 'As coach:'
i = i + 1
for k,v in ipairs(coach) do
if v[2] ~= '' then iargs['label' .. i] = v[2] end
if v[3] ~= '' then iargs['data' .. i] = v[3] end
i = i + 1
end
end
if i > 1 then
iargs['child'] = 'yes'
iargs['labelstyle'] = 'font-weight: normal;' .. (frame.args['yearstyle'] or '')
iargs['headerstyle'] = 'line-height: 1.2em;' .. (frame.args['headerstyle'] or '')
iargs['datastyle'] = 'line-height: 1.2em; text-align: left;' .. (frame.args['teamstyle'] or '')
iargs['title'] = frame.args['title'] or 'Career history'
return require('Module:Infobox').infobox(iargs)
end
return ''
end
return p