Editing
Module:PHL sports team/testtable
From Thetacola Wiki
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
local yesno = require('Module:Yesno') local p = {} local div = { 'short', 'men', 'women', 'boys', 'girls', 'name' } local mod = 'PHL sports team' local function get_aliases(t, a, d, tname, showdiv) local ca, ia, ita = '', '', {} local a, d = a[t], d[t] if a then for k, aka in pairs(a) do ca = ca .. string.format('<br>(%s)', aka) end end if d then table.sort(d, function (a, b) return a < b end) local param = showdiv and 'inst' or 'yr' local yr = {} for k, inst in pairs(d) do if type(k) == 'string' and k ~= 'dab' and k ~= 'link' then ia = ia .. string.format('<br>β’ %s (%s)', inst, k) if tname then table.insert(ita, string.format(showdiv and '{{%s|%s|%s=%s}}' or '{{%s|%s|%s=%s}} (%s)', tname, t, param, showdiv and k or k:sub(1, 4), k:gsub("thru", "β"))) end end end end table.sort(ita, function (a, b) return a < b end) return { c = ca, i = ia, it = ita } end local function table_row_all(frame, t, a, c) local res = mw.html.create('') local fname = frame:preprocess(string.format('{{#invoke:%s|name|%s|short}}<br>', mod, t)) local frt = frame:preprocess(string.format('{{#invoke:%s|rt|%s|short}}<br>', mod, t)) local fmain = frame:preprocess(string.format('{{#invoke:%s|main|%s|short}}<br>', mod, t)) for i=3,6 do fmain = fmain .. frame:preprocess(string.format('{{#invoke:%s|main|%s|%s}}<br>', mod, t, i)) frt = frt .. frame:preprocess(string.format('{{#invoke:%s|rt|%s|%s}}<br>', mod, t, i)) fname = fname .. frame:preprocess(string.format('{{#invoke:%s|name|%s|%s}}<br>', mod, t, i)) end fname = fname .. frame:preprocess(string.format('{{#invoke:%s|name|%s|name=Custom Team Name}}<br>', mod, t)) frt = frt .. frame:preprocess(string.format('{{#invoke:%s|rt|%s|name=Custom Team Name}}<br>', mod, t)) fmain = fmain .. frame:preprocess(string.format('{{#invoke:%s|main|%s|name=Custom Team Name}}', mod, t)) res:tag('td'):wikitext(t) res:tag('td'):attr('align', 'center'):wikitext(c[1] and c[1] .. a.c or 'β') res:tag('td'):wikitext(frame:preprocess(string.format('{{#invoke:%s|name|%s|2}}', mod, t)) .. a.i) res:tag('td'):wikitext(fmain or 'β') res:tag('td'):attr('align', 'right'):wikitext(frt or 'β') res:tag('td'):wikitext(fname or 'β') return tostring(res) end local function get_row_tname(root, row, align, text, tag, it) if yesno(tag or 'y') then row = root:tag('tr') end local code = '<code><nowiki>' .. text .. '</nowiki></code>' if it then for k, ita in pairs(it) do code = code .. '<br>or <code><nowiki>' .. ita .. '</nowiki></code>' text = text .. '<br>or ' .. ita end end row:tag('td'):attr('align', 'left'):wikitext(code) row:tag('td'):attr('align', align):wikitext(text) return row end local function table_row_tname(frame, t, a, c) local tname = frame.args['tname'] or 'UAAPteam' local align = frame.args['align'] or 'left' local rdef = string.format('{{%s|%s}}', tname, t) local rwom = string.format('{{%s|%s|women}}', tname, t) local rjnr = string.format('{{%s|%s|junior}}', tname, t) local rgrl = string.format('{{%s|%s|girls}}', tname, t) local rins = string.format('{{%s|%s|inst}}', tname, t) local rsrt = string.format('{{%s|%s|short}}', tname, t) local rcst = string.format('{{%s|%s|name=Custom Team Name}}', tname, t) local root = mw.html.create('') local row = root:tag('tr') local showdiv = yesno(frame.args.div or 'y') row:tag('td'):css('border-bottom', '2px solid black'):cssText('style') :attr('rowspan',showdiv and 7 or 3):wikitext(t) if showdiv then row:tag('td'):css('border-bottom', '2px solid black'):cssText('style') :attr('rowspan',showdiv and 7 or 3):attr('align', 'center') :wikitext(c[1] and c[1] .. a.c or 'β') end row = get_row_tname(root, row, align, rdef, 'n') if showdiv then row = get_row_tname(root, row, align, rwom) row = get_row_tname(root, row, align, rjnr) row = get_row_tname(root, row, align, rgrl) row = get_row_tname(root, row, align, rins, nil, a.it) end row = get_row_tname(root, row, align, rsrt) row = get_row_tname(root, row, align, rcst, nil, not showdiv and a.it) row:css('border-bottom', '2px solid black'):cssText('style') return tostring(root) end function p._testtable(frame) -- build table local root = mw.html.create('table') local temp, alias = {}, {} root:addClass('wikitable sortable') :css('background', 'transparent') :css('font-size', '90%') local row = root:tag('tr') local tname = frame.args['tname'] if (tname == nil) then root:css('line-height', '100%') row:tag('th'):attr('rowspan',2):wikitext('Team') row:tag('th'):attr('rowspan',2):wikitext('Code or<br>Alias/es') row:tag('th'):attr('rowspan',2):wikitext('School') row:tag('th'):wikitext('Left-sided icon') row:tag('th'):wikitext('Right-sided icon') row:tag('th'):wikitext('No icon') row = root:tag('tr') row:tag('th'):wikitext('(Function: \'\'main\'\')') row:tag('th'):wikitext('(Function: \'\'rt\'\')') row:tag('th'):wikitext('(Function: \'\'name\'\')') else row:tag('th'):wikitext('Team') row:tag('th'):wikitext('Code or<br>Alias/es') row:tag('th'):wikitext('Usage') row:tag('th'):wikitext('Output') end root:cssText(style) local args = (frame.args[1] ~= nil) and frame.args or frame:getParent().args local data_module = string.format('Module:%s/%s', mod, args['league'] or 'collegiate') local data = mw.loadData(data_module) for k, team in pairs(data) do if type(team) ~= 'string' then table.insert(temp, k) else if alias[team] == nil then alias[team] = {} end table.insert(alias[team], k) end end table.sort(temp) table.insert(temp, '{{{team1}}}') table.insert(temp, 'XYZ') for k, team in pairs(temp) do local aliases = get_aliases(team, alias, data, tname, true) row = root:tag('tr') if tname then row:wikitext(table_row_tname(frame, team, aliases, data[team] or '')) else row:wikitext(table_row_all(frame, team, aliases, data[team] or '')) end end return tostring(root) end function p._main(frame) -- build table local root = mw.html.create('table') local args = (frame.args[1] ~= nil) and frame.args or frame:getParent().args local tname = args['tname'] or 'PBA team' local league = args['league'] or 'PBA' local temp, alias = {}, {} local root = mw.html.create('table') root:addClass('wikitable sortable') :css('background', 'transparent') :css('font-size', '90%') local row = root:tag('tr') local data_module = string.format('Module:%s/%s', mod, league) local data = mw.loadData(data_module) for k, team in pairs(data) do if type(team) ~= 'string' then table.insert(temp, k) else if alias[team] == nil then alias[team] = {} end table.insert(alias[team], k) end end table.sort(temp) table.insert(temp, '{{{team1}}}') table.insert(temp, 'XYZ') row:tag('th'):wikitext('Code or<br>Alias/es') row:tag('th'):wikitext('Usage') row:tag('th'):wikitext('Output') for k, team in pairs(temp) do local aliases = get_aliases(team, alias, data, tname, yesno(args.div)) row = root:tag('tr') row:wikitext(table_row_tname(frame, team, aliases, data[team] or '')) end return tostring(root) end function p.testtable(frame) frame.args['div'] = 'y' return frame:preprocess(p._testtable(frame)) end function p.main(frame) frame.args['div'] = 'n' return frame:preprocess(p._main(frame)) end return p
Summary:
Please note that all contributions to Thetacola Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Project:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Template used on this page:
Module:PHL sports team/testtable/doc
(
edit
)
Navigation menu
Page actions
Module
Discussion
Read
Edit source
History
Page actions
Module
Discussion
More
Tools
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Search
Tools
What links here
Related changes
Special pages
Page information