Mô đun:PHL sports team
Giao diện
| Mô đun này được xếp loại là đã sẵn sàng để sử dụng rộng rãi. Nó đã đạt đến mức độ hoàn thiện, được coi là khá ổn định và không có lỗi, và có thể được sử dụng bất kỳ chỗ nào nếu phù hợp. Nó có thể được nêu trên các trang trợ giúp cũng như các tài liệu Wikipedia khác làm tùy chọn tìm hiểu cho người dùng mới. Để giảm tải tài nguyên máy chủ và tránh tạo đầu ra gây hại, mọi cải tiến nên được thực hiện thông qua việc kiểm thử tại chỗ thử thay vì sửa đổi "thử và sai" lặp đi lặp lại liên tục. |
Cách sử dụng
{{#gọi:PHL sports team|function_name}}
Các mô đun dữ liệu
- Mô đun:PHL sports team/collegiate – các giải đấu trung học phổ thông và cao đẳng, ví dụ UAAP và NCAA
- Mô đun:PHL sports team/PBA – PBA và PBA D–League
Các trường hợp kiểm thử
Các đội Collegiate, ví dụ UAAP, NCAA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Các đội Hiệp hội bóng rổ Philippine (PBA), bao gồm PBA D–League | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
require('strict')local p = { isalias = false }local yesno = require('Mô đun:Yesno')local constants = { CODE_LEN = 3, SPACE = ' ', SHORT = 'short', INST = 'inst' }local function makeInvokeFunc(funcName, league) return function (frame) local args = (frame.args[1] ~= nil) and frame.args or frame:getParent().args args['league'] = args['league'] or league or 'collegiate' return p[funcName](args) endendlocal function stripwhitespace(text) return text:match("^%s*(.-)%s*$") endlocal function load_data(args) local data_module = 'Mô đun:PHL sports team/' .. args['league'] return mw.loadData(data_module)endlocal function get_key_by_code(code, data) if (data[code] ~= nil and type(data[code]) == 'string') then p.isalias = true return data[code] elseif (string.len(code) == constants.CODE_LEN) then for k,v in pairs(data) do if v[1]==code then return k end end end return codeendlocal function get_icon(team, size, alt_team) local icon = '[[Tập tin:%s colors.svg|%s|border|Màu sắc trường học %s|link=]]' return string.format(icon, team, size or '11px', alt_team or team)endlocal function get_athlete_link(link, athl_name) if mw.title.new(link or athl_name, '').exists == true then return string.format('[[%s|%s]]', link or athl_name, athl_name) else return athl_name endendlocal function show_empty_param(param) return mw.html.create('span'):css('color', 'red'):cssText('style'):wikitext(string.format('Giá trị cho tham số \'%s\' không được cung cấp.', param))endlocal function get_link_by_evt(args, div, divLt, text, team) local evt = { bk = 'basketball', vb = 'volleyball', ft = 'football' } local mRdr = require('Mô đun:Redirect') evt = evt[args[2]] or evt[args[3]] or evt[args['evt']] if evt == nil then if type(div) == 'number' and div < 3 then return mRdr.getTarget(team) else return mRdr.getTarget(text) end end if (type(div) == 'string') then div = 3 end local evt_link = string.format('%s %s %s', text, divLt[div-2], evt) if (args['yr'] ~= nil) then return args['yr'] .. ' ' .. evt_link .. ' team' end return mRdr.getTarget(evt_link) or evt_linkendlocal function get_name_by_year(team, year) if not year then return team[1] end for k, v in pairs(team) do if mw.ustring.find(k, "%d%d%d%dthru%d%d%d%d$") then local start_year, end_year = mw.ustring.match(k, "(%d%d%d%d)thru(%d%d%d%d)$") if (tonumber(start_year) <= tonumber(year)) and (tonumber(year) <= tonumber(end_year)) then return v end end end return team[1]endlocal function add_link(args, team, name, div, divLt, text) local evt_link = get_link_by_evt(args, div, divLt, team[div] or team[3], team[3]) if (type(div) == 'number' and div >= 3 and div <= 6) then if ((args['inst'] or name) ~= nil or args[3] == constants.SHORT) then return string.format('[[%s|%s]]', evt_link or team[div], not p.isalias and team[args['inst']] or text) elseif (evt_link ~= nil) then return string.format('[[%s|%s]]', evt_link, text) else return string.format('[[%s]]', text) end end return string.format('[[%s|%s]]', evt_link or team[3], text)endlocal function add_link_generic(args, team, text) local mRdr = require('Mô đun:Redirect') local tln = team.link or get_name_by_year(team, args['season'] or args['team']) local dab = team.dab and (tln .. ' (' .. team.dab .. ')') or nil local fln = dab or tln if args['name'] then fln = team[args['name']] or dab or tln end if args['season'] then fln = args['season'] .. ' ' .. tln .. ' season' elseif args['team'] then fln = args['team'] .. ' ' .. tln .. ' team' else fln = mRdr.getTarget(fln) end return string.format('[[%s|%s]]', fln or dab or tln, text)endfunction p._main(args) local data = load_data(args) local in_team = stripwhitespace(args[1] or '') if (in_team:match('^{{{.*}}}$') ~= nil) then return show_empty_param(in_team) elseif (in_team == '' or nil) then return '—' end local in_div = stripwhitespace(args[2] or '') local in_name = args['name'] local key = get_key_by_code(in_team, data) local team = data[key] if (team == nil) then return error(string.format('Đội không hợp lệ: %s', in_team)) end local out local divLt = { "nam", "nữ", "nam trẻ'", "nữ trẻ'" } if (in_div ~= constants.SHORT) then local div = { inst = 2, men = 3, women = 4, junior = 5, boys = 5, girls = 6 } in_div = div[in_div] or tonumber(in_div:match('[2-6]') or '3') if (args[3] == constants.INST or args['inst'] ~= nil or in_div == 2) then out = p.isalias and team[in_team] or team[div['inst']] elseif (args[3] == constants.SHORT) then out = team[7] or key or in_team else out = in_name or team[in_div] end if (out == nil) then return error('Không có đội ' .. divLt[in_div-2] .. '') end else out = team[7] or key or in_team end out = out:gsub("-", "–") if yesno(args['add_link'] or 'y') then out = add_link(args, team, in_name, in_div, divLt, out) end if yesno(args['icon'] or 'y') then local icon = get_icon(key or in_team, args['iconsize']) out = yesno(args['rt'] or 'n') and out .. constants.SPACE .. icon or icon .. constants.SPACE .. out end return outendfunction p._rt(args) args['rt'] = 'y' return p._main(args)endfunction p._name(args) args['icon'] = 'n' return p._main(args)endfunction p._color(args) local data = load_data(args) local in_team = stripwhitespace(args[1] or '') local no_img = string.format('[[Tập tin:No image.svg|%s|link=]]', args['size'] or '11px') local note = '' if in_team and in_team:match('[%*]$') then note = mw.ustring.gsub(in_team, '^(.-)([%*]*)$', '%2') in_team = mw.ustring.gsub(in_team, '^(.-)([%*]*)$', '%1') end if (in_team:match('^{{{.*}}}$') ~= nil) then return show_empty_param(in_team) .. note elseif (in_team == '' or nil) then return no_img .. note end local key = get_key_by_code(in_team, data) if ((data[in_team] or data[key]) == nil) then return no_img .. note end return get_icon(key or in_team, args['size'], args[2]) .. noteendfunction p._generic(args) local data = load_data(args) local code, name, out = stripwhitespace(args[1] or ''), args['name'] local team = data[code] if (code:match('^{{{.*}}}$') ~= nil) then return show_empty_param(code) elseif (code == '' or nil) then return '—' end if type(team) == 'string' then local alias = mw.text.split(team, '%s*|%s*') team = data[alias[1]] name = name or alias[2] end if not team then return error(string.format('Đội không hợp lệ: %s', code)) end if args[2] == constants.SHORT then out = team[2] or code elseif name then out = team[name] or name else out = get_name_by_year(team, args['season'] or args['team'] or args['yr']) end return add_link_generic(args, team, out)endfunction p._athlete(args) local athl_1 = args['athl'] local athl_2 = args['athl2'] if athl_1 == nil then return error('Vận động viên không hợp lệ: không có giá trị') end local link = get_athlete_link(args['link'], athl_1) if (athl_2 ~= nil) then link = link .. ' and ' .. get_athlete_link(args['link2'], athl_2) end local showicon = yesno(args['icon']) local sport = args['sp'] if (showicon) then args[3] = constants.SHORT end args['add_link'] = 'n' local lbl = p._name(args) if (sport ~= nil) then lbl = string.format('%s <span style="font-size:90%%;">(%s, %s)</span>', link, lbl, string.lower(sport)) else lbl = string.format('%s <span style="font-size:90%%;">(%s)</span>', link, lbl) end if (showicon) then args[2] = args[1] return p._color(args) .. constants.SPACE .. lbl else return lbl endendfunction p._athlete_bc(args) if (args['athl'] == nil) then -- reassign arguments for backward compatibility -- args['athl'] = args[2] args[2] = args[3] or '' args[3] = args[4] or '' end return p._athlete(args)endp.main = makeInvokeFunc('_main')p.rt = makeInvokeFunc('_rt')p.name = makeInvokeFunc('_name')p.color = makeInvokeFunc('_color')p.pba = makeInvokeFunc('_generic', 'PBA')p.athlete = makeInvokeFunc('_athlete_bc')return pThể loại:
- Mô đun sẵn sàng sử dụng rộng rãi
- Bản mẫu thể thao Philippines
- Bản mẫu Hiệp hội điền kinh đại học Philippines
- Bản mẫu Hiệp hội điền kinh cao đẳng quốc gia (Philippines)