Homepage
Games
News
News βΎ
All
Transfers
Drama
Business
Sponsors
Mergers
Investors
Hires
Companies
More
People
Tournaments
Brands
Brands βΎ
Companies
Organizations
Sponsors
Other
Locations
Search
Editing
Module:Squad
From TwogPedia
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 getArgs = require('Module:Arguments').getArgs local cargo = mw.ext.cargo local Flags = require('Module:Flags') local Squad = {} local stringifyDate = require('Module:Functions').stringifyDate local VariablesLua = mw.ext.VariablesLua function Squad.main(frame) local args = getArgs(frame) if VariablesLua.varexists('Members') == false then return '' end local tables = mw.text.split(VariablesLua.var( 'Members' ), '&&&') -- Get all unique properties from Member templates properties = {} for i = 1, #tables do local values = mw.text.jsonDecode(tables[i]) for key2, value2 in pairs ( values ) do if string.find(mw.text.jsonEncode(properties), '"' .. key2 .. '"') then else table.insert(properties, key2) end end end properties = mw.text.jsonEncode(properties) local tableContainer = mw.html.create('table') tableContainer:addClass('striped-table') if args.title then local title = mw.html.create('tr') :addClass('headerRow'):node(mw.html.create('th'):addClass('table-title'):attr('colspan', 10):wikitext(args.title)) tableContainer:node(title):node(mw.html.create('tr')) end local titleRow = mw.html.create('tr') titleRow:addClass('headerRow') local idCell = mw.html.create('th') idCell:wikitext('ID') local nameCell = mw.html.create('th') nameCell:wikitext('Name') local positionCell = mw.html.create('th') positionCell:addClass('position') positionCell:wikitext('Position') local joindateCell = mw.html.create('th') joindateCell:wikitext('Join Date') titleRow:node(idCell):node(nameCell):node(positionCell):node(joindateCell) -- If status is not active, then see what other th tags need to be added if ( args.status ~= 'active' ) then if ( string.find(properties, '"leavedate"') ) then local leaveDate = mw.html.create('th') leaveDate:wikitext('Leave Date') titleRow:node(leaveDate) end if ( string.find(properties, '"inactivedate"') ) then local inactiveDate = mw.html.create('th') inactiveDate:wikitext('Inactive Since') titleRow:node(inactiveDate) end if ( string.find(properties, '"newteam"') ) then local newTeam = mw.html.create('th') newTeam:wikitext('New team') titleRow:node(newTeam) end end titleRow:node(titleHeader) tableContainer:node(titleRow) local currentTitle = mw.title.getCurrentTitle().text local gameCategory = mw.text.split(currentTitle, '/')[1] local cargoCaptain = '' local cargoCoach = '' local cargoManager = '' local cargoAnalyst = '' local orgStaff = {} -- Go through all the Person template instances for i = 1, #tables do local values = mw.text.jsonDecode(tables[i]) local tables = 'People' local fields = '_pageName, nationality, name, romanized' local cargoArgs = { where = '_pageName="People/' .. values.id .. '"' } local results = cargo.query(tables, fields, cargoArgs) local personRow = mw.html.create('tr') personRow:addClass('bodyRow') local id = mw.html.create('td') id:addClass('linkID') if values.flag then flag = Flags.icon(values.flag, gameCategory) id:wikitext(flag) elseif ( #results > 0 and results[1].nationality ) then flag = Flags.icon(mw.text.split(results[1].nationality, ',')[1], gameCategory) id:wikitext(flag) end if ( #results > 0 ) then id:wikitext('<span>[[People/' .. values.id .. ']]</span>') else id:wikitext('<span>'..values.id ..'</span>') end if ( values.captain == 'Yes' ) then -- Add captain to cargo table if it's active roster if args.status == 'active' then cargoCaptain = 'People/' .. values.id end id:wikitext('<span class="captain light">[[File:Captain light.png|18px|link=|Captain]]</span>') id:wikitext('<span class="captain dark-inline">[[File:Captain dark.png|18px|link=|Captain]]</span>') end local name = mw.html.create('td') name:addClass('playerName') if values.name then name:wikitext(values.name) elseif ( #results > 0 and (results[1].name or results[1].romanized) ) then name:wikitext(results[1].romanized or results[1].name) end local role = '' if values.role then role = ' (' .. values.role .. ')' end -- Add coach and manager to cargo table if exist if string.find(string.upper(values.position), 'COACH')and args.status == 'active' then cargoCoach = cargoCoach .. 'People/' .. values.id .. ',' end if string.find(string.upper(values.position), 'MANAGER') and args.status == 'active' then cargoManager = cargoManager .. 'People/' .. values.id .. ',' end if string.find(string.upper(values.position), 'ANALYST') and args.status == 'active' then cargoAnalyst = cargoAnalyst .. 'People/' .. values.id .. ',' end local position = mw.html.create('td') :addClass('tc') :wikitext(values.position .. role) local joindate = mw.html.create('td') joindate:wikitext(stringifyDate(values.joindate)) personRow:node(id):node(name):node(position):node(joindate) -- If not active squad, then go add additional columns to table if ( args.status ~= 'active' ) then if ( string.find(properties, '"leavedate"') ) then local leaveText = mw.html.create('td') :addClass('tc') :wikitext(stringifyDate(values.leavedate) or '-') personRow:node(leaveText) end if ( string.find(properties, '"inactivedate"') ) then local inactiveDate = mw.html.create('td') :addClass('tc') :wikitext(values.inactivedate or '-') personRow:node(inactiveDate) end if ( string.find(properties, '"newteam"')) then local newTeam = mw.html.create('td') if values.newteam then --Check if page newteam exists and if it does, then link to it, otherwise string only local pageExists = frame:callParserFunction('#ifexist', gameCategory .. '/' .. values.newteam, 'yes', 'no' ) if ( pageExists == 'yes' ) then newTeam:wikitext('<span>[[' .. gameCategory .. '/' .. values.newteam .. '|' .. values.newteam .. ']]</span>') else newTeam:wikitext(values.newteam) end else newTeam:wikitext('') end personRow:node(newTeam) end end -- If position indicates being part of the org rather than a player if string.find(string.upper(values.position), 'MANAGER') or string.find(string.upper(values.position), 'COACH') or string.find(string.upper(values.position), 'ANALYST') or string.find(string.upper(values.position), 'MANAGER') then table.insert(orgStaff, personRow) else tableContainer:node(personRow) end end -- If had non-players if #orgStaff > 0 then tableContainer:node(mw.html.create('tr'):addClass('headerRow'):node(mw.html.create('th'):attr('colspan', 10):addClass('table-title'):wikitext('Staff'))) for i = 1, #orgStaff do tableContainer:node(orgStaff[i]) end end if args.status == 'active' then -- remove excess comma from cargoCoach and cargoManager local length = string.len(cargoCoach) if length > 0 and string.sub(cargoCoach, length) == "," then cargoCoach = string.sub(cargoCoach , 1, length - 1) end local length = string.len(cargoManager) if length > 0 and string.sub(cargoManager, length) == "," then cargoManager = string.sub(cargoManager, 1, length - 1) end local length = string.len(cargoAnalyst) if length > 0 and string.sub(cargoAnalyst, length) == "," then cargoAnalyst = string.sub(cargoAnalyst, 1, length - 1) end frame:callParserFunction{name = '#cargo_store:', args = {_table = 'Squads', captain = cargoCaptain, coach = cargoCoach, manager = cargoManager, analyst = cargoAnalyst}} end VariablesLua.vardefine( 'Members', nil ) return tableContainer end return Squad
Summary:
Please note that all contributions to TwogPedia 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
TwogPedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Preview page with this template
Template used on this page:
Module:Squad/doc
(
edit
)
No categories
Edit