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:Game/Transfers
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 Flags = require('Module:Flags') local p = {} local VariablesLua = mw.ext.VariablesLua local getTeamLogo = require('Module:Functions').getTeamLogo local cargo = mw.ext.cargo function p.main(frame) local game = mw.text.split(mw.title.getCurrentTitle().text, '/')[1] local tables = 'Transfers' local fields = '_pageName, id, flag, joindate, leavedate, inactivedate, maxdate=date' local cargoArgs = { where = '_pageName LIKE "' .. game .. '/%"', orderBy = 'maxdate DESC, _pageName ASC', limit = 50 } local results = cargo.query(tables, fields, cargoArgs) local prevTransfers = {} local container = mw.html.create('div') if #results > 0 then local transfersContainer = mw.html.create('div'):addClass('transfer__container') local transfersWrapper = mw.html.create('div'):addClass('box__container'):node(mw.html.create('div'):addClass('box__title'):wikitext('Latest transfers')):node(transfersContainer) -- Header row local transferHeader = mw.html.create('div'):addClass('transfer__row transfer__header') transferHeader:node(mw.html.create('div'):wikitext('Date')):node(mw.html.create('div'):wikitext('Player')):node(mw.html.create('div'):wikitext('From')):node(mw.html.create('div'):wikitext('To')) transfersContainer:node(transferHeader) local monthNames = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"} -- Loop through all transfers for i = 1, #results do local result = results[i] -- Prevent duplicate if joined a new team on same date as they left the previous one if not tableContains(prevTransfers, result.id, result.date) then table.insert(prevTransfers, {id = result.id, date = result.date}) local year, month, day = result.joindate:match("(%d+)-(%d+)-(%d+)") local monthName = monthNames[tonumber(month)] local joinDate = monthName .. " " .. day .. ", " .. year local leaveDate = nil if result.leavedate then year, month, day = result.leavedate:match("(%d+)-(%d+)-(%d+)") monthName = monthNames[tonumber(month)] leaveDate = monthName .. " " .. day .. ", " .. year end local transfer = mw.html.create('div'):addClass('transfer__row') local transferDate = mw.html.create('div'):wikitext(leaveDate or joinDate) local flag = '' if result.flag then flag = Flags.icon(result.flag, game) else tables = 'People' fields = '_pageName, nationality, name, romanized' cargoArgs = { where = '_pageName="' .. result.id .. '"' } local personResult = cargo.query(tables, fields, cargoArgs) if #personResult > 0 then flag = Flags.icon(personResult[1].nationality, game) end end local player = mw.html.create('div'):addClass('transfer__player'):node(flag):node('[[' .. result.id .. '|' .. string.gsub(result.id, 'People/', '') .. ']]') local from = mw.html.create('div') local to = mw.html.create('div') -- If left the current team then check if has joined a new one, else check for older entries from the same player to see which team he joined from if leaveDate then tables = 'Transfers' fields = '_pageName, id, flag, joindate, leavedate, inactivedate' cargoArgs = { where = '_pageName LIKE "' .. game .. '/%" AND id="' .. result.id .. '" AND joindate = "' .. result.leavedate.. '"', orderBy = 'joindate ASC', limit = 10 } local newTeamResult = cargo.query(tables, fields, cargoArgs) from:node(getTeamLogo(result._pageName, game, size)) if #newTeamResult > 0 then to:node(getTeamLogo(newTeamResult[1]._pageName, game, size)) else to:wikitext('X') end else tables = 'Transfers' fields = '_pageName, id, flag, joindate, leavedate, inactivedate' cargoArgs = { where = '_pageName LIKE "' .. game .. '/%" AND id="' .. result.id .. '" AND joindate < "' .. result.joindate .. '" AND leavedate="' .. result.joindate .. '"', orderBy = 'joindate DESC', limit = 10 } local fromResults = cargo.query(tables, fields, cargoArgs) -- If had previous teams if #fromResults > 0 then from:node(getTeamLogo(fromResults[1]._pageName, game, size)) to:node(getTeamLogo(result._pageName, game, size)) else from:wikitext('X') to:node(getTeamLogo(result._pageName, game, size)) end end transfer:node(transferDate):node(player):node(from):node(to) transfersContainer:node(transfer) end end return transfersWrapper end return container end function tableContains(tbl, targetId, targetDate) for _, transfer in ipairs(tbl) do if transfer.id == targetId and transfer.date == targetDate then return true -- The table with the specified id and date exists end end return false -- The table with the specified id and date does not exist end return p
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:Game/Transfers/doc
(
edit
)
No categories
Edit