<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://staging.twogpedia.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ANewsLanding%2FTransfers</id>
	<title>Module:NewsLanding/Transfers - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://staging.twogpedia.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ANewsLanding%2FTransfers"/>
	<link rel="alternate" type="text/html" href="https://staging.twogpedia.com/index.php?title=Module:NewsLanding/Transfers&amp;action=history"/>
	<updated>2026-05-11T16:08:13Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://staging.twogpedia.com/index.php?title=Module:NewsLanding/Transfers&amp;diff=9234&amp;oldid=prev</id>
		<title>Couchor: Created page with &quot;local cargo = mw.ext.cargo local Flags = require(&#039;Module:Flags&#039;) local getTeamLogo = require(&#039;Module:Functions&#039;).getTeamLogo local p = {}  function p.main() 	local tables = &#039;Transfers&#039; 	local fields = &#039;_pageName, id, flag, joindate, leavedate, inactivedate, maxdate&#039; 	local cargoArgs = { 		orderBy = &#039;maxdate DESC&#039;, 		limit = 30 	} 	local size = &#039;25px&#039; 	local results = cargo.query(tables, fields, cargoArgs) 	 	if #results &gt; 0 then         local prevTransfers = {} 		 		loca...&quot;</title>
		<link rel="alternate" type="text/html" href="https://staging.twogpedia.com/index.php?title=Module:NewsLanding/Transfers&amp;diff=9234&amp;oldid=prev"/>
		<updated>2024-02-12T14:39:32Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local cargo = mw.ext.cargo local Flags = require(&amp;#039;Module:Flags&amp;#039;) local getTeamLogo = require(&amp;#039;Module:Functions&amp;#039;).getTeamLogo local p = {}  function p.main() 	local tables = &amp;#039;Transfers&amp;#039; 	local fields = &amp;#039;_pageName, id, flag, joindate, leavedate, inactivedate, maxdate&amp;#039; 	local cargoArgs = { 		orderBy = &amp;#039;maxdate DESC&amp;#039;, 		limit = 30 	} 	local size = &amp;#039;25px&amp;#039; 	local results = cargo.query(tables, fields, cargoArgs) 	 	if #results &amp;gt; 0 then         local prevTransfers = {} 		 		loca...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local cargo = mw.ext.cargo&lt;br /&gt;
local Flags = require(&amp;#039;Module:Flags&amp;#039;)&lt;br /&gt;
local getTeamLogo = require(&amp;#039;Module:Functions&amp;#039;).getTeamLogo&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main()&lt;br /&gt;
	local tables = &amp;#039;Transfers&amp;#039;&lt;br /&gt;
	local fields = &amp;#039;_pageName, id, flag, joindate, leavedate, inactivedate, maxdate&amp;#039;&lt;br /&gt;
	local cargoArgs = {&lt;br /&gt;
		orderBy = &amp;#039;maxdate DESC&amp;#039;,&lt;br /&gt;
		limit = 30&lt;br /&gt;
	}&lt;br /&gt;
	local size = &amp;#039;25px&amp;#039;&lt;br /&gt;
	local results = cargo.query(tables, fields, cargoArgs)&lt;br /&gt;
	&lt;br /&gt;
	if #results &amp;gt; 0 then&lt;br /&gt;
        local prevTransfers = {}&lt;br /&gt;
		&lt;br /&gt;
		local transfersContainer = mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;news-transfer-container&amp;#039;)&lt;br /&gt;
		local transfersWrapper = mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;news-transfers-wrapper&amp;#039;):node(mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;news-transfers-title&amp;#039;):wikitext(&amp;#039;Latest transfers&amp;#039;)):node(transfersContainer)&lt;br /&gt;
		&lt;br /&gt;
		-- Header row&lt;br /&gt;
		-- local transferHeader = mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;news-transfer-row news-transfer-header&amp;#039;)&lt;br /&gt;
		-- transferHeader:node(mw.html.create(&amp;#039;div&amp;#039;):wikitext(&amp;#039;Date&amp;#039;)):node(mw.html.create(&amp;#039;div&amp;#039;):wikitext(&amp;#039;Player&amp;#039;)):node(mw.html.create(&amp;#039;div&amp;#039;):wikitext(&amp;#039;From&amp;#039;)):node(mw.html.create(&amp;#039;div&amp;#039;):wikitext(&amp;#039;To&amp;#039;))&lt;br /&gt;
		-- transfersContainer:node(transferHeader)&lt;br /&gt;
		&lt;br /&gt;
		local monthNames = {&amp;quot;Jan&amp;quot;, &amp;quot;Feb&amp;quot;, &amp;quot;Mar&amp;quot;, &amp;quot;Apr&amp;quot;, &amp;quot;May&amp;quot;, &amp;quot;Jun&amp;quot;, &amp;quot;Jul&amp;quot;, &amp;quot;Aug&amp;quot;, &amp;quot;Sep&amp;quot;, &amp;quot;Oct&amp;quot;, &amp;quot;Nov&amp;quot;, &amp;quot;Dec&amp;quot;}&lt;br /&gt;
		-- Loop through all transfers&lt;br /&gt;
		for i = 1, #results do&lt;br /&gt;
			local result = results[i]&lt;br /&gt;
			local game = mw.text.split(result._pageName, &amp;#039;/&amp;#039;)[1]&lt;br /&gt;
            -- Prevent duplicate if joined a new team on same date as they left the previous one&lt;br /&gt;
            if not tableContains(prevTransfers, result.id, result.date) then&lt;br /&gt;
	            table.insert(prevTransfers, {id = result.id, date = result.date})&lt;br /&gt;
	            &lt;br /&gt;
	            local gameLogo = mw.html.create():wikitext(&amp;#039;[[File:&amp;#039; .. game .. &amp;#039;_logo.png|20x20px|link=&amp;#039; .. game .. &amp;#039;/Transfers]]&amp;#039;)&lt;br /&gt;
	            &lt;br /&gt;
	            local transfer = mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;news-transfer-row&amp;#039;)&lt;br /&gt;
	            &lt;br /&gt;
	            if result.flag then&lt;br /&gt;
					flag = Flags.icon(result.flag, game)&lt;br /&gt;
				else &lt;br /&gt;
					tables = &amp;#039;People&amp;#039;&lt;br /&gt;
					fields = &amp;#039;_pageName, nationality, name, romanized&amp;#039;&lt;br /&gt;
					cargoArgs = {&lt;br /&gt;
						where = &amp;#039;_pageName=&amp;quot;&amp;#039; .. result.id .. &amp;#039;&amp;quot;&amp;#039;&lt;br /&gt;
					}&lt;br /&gt;
					local personResult = cargo.query(tables, fields, cargoArgs)&lt;br /&gt;
					if #personResult &amp;gt; 0 then&lt;br /&gt;
						flag = Flags.icon(personResult[1].nationality, game)&lt;br /&gt;
					end&lt;br /&gt;
	            end&lt;br /&gt;
			&lt;br /&gt;
				local player = mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;news-transfer-player&amp;#039;):node(flag):node(&amp;#039;[[&amp;#039; .. result.id .. &amp;#039;|&amp;#039; .. string.gsub(result.id, &amp;#039;People/&amp;#039;, &amp;#039;&amp;#039;) .. &amp;#039;]]&amp;#039;)&lt;br /&gt;
				local team = mw.html.create(&amp;#039;div&amp;#039;):node(getTeamLogo(result._pageName, game, size))&lt;br /&gt;
				local action = mw.html.create(&amp;#039;div&amp;#039;):attr(&amp;#039;title&amp;#039;, result.leavedate and &amp;#039;Left&amp;#039; or &amp;#039;Joined&amp;#039;):wikitext(result.leavedate and &amp;#039;X&amp;#039; or &amp;#039;=&amp;gt;&amp;#039;)&lt;br /&gt;
				&lt;br /&gt;
				transfer:node(gameLogo):node(player):node(action):node(team)&lt;br /&gt;
	&lt;br /&gt;
				transfersContainer:node(transfer)&lt;br /&gt;
	            &lt;br /&gt;
	            -- OLD TYPE TABLE &lt;br /&gt;
				-- local year, month, day = result.joindate:match(&amp;quot;(%d+)-(%d+)-(%d+)&amp;quot;)&lt;br /&gt;
				-- local monthName = monthNames[tonumber(month)]&lt;br /&gt;
				-- local joinDate = monthName .. &amp;quot; &amp;quot; .. day .. &amp;quot;, &amp;quot; .. year&lt;br /&gt;
	&lt;br /&gt;
				-- local leaveDate = nil&lt;br /&gt;
				-- if result.leavedate then&lt;br /&gt;
				-- 	year, month, day = result.leavedate:match(&amp;quot;(%d+)-(%d+)-(%d+)&amp;quot;)&lt;br /&gt;
				-- 	monthName = monthNames[tonumber(month)]&lt;br /&gt;
				-- 	leaveDate = monthName .. &amp;quot; &amp;quot; .. day .. &amp;quot;, &amp;quot; .. year&lt;br /&gt;
				-- end&lt;br /&gt;
	&lt;br /&gt;
				-- local transfer = mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;news-transfer-row&amp;#039;)&lt;br /&gt;
				-- local transferDate = mw.html.create(&amp;#039;div&amp;#039;):wikitext(leaveDate or joinDate)&lt;br /&gt;
				&lt;br /&gt;
				-- local flag = &amp;#039;&amp;#039;&lt;br /&gt;
				-- if result.flag then&lt;br /&gt;
				-- 	flag = Flags.icon(result.flag, game)&lt;br /&gt;
				-- else &lt;br /&gt;
				-- 	tables = &amp;#039;People&amp;#039;&lt;br /&gt;
				-- 	fields = &amp;#039;_pageName, nationality, name, romanized&amp;#039;&lt;br /&gt;
				-- 	cargoArgs = {&lt;br /&gt;
				-- 		where = &amp;#039;_pageName=&amp;quot;&amp;#039; .. result.id .. &amp;#039;&amp;quot;&amp;#039;&lt;br /&gt;
				-- 	}&lt;br /&gt;
				-- 	local personResult = cargo.query(tables, fields, cargoArgs)&lt;br /&gt;
				-- 	if #personResult &amp;gt; 0 then&lt;br /&gt;
				-- 		flag = Flags.icon(personResult[1].nationality, game)&lt;br /&gt;
				-- 	end&lt;br /&gt;
				-- end&lt;br /&gt;
	&lt;br /&gt;
				-- local player = mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;transfer__player&amp;#039;):node(flag):node(&amp;#039;[[&amp;#039; .. result.id .. &amp;#039;|&amp;#039; .. string.gsub(result.id, &amp;#039;People/&amp;#039;, &amp;#039;&amp;#039;) .. &amp;#039;]]&amp;#039;)&lt;br /&gt;
				&lt;br /&gt;
				-- local from = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
				-- local to = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
				-- -- 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&lt;br /&gt;
				-- if leaveDate then&lt;br /&gt;
				-- 	tables = &amp;#039;Transfers&amp;#039;&lt;br /&gt;
				-- 	fields = &amp;#039;_pageName, id, flag, joindate, leavedate, inactivedate&amp;#039;&lt;br /&gt;
				-- 	cargoArgs = {&lt;br /&gt;
				-- 		where = &amp;#039;_pageName LIKE &amp;quot;&amp;#039; .. game .. &amp;#039;/%&amp;quot; AND id=&amp;quot;&amp;#039; .. result.id .. &amp;#039;&amp;quot; AND joindate = &amp;quot;&amp;#039; .. result.leavedate.. &amp;#039;&amp;quot;&amp;#039;,&lt;br /&gt;
				-- 		orderBy = &amp;#039;joindate ASC&amp;#039;,&lt;br /&gt;
				-- 		limit = 10&lt;br /&gt;
				-- 	}&lt;br /&gt;
				-- 	local newTeamResult = cargo.query(tables, fields, cargoArgs)&lt;br /&gt;
	&lt;br /&gt;
				-- 	from:node(getTeamLogo(result._pageName, game, size))	&lt;br /&gt;
				-- 	if #newTeamResult &amp;gt; 0 then to:node(getTeamLogo(newTeamResult[1]._pageName, game, size))	&lt;br /&gt;
				-- 	else to:wikitext(&amp;#039;X&amp;#039;) end&lt;br /&gt;
				-- else &lt;br /&gt;
				-- 	tables = &amp;#039;Transfers&amp;#039;&lt;br /&gt;
				-- 	fields = &amp;#039;_pageName, id, flag, joindate, leavedate, inactivedate&amp;#039;&lt;br /&gt;
				-- 	cargoArgs = {&lt;br /&gt;
				-- 		where = &amp;#039;_pageName LIKE &amp;quot;&amp;#039; .. game .. &amp;#039;/%&amp;quot; AND id=&amp;quot;&amp;#039; .. result.id .. &amp;#039;&amp;quot; AND joindate &amp;lt; &amp;quot;&amp;#039; .. result.joindate .. &amp;#039;&amp;quot; AND leavedate=&amp;quot;&amp;#039; .. result.joindate .. &amp;#039;&amp;quot;&amp;#039;,&lt;br /&gt;
				-- 		orderBy = &amp;#039;joindate DESC&amp;#039;,&lt;br /&gt;
				-- 		limit = 10&lt;br /&gt;
				-- 	}&lt;br /&gt;
				-- 	local fromResults = cargo.query(tables, fields, cargoArgs)&lt;br /&gt;
	&lt;br /&gt;
				-- 	-- If had previous teams&lt;br /&gt;
				-- 	if #fromResults &amp;gt; 0 then&lt;br /&gt;
				-- 		from:node(getTeamLogo(fromResults[1]._pageName, game, size))&lt;br /&gt;
				-- 		to:node(getTeamLogo(result._pageName, game, size))&lt;br /&gt;
				-- 	else&lt;br /&gt;
				-- 		from:wikitext(&amp;#039;X&amp;#039;)&lt;br /&gt;
				-- 		to:node(getTeamLogo(result._pageName, game, size))&lt;br /&gt;
				-- 	end&lt;br /&gt;
					&lt;br /&gt;
				-- end&lt;br /&gt;
				-- transfer:node(transferDate):node(player):node(from):node(to)&lt;br /&gt;
	&lt;br /&gt;
				-- transfersContainer:node(transfer)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return transfersWrapper&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function tableContains(tbl, targetId, targetDate)&lt;br /&gt;
    for _, transfer in ipairs(tbl) do&lt;br /&gt;
        if transfer.id == targetId and transfer.date == targetDate then&lt;br /&gt;
            return true  -- The table with the specified id and date exists&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Couchor</name></author>
	</entry>
</feed>