Module:PageEvents: Difference between revisions

From TwogPedia
(Created page with "local cargo = mw.ext.cargo local PageEvents = {} function PageEvents.main(frame) local currentTitle = mw.title.getCurrentTitle().text local empty = true -- Check if there are any interviews for this page local tables = 'Tournaments' local fields = '_pageName, start, end, icon, venue, prize' local cargoArgs = { where = 'venue="' .. currentTitle .. '"', sortBy = 'end' } local results = cargo.query(tables, fields, cargoArgs) local list = mw.html.create('tabl...")
 
mNo edit summary
Line 9: Line 9:
-- Check if there are any interviews for this page
-- Check if there are any interviews for this page
local tables = 'Tournaments'
local tables = 'Tournaments'
local fields = '_pageName, start, end, icon, venue, prize'
local fields = '_pageName, start, end, logoAll, logoLight, logoDark, iconAll, iconLight, iconDark, venue, prize'
local cargoArgs = {
local cargoArgs = {
where = 'venue="' .. currentTitle .. '"',
where = 'venue HOLDS "' .. currentTitle .. '"',
sortBy = 'end'
sortBy = 'end'
}
}
Line 41: Line 41:
local endDate = mw.html.create('td'):wikitext(result['end'])
local endDate = mw.html.create('td'):wikitext(result['end'])
local name = mw.html.create('td')
local name = mw.html.create('td')
local nameDiv = mw.html.create('div'):addClass('eventName'):wikitext('[[File:' .. result.icon  .. '|25px|link=' .. result._pageName ..']]'):wikitext('[[' .. result._pageName .. ']]')
            local icon = result.iconAll ~= '' and result.iconAll or result.iconLight ~= '' and result.iconLight or result.iconDark ~= '' and result.iconDark or result.logoAll ~= '' and result.logoAll or result.logoDark ~= '' and result.logoDark or result.logoLight ~= '' and result.logoLight
if not icon then icon = 'Tournament_placeholder.png' end
local nameDiv = mw.html.create('div'):addClass('eventName'):wikitext('[[File:' .. icon  .. '|25px|link=' .. result._pageName ..']]'):wikitext('[[' .. result._pageName .. ']]')
name:node(nameDiv)
name:node(nameDiv)



Revision as of 03:42, 2 October 2023

Documentation for this module may be created at Module:PageEvents/doc

local cargo = mw.ext.cargo

local PageEvents = {}

function PageEvents.main(frame)
	local currentTitle = mw.title.getCurrentTitle().text
	local empty = true

	-- Check if there are any interviews for this page
	local tables = 'Tournaments'
	local fields = '_pageName, start, end, logoAll, logoLight, logoDark, iconAll, iconLight, iconDark, venue, prize'
	local cargoArgs = {
		where = 'venue HOLDS "' .. currentTitle .. '"',
		sortBy = 'end'
	}
	local results = cargo.query(tables, fields, cargoArgs)
	local list = mw.html.create('table')
		:addClass('striped-table')

	local container = mw.html.create()
	if #results > 0 then
		empty = false
		container:node(mw.html.create('h2'):wikitext('Events'))
		
		local titleRow = mw.html.create('tr')
			:addClass('headerRow')
		local startCell = mw.html.create('th')
			:wikitext('Start Date')
		local endCell = mw.html.create('th')
			:wikitext('End Date')
		local nameCell = mw.html.create('th')
			:wikitext('Name')
		local prizeCell = mw.html.create('th')
			:wikitext('Prize')
		list:node(titleRow:node(nameCell):node(startCell):node(endCell):node(prizeCell))	
		
		for r = 1, #results do
			local result = results[r]
			local eventRow = mw.html.create('tr'):addClass('bodyRow')
			local start = mw.html.create('td'):wikitext(result.start)
			local endDate = mw.html.create('td'):wikitext(result['end'])
			local name = mw.html.create('td')
            local icon = result.iconAll ~= '' and result.iconAll or result.iconLight ~= '' and result.iconLight or result.iconDark ~= '' and result.iconDark or result.logoAll ~= '' and result.logoAll or result.logoDark ~= '' and result.logoDark or result.logoLight ~= '' and result.logoLight
			if not icon then icon = 'Tournament_placeholder.png' end
			local nameDiv = mw.html.create('div'):addClass('eventName'):wikitext('[[File:' .. icon  .. '|25px|link=' .. result._pageName ..']]'):wikitext('[[' .. result._pageName .. ']]')
			name:node(nameDiv)

			local prize = mw.html.create('td'):wikitext(result.prize)
			
			list:node(eventRow:node(name):node(start):node(endDate):node(prize))
		end
		container:node(list)
	end

	if empty then
		return '<span class="d-none"></span>'
	else
		return container
	end
	
end

return PageEvents