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:Infobox team
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 Links = require('Module:Links') local Header = require('Module:Infobox/Widget/Header') local Subheader = require('Module:Infobox/Widget/Subheader') local LinksWidget = require('Module:Infobox/Widget/Links') local SponsorsWidget = require('Module:Infobox/Widget/Sponsors') local LocationWidget = require('Module:Infobox/Widget/Location') local RowWidget = require('Module:Infobox/Widget/Row') local stringifyDate = require('Module:Functions').stringifyDate local cargo = mw.ext.cargo VariablesLua = mw.ext.VariablesLua local Flags = require('Module:Flags') local Infobox = {} function Infobox.main(frame) local args = getArgs(frame) local currentTitle = mw.title.getCurrentTitle().text local currentTitleSplit = mw.text.split(currentTitle, '/') local logoLight = VariablesLua.varexists('logoLight') and VariablesLua.var('logoLight') or nil local logoDark = VariablesLua.varexists('logoDark') and VariablesLua.var('logoDark') or nil local logoAll = VariablesLua.varexists('logoAll') and VariablesLua.var('logoAll') or nil if args.org then local currentDate = os.date('%Y-%m-%d') local tables = 'Logos' local fields = '_pageName, logoLight, logoDark, logoAll, start, end' local cargoArgs = { where = '_pageName="Companies/' .. args.org .. '" AND (start is NULL OR start < "' .. currentDate .. '") AND (end is NULL OR end > "' .. currentDate .. '")' } local results = cargo.query(tables, fields, cargoArgs) if #results > 0 then if results[1].logoAll then logoLight, logoDark, logoAll = nil, nil, results[1].logoAll else logoLight, logoDark, logoAll = results[1].logoLight, results[1].logoDark, nil end end end -- local headerNode local headerNode = Header.make( args.title or currentTitle, logoLight, logoDark, logoAll, nil, nil, nil, nil, nil, nil, nil, args.roster, args.region ) -- if args.logos then end -- if args.displaytitles then end -- local logoLight = VariablesLua.varexists('logoLight') and VariablesLua.var('logoLight') or nil -- local logoDark = VariablesLua.varexists('logoDark') and VariablesLua.var('logoDark') or nil -- local logoAll = VariablesLua.varexists('logoAll') and VariablesLua.var('logoAll') or nil -- if logoAll then -- headerNode = Header.make(args.title or currentTitle, nil, nil, logoAll) -- elseif logoLight or logoDark then -- headerNode = Header.make(args.title or currentTitle, logoLight, logoDark) -- elseif args.org then -- local currentDate = os.date('%Y-%m-%d') -- local tables = 'Logos' -- local fields = '_pageName, logoLight, logoDark, logoAll, start, end' -- local cargoArgs = { -- where = '_pageName="Companies/' .. args.org .. '" AND (start is NULL OR start < "' .. currentDate .. '") AND (end is NULL OR end > "' .. currentDate .. '")' -- } -- local results = cargo.query(tables, fields, cargoArgs) -- if #results > 0 then -- if results[1].logoAll then -- headerNode = Header.make(args.title or currentTitle, nil, nil, results[1].logoAll) -- else -- headerNode = Header.make(args.title or currentTitle, results[1].logoLight, results[1].logoDark) -- end -- end -- end local container = mw.html.create('div') :addClass('ib grid-infobox') :attr('id', 'grid-infobox-teams') local titleContainer = mw.html.create('div') :addClass('carousel-image-container') :attr('id', 'image-container-small') :node(headerNode) container:node(titleContainer) local infoContainer = mw.html.create('div'):addClass('info-container grid') if args.roster then infoContainer:node(RowWidget.make('Roster', LocationWidget.make(args.roster, args.city, currentTitleSplit[1] .. '/Teams'))) end if args.region then infoContainer:node(RowWidget.make('Region', LocationWidget.make(args.region, nil, currentTitleSplit[1] .. '/Teams'))) end local tables = 'Squads' local fields = '_pageName, captain, coach, manager, analyst' local cargoArgs = { where = '_pageName = "' .. currentTitle .. '"' } local results = cargo.query(tables, fields, cargoArgs) if #results > 0 then tables = 'People' fields = '_pageName, nationality, name, romanized' if results[1].captain then infoContainer:node(Infobox.personRow(results[1].captain, 'Captain', tables, fields, cargoArgs)) end if results[1].coach then infoContainer:node(Infobox.personRow(results[1].coach, 'Coach', tables, fields, cargoArgs)) end if results[1].manager then infoContainer:node(Infobox.personRow(results[1].manager, 'Manager', tables, fields, cargoArgs)) end if results[1].analyst then infoContainer:node(Infobox.personRow(results[1].analyst, 'Analyst', tables, fields, cargoArgs)) end end if args.founded then infoContainer:node(RowWidget.make('Founded', stringifyDate(args.founded))) end if args.org then infoContainer:node(RowWidget.make('Organization', 'Companies/' .. args.org, frame)) local sponsorTables = 'Sponsors' local sponsorFields = 'id, startRef, startRefName, endRef, endRefName' local sponsorArgs = { where = '_pageName="Companies/' .. args.org .. '"' } local sponsorResults = cargo.query(sponsorTables, sponsorFields, sponsorArgs) if #sponsorResults > 0 then infoContainer:node(RowWidget.make('Sponsors', SponsorsWidget.make(sponsorResults, frame))) end end if args.sponsors and not args.org then infoContainer:node(RowWidget.make('Sponsors', SponsorsWidget.make(args.sponsors, frame))) end if args.gamesponsors then infoContainer:node(RowWidget.make('Sponsors', SponsorsWidget.make(args.gamesponsors, frame))) end if args.coach then infoContainer:node(RowWidget.make('Coach', args.coach, frame)) end if args.manager then infoContainer:node(RowWidget.make('Manager', args.manager, frame)) end if args.captain then infoContainer:node(RowWidget.make('Captain', args.captain, frame)) end if args.links then local splitLinks = mw.text.split(args.links, ',') for i = 1, #splitLinks do local split = mw.text.split(splitLinks[i], '=') args[split[1]] = split[2] end end if args.api_id then args.datdota = args.api_id args.dotabuff = args.api_id args.stratz = args.api_id end if args.links then local splitLinks = mw.text.split(args.links, ',') for i = 1, #splitLinks do local split = mw.text.split(splitLinks[i], '=') args[split[1]] = split[2] end end container:node(infoContainer) local transformedLinks = Links.transform(args) local fullLinks = LinksWidget.make(transformedLinks, 'team') if fullLinks then local linksContainer = mw.html.create('div'):addClass('ib-links-container') :node(fullLinks) container:node(linksContainer) end return container end function Infobox.personRow(resultStr, rowName, tables, fields, cargoArgs) local stringSplit = mw.text.split(resultStr, ',') local personDiv = mw.html.create('div') local flag = nil for j = 1, #stringSplit do local singleDiv = mw.html.create('div'):attr('style', 'display: flex; gap: 0.5rem;') cargoArgs.where = '_pageName="' .. stringSplit[j] .. '"' local personResults = cargo.query(tables, fields, cargoArgs) if #personResults > 0 and personResults[1].nationality then flag = Flags.icon(personResults[1].nationality) end personDiv:node(singleDiv:wikitext(flag):wikitext('[[' .. stringSplit[j] .. '|' .. string.gsub( stringSplit[j], 'People/' , '') .. ']]')) end return RowWidget.make(rowName, personDiv) end return Infobox
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:Infobox team/doc
(
edit
)
No categories
Edit