Difference between revisions of "Module:Tennis events nav"

From blackwiki
Jump to navigation Jump to search
blackwiki>Izkala
(t)
blackwiki>Izkala
(Finishing off)
Line 7: Line 7:
 
local STYLES = {
 
local STYLES = {
 
["singlesdoubles"] = {[=[|-
 
["singlesdoubles"] = {[=[|-
| [[{prefix} {year} {tournament} – Singles|singles]]
+
| [[{prefix} {year} {tournament} – Singles|Singles]]
| [[{prefix} {year} {tournament} – Doubles|doubles]]]=]},
+
| [[{prefix} {year} {tournamentd} – Doubles|Doubles]]]=]},
 
["1"] = "singlesdoubles",
 
["1"] = "singlesdoubles",
 
["men"] = "singlesdoubles",
 
["men"] = "singlesdoubles",
Line 15: Line 15:
 
["womens"] = "singlesdoubles",
 
["womens"] = "singlesdoubles",
 
["risingstarsinvitational"] = {[=[|-
 
["risingstarsinvitational"] = {[=[|-
| [[{prefix} {year} {tournament} – Singles|singles]]
+
| [[{prefix} {year} {tournament} – Singles|Singles]]
| [[{prefix} {year} {tournament} – Doubles|doubles]]
+
| [[{prefix} {year} {tournamentd} – Doubles|Doubles]]
 
|-
 
|-
 
| colspan="2" | [[{prefix} {year} {tournament} – Rising Stars Invitational|Rising Stars]]]=]},
 
| colspan="2" | [[{prefix} {year} {tournament} – Rising Stars Invitational|Rising Stars]]]=]},
Line 23: Line 23:
 
| [[{prefix} {year} {tournament} – Men's Singles|men]]
 
| [[{prefix} {year} {tournament} – Men's Singles|men]]
 
| [[{prefix} {year} {tournament} – Women's Singles|women]]
 
| [[{prefix} {year} {tournament} – Women's Singles|women]]
| [[{prefix} {year} {tournament} – Boys' Singles|men]]
+
| [[{prefix} {year} {tournament} – Boys' Singles|boys]]
| [[{prefix} {year} {tournament} – Girls' Singles|women]]
+
| [[{prefix} {year} {tournament} – Girls' Singles|girls]]
 
|-
 
|-
 
! scope="col" style="text-align: right;" | Doubles
 
! scope="col" style="text-align: right;" | Doubles
Line 39: Line 39:
 
| [[{prefix} {year} {tournament} – Women's Doubles|women]]
 
| [[{prefix} {year} {tournament} – Women's Doubles|women]]
 
| [[{prefix} {year} {tournament} – Mixed Doubles|mixed]]]=]},
 
| [[{prefix} {year} {tournament} – Mixed Doubles|mixed]]]=]},
 +
["doublestwotourneys"] = {[=[|-
 +
! scope="col" style="text-align: right;" | Singles
 +
| [[{prefix} {year} {tournament} – Singles|men]]
 +
| [[{prefix} {year} {tournamentd} – Singles|women]]
 +
|-
 +
! scope="col" style="text-align: right;" | Doubles
 +
| [[{prefix} {year} {tournament} – Doubles|men]]
 +
| [[{prefix} {year} {tournamentd} – Doubles|women]]]=]},
 
[""] = {[=[|-
 
[""] = {[=[|-
 
! scope="col" style="text-align: right;" | Singles
 
! scope="col" style="text-align: right;" | Singles
Line 49: Line 57:
  
 
local function pullItem(value, default)
 
local function pullItem(value, default)
value = value and string.gsub(value, "%A", "")
+
value = value and string.lower(string.gsub(value, "%A", ""))
 
if type(STYLES[value]) == "string" then
 
if type(STYLES[value]) == "string" then
 
value = STYLES[value]
 
value = STYLES[value]
Line 61: Line 69:
  
 
function p._main(args)
 
function p._main(args)
 +
local default = ""
 +
if args[2] ~= args[3] then
 +
default = "doublestwotourneys"
 +
end
 +
 
print('{| style="border-spacing: 0.5em 0; margin: auto; ' ..
 
print('{| style="border-spacing: 0.5em 0; margin: auto; ' ..
 
  'text-align: center;"')
 
  'text-align: center;"')
print(string.gsub(pullItem(args.type, ""), "{(%a+)}",
+
print(string.gsub(pullItem(args.type, default), "{(%a+)}",
{prefix = args.prefix or "", year = args[1], tournament = args[2]}))
+
{prefix = args.prefix or "", year = args[1], tournament = args[2],
 +
tournamentd = args[3] or args[2]}))
 
print("|}")
 
print("|}")
 
return getBuffer("\n")
 
return getBuffer("\n")

Revision as of 12:40, 7 July 2015

This module provides navigation between tennis tournament events; it is a component of {{Infobox tennis tournament event}}.



-- This module implements [[Template:Infobox tennis tournament event/events]].
-- [SublimeLinter luacheck-globals:mw]

local p = {}
local getBuffer, print, _ = require('Module:OutputBuffer')()

local STYLES = {
	["singlesdoubles"] = {[=[|-
| [[{prefix} {year} {tournament} – Singles|Singles]]
| [[{prefix} {year} {tournamentd} – Doubles|Doubles]]]=]},
		["1"] = "singlesdoubles",
		["men"] = "singlesdoubles",
		["mens"] = "singlesdoubles",
		["women"] = "singlesdoubles",
		["womens"] = "singlesdoubles",
	["risingstarsinvitational"] = {[=[|-
| [[{prefix} {year} {tournament} – Singles|Singles]]
| [[{prefix} {year} {tournamentd} – Doubles|Doubles]]
|-
| colspan="2" | [[{prefix} {year} {tournament} – Rising Stars Invitational|Rising Stars]]]=]},
	["boysgirlssingles"] = {[=[|-
! scope="col" style="text-align: right;" | Singles
| [[{prefix} {year} {tournament} – Men's Singles|men]]
| [[{prefix} {year} {tournament} – Women's Singles|women]]
| [[{prefix} {year} {tournament} – Boys' Singles|boys]]
| [[{prefix} {year} {tournament} – Girls' Singles|girls]]
|-
! scope="col" style="text-align: right;" | Doubles
| [[{prefix} {year} {tournament} – Men's Doubles|men]]
| [[{prefix} {year} {tournament} – Women's Doubles|women]]]=]},
		["miamimasters"] = "boysgirlssingles",
	["mixeddoubles"] = {[=[|-
! scope="col" style="text-align: right;" | Singles
| [[{prefix} {year} {tournament} – Men's Singles|men]]
| [[{prefix} {year} {tournament} – Women's Singles|women]]
|-
! scope="col" style="text-align: right;" | Doubles
| [[{prefix} {year} {tournament} – Men's Doubles|men]]
| [[{prefix} {year} {tournament} – Women's Doubles|women]]
| [[{prefix} {year} {tournament} – Mixed Doubles|mixed]]]=]},
	["doublestwotourneys"] = {[=[|-
! scope="col" style="text-align: right;" | Singles
| [[{prefix} {year} {tournament} – Singles|men]]
| [[{prefix} {year} {tournamentd} – Singles|women]]
|-
! scope="col" style="text-align: right;" | Doubles
| [[{prefix} {year} {tournament} – Doubles|men]]
| [[{prefix} {year} {tournamentd} – Doubles|women]]]=]},
	[""] = {[=[|-
! scope="col" style="text-align: right;" | Singles
| [[{prefix} {year} {tournament} – Men's Singles|men]]
| [[{prefix} {year} {tournament} – Women's Singles|women]]
|-
! scope="col" style="text-align: right;" | Doubles
| [[{prefix} {year} {tournament} – Men's Doubles|men]]
| [[{prefix} {year} {tournament} – Women's Doubles|women]]]=]}}

local function pullItem(value, default)
	value = value and string.lower(string.gsub(value, "%A", ""))
	if type(STYLES[value]) == "string" then
		value = STYLES[value]
	end
	if STYLES[value] then
		return STYLES[value][1]
	else
		return STYLES[default][1]
	end
end

function p._main(args)
	local default = ""
	if args[2] ~= args[3] then
		default = "doublestwotourneys"
	end

	print('{| style="border-spacing: 0.5em 0; margin: auto; ' ..
		  'text-align: center;"')
	print(string.gsub(pullItem(args.type, default), "{(%a+)}",
		{prefix = args.prefix or "", year = args[1], tournament = args[2],
		 tournamentd = args[3] or args[2]}))
	print("|}")
	return getBuffer("\n")
end

function p.main(frame)
	local args = require("Module:Arguments").getArgs(frame)
	return p._main(args)
end

return p