<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ASidebar_games_events</id>
	<title>Module:Sidebar games events - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ASidebar_games_events"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Sidebar_games_events&amp;action=history"/>
	<updated>2026-06-14T14:33:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://mywikibiz.com/index.php?title=Module:Sidebar_games_events&amp;diff=479436&amp;oldid=prev</id>
		<title>Zoran: Pywikibot 6.4.0</title>
		<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Sidebar_games_events&amp;diff=479436&amp;oldid=prev"/>
		<updated>2021-07-16T06:01:40Z</updated>

		<summary type="html">&lt;p&gt;Pywikibot 6.4.0&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--&lt;br /&gt;
-- This module implements {{Sidebar games events}}&lt;br /&gt;
-- This module was created using code taken directly from [[Module:Sidebar]] &lt;br /&gt;
--&lt;br /&gt;
require('Module:No globals')&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local getArgs = require('Module:Arguments').getArgs&lt;br /&gt;
&lt;br /&gt;
function p.sidebar(frame, args)&lt;br /&gt;
&lt;br /&gt;
	if not args then&lt;br /&gt;
		args = getArgs(frame)&lt;br /&gt;
	end&lt;br /&gt;
		&lt;br /&gt;
	local root = mw.html.create()&lt;br /&gt;
&lt;br /&gt;
	root = root&lt;br /&gt;
		:tag('table')&lt;br /&gt;
		:addClass('sidebar-games-events')&lt;br /&gt;
		:addClass(args.float == 'left' and 'sidebar-games-events-left' or nil)&lt;br /&gt;
		:addClass(args.float == 'none' and 'sidebar-games-events-none' or nil)&lt;br /&gt;
		:addClass('sidebar')&lt;br /&gt;
		:addClass('nomobile')&lt;br /&gt;
		:addClass(args.class or 'hlist')&lt;br /&gt;
		:css('width', args.width or nil)&lt;br /&gt;
		:css('max-width', args.maxwidth or nil)&lt;br /&gt;
&lt;br /&gt;
	-- enumerate the rows and count the columns&lt;br /&gt;
	local cols = 1&lt;br /&gt;
	local colindex = {a = '2', b = '3', c = '4', d = '5', e = '6'}&lt;br /&gt;
	local lets = {'a', 'b', 'c', 'd', 'e'}&lt;br /&gt;
	local rowNums = {}&lt;br /&gt;
	local subevents = 0&lt;br /&gt;
	local hasevents = false&lt;br /&gt;
&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		k = '' .. k&lt;br /&gt;
		&lt;br /&gt;
		-- find rows&lt;br /&gt;
		local num = k:match('^event(%d+)$') &lt;br /&gt;
			or k:match('^image(%d+)$')&lt;br /&gt;
			or k:match('^title(%d+)$')&lt;br /&gt;
			or k:match('^type(%d+)[a-e]$')&lt;br /&gt;
			or k:match('^event(%d+)%.%d+$')&lt;br /&gt;
			or k:match('^results(%d+)%.%d+[a-e]?$')&lt;br /&gt;
		if num then table.insert(rowNums, tonumber(num)) end&lt;br /&gt;
		&lt;br /&gt;
		-- find number of columns&lt;br /&gt;
		if k:match('^results%d+%.(%d+)$') then&lt;br /&gt;
			cols = (2 &amp;gt; cols) and 2 or cols&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		-- find number of columns based on let(s)&lt;br /&gt;
		local let = k:match('^results%d+%.%d+([a-e])$')&lt;br /&gt;
			or k:match('^type%d+([a-e])$')&lt;br /&gt;
		if let and colindex[let] then&lt;br /&gt;
			local n = tonumber(colindex[let])&lt;br /&gt;
			cols = (n &amp;gt; cols) and n or cols&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		-- find subevents&lt;br /&gt;
		local subnum = k:match('^results%d+%.(%d+)[a-e]?$')&lt;br /&gt;
			or k:match('^event%d+%.(%d+)$')&lt;br /&gt;
		if subnum then&lt;br /&gt;
			subnum = tonumber(subnum)&lt;br /&gt;
			subevents = (subnum &amp;gt; subevents) and subnum or subevents&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		-- identify events (that match looks awfully similar to subevents)&lt;br /&gt;
		if k:match('^(event%d+%.%d+)$') then&lt;br /&gt;
			hasevents = true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- remove duplicates from the list (e.g. 3 will be duplicated if both event3 and image3 are specified)&lt;br /&gt;
	table.sort(rowNums)&lt;br /&gt;
	for i = #rowNums, 1, -1 do&lt;br /&gt;
		if rowNums[i] == rowNums[i - 1] then&lt;br /&gt;
			table.remove(rowNums, i)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- alignment&lt;br /&gt;
	local alignevents = nil&lt;br /&gt;
	if args.alignevents and args.alignevents == 'right' then&lt;br /&gt;
		alignevents = 'event-r'&lt;br /&gt;
	end&lt;br /&gt;
	local alignresults = nil&lt;br /&gt;
	if args.alignresults and args.alignresults == 'right' then&lt;br /&gt;
		alignresults = 'result-r'&lt;br /&gt;
	elseif args.alignresults and args.alignresults == 'left' then&lt;br /&gt;
		alignresults = 'result-l'&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- add the top level header	&lt;br /&gt;
	if args.event or args.title then&lt;br /&gt;
		local t = args.event&lt;br /&gt;
		if args.title then&lt;br /&gt;
			t = args.title&lt;br /&gt;
		elseif args.games then&lt;br /&gt;
			t = '[[' .. args.event .. ' at the ' .. args.games .. '|' .. args.event .. ']]'&lt;br /&gt;
				.. ' at the&amp;lt;br&amp;gt;' .. '[[' .. args.games .. ']]'&lt;br /&gt;
		end&lt;br /&gt;
		local cell = root:tag('tr'):tag('th')&lt;br /&gt;
		cell&lt;br /&gt;
			:addClass('sidebar-games-events-title')&lt;br /&gt;
			:attr('colspan', cols)&lt;br /&gt;
		if args.imageright then&lt;br /&gt;
			local d = cell:tag('div')&lt;br /&gt;
				:addClass('sidebar-games-events-ir-cont')&lt;br /&gt;
			d:tag('div')&lt;br /&gt;
				:addClass('sidebar-games-events-ir-title')&lt;br /&gt;
				:wikitext(t)&lt;br /&gt;
			d:tag('div')&lt;br /&gt;
				:addClass('sidebar-games-events-ir')&lt;br /&gt;
				:wikitext(args.imageright)&lt;br /&gt;
		else&lt;br /&gt;
			cell:wikitext(t)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.image then&lt;br /&gt;
		local imageCell = root:tag('tr'):tag('td')&lt;br /&gt;
&lt;br /&gt;
		imageCell&lt;br /&gt;
			:addClass('sidebar-games-events-image')&lt;br /&gt;
			:attr('colspan', cols)&lt;br /&gt;
			:wikitext(args.image)&lt;br /&gt;
&lt;br /&gt;
		if args.caption then&lt;br /&gt;
			imageCell&lt;br /&gt;
				:tag('div')&lt;br /&gt;
					:addClass('sidebar-games-events-caption')&lt;br /&gt;
					:wikitext(args.caption)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.above then&lt;br /&gt;
		local cell = root:tag('tr'):tag('td')&lt;br /&gt;
		cell:attr('colspan', cols)&lt;br /&gt;
			:wikitext(args.above)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- start adding rows&lt;br /&gt;
	for i, num in ipairs(rowNums) do&lt;br /&gt;
		local heading = nil&lt;br /&gt;
		local event = args['event' .. num]&lt;br /&gt;
		local image = args['image' .. num]&lt;br /&gt;
		local title = args['title' .. num]&lt;br /&gt;
		if title then&lt;br /&gt;
			root:tag('tr')&lt;br /&gt;
					:tag('th')&lt;br /&gt;
						:addClass('event-title')&lt;br /&gt;
						:attr('colspan', cols)&lt;br /&gt;
						:wikitext(title)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if event and image then&lt;br /&gt;
			heading = event .. '&amp;lt;br&amp;gt;' .. image&lt;br /&gt;
		elseif event then&lt;br /&gt;
			heading = event&lt;br /&gt;
		elseif image then&lt;br /&gt;
			heading = image&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if heading then&lt;br /&gt;
			root&lt;br /&gt;
				:tag('tr')&lt;br /&gt;
					:tag('th')&lt;br /&gt;
						:addClass('sidebar-games-events-heading')&lt;br /&gt;
						:attr('colspan', cols)&lt;br /&gt;
						:wikitext(heading)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local showtypes = false&lt;br /&gt;
		for j, let in ipairs(lets) do&lt;br /&gt;
			if j &amp;lt; cols then&lt;br /&gt;
				if args['type' .. num .. let] then&lt;br /&gt;
					showtypes = true&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if showtypes == true then&lt;br /&gt;
			local row = root:tag('tr')&lt;br /&gt;
			row:tag('th'):addClass((hasevents == false) and 'no-event' or nil)&lt;br /&gt;
			for j, let in ipairs(lets) do&lt;br /&gt;
				if j &amp;lt; cols then&lt;br /&gt;
					local t = args['type' .. num .. let]&lt;br /&gt;
					local cell = row:tag('th')&lt;br /&gt;
					if t then&lt;br /&gt;
						cell&lt;br /&gt;
							:addClass('type-let')&lt;br /&gt;
							:css('width', (cols &amp;gt; 2) and tostring(math.floor(100/(cols-1))) .. '%' or nil)&lt;br /&gt;
							:wikitext(t)&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		for k=1,subevents do&lt;br /&gt;
			local hasresults = false&lt;br /&gt;
			if args['results' .. num .. '.' .. k] then&lt;br /&gt;
				hasresults = true&lt;br /&gt;
			else&lt;br /&gt;
				for j, let in ipairs(lets) do&lt;br /&gt;
					if j &amp;lt; cols then&lt;br /&gt;
						if args['results' .. num .. '.' .. k .. let] then&lt;br /&gt;
							hasresults = true&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
	&lt;br /&gt;
			if hasresults then&lt;br /&gt;
				local row = root:tag('tr')&lt;br /&gt;
				local cell = row:tag('th'):addClass((hasevents == false) and 'no-event' or nil)&lt;br /&gt;
				local t = args['event' .. num .. '.' .. k]&lt;br /&gt;
				local border = args['border' .. num .. '.' .. k]  and 'erl-border' or nil&lt;br /&gt;
				if t then&lt;br /&gt;
					cell&lt;br /&gt;
						:addClass('event')&lt;br /&gt;
						:addClass(alignevents)&lt;br /&gt;
						:addClass(border)&lt;br /&gt;
						:wikitext(t)&lt;br /&gt;
				end&lt;br /&gt;
				if args['results' .. num .. '.' .. k] then&lt;br /&gt;
					row:tag('td')&lt;br /&gt;
							:addClass(border)&lt;br /&gt;
							:addClass(alignresults)&lt;br /&gt;
							:attr('colspan', cols - 1)&lt;br /&gt;
							:newline() -- newline required for bullet-points to work&lt;br /&gt;
							:wikitext(args['results' .. num .. '.' .. k])&lt;br /&gt;
				else&lt;br /&gt;
					for j, let in ipairs(lets) do&lt;br /&gt;
						if j &amp;lt; cols then&lt;br /&gt;
							t = args['results' .. num .. '.' .. k .. let]&lt;br /&gt;
							row:tag('td')&lt;br /&gt;
								:addClass(border)&lt;br /&gt;
								:addClass(alignresults)&lt;br /&gt;
								:wikitext(t)&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
		&lt;br /&gt;
	if args.below then&lt;br /&gt;
		root&lt;br /&gt;
			:tag('tr')&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:addClass(args.belowclass)&lt;br /&gt;
					:attr('colspan', cols)&lt;br /&gt;
					:cssText(args.belowstyle)&lt;br /&gt;
					:wikitext(args.below)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.prev or args.next then&lt;br /&gt;
		local row = root:tag('tr'):tag('td')&lt;br /&gt;
			:addClass('sidebar-games-events-prevnext')&lt;br /&gt;
			:attr('colspan', cols)&lt;br /&gt;
				:tag('div')&lt;br /&gt;
		row:tag('div')&lt;br /&gt;
			:addClass('sidebar-games-events-prev')&lt;br /&gt;
			:wikitext(args.prev)&lt;br /&gt;
		row:tag('div')&lt;br /&gt;
			:addClass('sidebar-games-events-next')&lt;br /&gt;
			:wikitext(args.next)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.navbar ~= 'none' and args.navbar ~= 'off' and&lt;br /&gt;
		(args.name or frame:getParent():getTitle():gsub('/sandbox$', '') ~= 'Template:Sidebar games events') then&lt;br /&gt;
		root&lt;br /&gt;
			:tag('tr')&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:addClass('sidebar-games-events-navbar')&lt;br /&gt;
					:attr('colspan', cols)&lt;br /&gt;
					:wikitext(require('Module:Navbar')._navbar{&lt;br /&gt;
						args.name,&lt;br /&gt;
						mini = 1,&lt;br /&gt;
						fontstyle = args.navbarfontstyle&lt;br /&gt;
					})&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if mw.title.getCurrentTitle().namespace == 10 and (args.name ~= mw.title.getCurrentTitle().text) and not (mw.title.getCurrentTitle().text:match('Sidebar games events')) then&lt;br /&gt;
    	root:wikitext(&amp;quot;[[Category:Templates using sidebar games events without correct name]]&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return mw.getCurrentFrame():extensionTag{&lt;br /&gt;
		name = 'templatestyles', args = { src = 'Module:Sidebar games events/styles.css' }&lt;br /&gt;
	} .. tostring(root)&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Zoran</name></author>
	</entry>
</feed>