Modul:Tennisturniere-Damen
Das Modul:Tennisturniere-Damen erzeugt eine Tabelle mit den Turnierergebnissen der wichtigsten Turniere der WTA Tour. Für 1990-2008 sind das die Turniere der Kategorie Tier I, für 2009-2020 die der Kategorien Premier Mandatory und Premier 5 und ab 2021 die der Kategorie WTA-1000. Für die Parameter siehe Vorlage:Tennisturniere-Dameneinzel bzw Vorlage:Tennisturniere-Damendoppel.
Die Funktion TennisturniereDamen ist zuständig für die Erzeugung der Tabelle und der ersten Zeile mit den Links auf die jeweiligen WTA Tour Artikel (wie zB WTA Tour 2021). Daneben wird die Funktion isUsed genutzt, um für jedes Turnier festzustellen, ob es einen Eintrag dafür gibt, oder ob die jeweilge Turnierzeile weggelassen werden kann. Wird die Zeile benötigt (isUsed gibt true zurück), so wird die Funktion getRow genutzt, um die Ergebnisse des Turniers in einer Zeile zusammen zu fassen.
Die Funktion getRow stellt für jedes über die Parameter vorgegebene Jahr fest, ob das Turnier stattgefunden hat (mittels der Funktion wasHeld) und ob es in einer der oben genannten Kategorien war (über die Funktion differentCategory). Gibt wasHeld true zurück und differentCategory false, so wird das über Parameter angegebene Resultat des jeweiligen Turniers in die Zeile eingetragen, anderenfalls entweder n.a. für nicht ausgetragen oder a.K. für andere Kategorie. In der Funktion sind die Links auf die jeweiligen Turnierartikel hard coded. Falls sich an einem Turniernamen mehr als die Jahreszahl ändert, muss diese Funktion also erweitert werden.
Die Funktion differentCategory prüft ob das Turnier im jeweiligen Jahr einer der oben angegebenen Kategorien angehört hat. Die Kategoriezugehörig der Turniere ist in dieser Funktion hard coded.
Die Funktion wasHeld prüft ob das Turnier im jeweilgen Jahr stattgefunden hat. Wann welches Turnier stattgefunden hat ist in dieser Funktion hard coded.
Einsprungpunkte in das Modul sind die Funktionen TennisturniereDamenEinzel bzw TennisturniereDamenDoppel, die dafür sorgen, dass die Links in der Tabelle auf den entsprechenden Wettkampf gesetzt werden.
Änderungsbedarf
neues Turnier wird in die Kategorien aufgenommen
In diesem Fall ist die Funktion TennisturniereDameneinzel zu ergänzen um einen Dreizeiler der Form:
if isUsed(frame, firstYear, lastYear, 'DOH') then table:node(getRow(frame, 'WTA Doha|Doha', '#', 'DOH', firstYear, lastYear)):newline() end
Dabei ist DOH durch das Kürzel des neuen Turniers zu ersetzen und WTA Doha|Doha durch den Übersichtsartikel des neuen Turniers vor der Pipe und seine Bezeichnung in der Tabelle dahinter.
Zusätzlich müssen die Funktionen getRow, differentCategory und wasHeld um elseif Blöcke für das neue Turnier erwaeitert werden.
Turnierartikel wird umbenannt
Wird der Turnierartikel umbenannt (mehr als die Jahreszahl ändert sich), muss der zugehörige elseif Block des Turniers in der Funktion getRow angepasst werden.
Turnier findet nicht (mehr) statt
Der zugehörige elseif Block in der Funktion wasHeld muss angepasst werden.
Turnier rutscht in eine andere Kategorie
Der zugehörige elseif Block in der Funktion differentCategory muss angepasst werden.
Die WTA Tour wird umbenannt
Davon ist nur die erste Zeile der Tabelle betroffen. Diese wird in der Funktion TennisturniereDameneinzel erzeugt. Es muss also die Loop
for year = firstYear, lastYear do head:node(mw.html.create('th'):wikitext('[[WTA Tour ' .. year .. '|' .. year .. ']]')) end
zu zwei (oder mehr) Loops geändert werden.
for year = firstYear, letztesJahrWTATour do head:node(mw.html.create('th'):wikitext('[[WTA Tour ' .. year .. '|' .. year .. ']]')) end for year = erstesJahrNeuerName, lastYear do head:node(mw.html.create('th'):wikitext('[[NeuerName ' .. year .. '|' .. year .. ']]')) end
local p = {}
-- die Funktion getCell erzeugt eine Tabellenzelle
-- Parameter:
-- link: Artikelname
-- result: Resultat der Athletin/des Athleten (zB S oder HF)
-- Rückgabe:
-- ein String mit dem HTML Code der Tabellenzelle
local function getCell(link, result)
local cell
if not result or result == '' then
cell = mw.html.create('td'):wikitext(' ')
else
if result == '-' then
result = '–'
end
if result == 'S' then
cell = mw.html.create('td'):wikitext('[[' .. link .. '|S]]'):css('background-color', '#FFF68F'):css('font-weight', 'bold')
elseif result == 'F' then
cell = mw.html.create('td'):wikitext('[[' .. link .. '|F]]'):css('background-color', '#BFEFFF')
elseif result == 'HF' or result == 'KF' then
cell = mw.html.create('td'):wikitext('[[' .. link .. '|' .. result .. ']]'):css('background-color', '#FFE7BA')
elseif result == ' ' or not result then
cell = mw.html.create('td'):wikitext(' ')
elseif result == 'B' then
cell = mw.html.create('td'):wikitext('[[' .. link .. '|B]]'):css('background-color', '#CC9966')
elseif result == 'Q1' or result == 'Q2' or result == 'Q3' then
cell = mw.html.create('td'):wikitext('[[' .. link .. '/Qualifikation' .. '|' .. result .. ']]')
else
cell = mw.html.create('td'):wikitext('[[' .. link .. '|' .. result .. ']]')
end
end
return cell
end
-- die Funktion wasHeld überprüft ob ein Wettkampf im angegebenen Jahr ausgerichtet wurde
-- Parameter:
-- prefix: das Prefix des Wettkampfs, das in den Vorlagenparametern verwendet wird (zB AUO, FRO)
-- year: Jahr der Ausrichtung
-- Rückgabe:
-- boolean false wenn der Wettkampf nicht stattgefunden hat
-- boolean true wenn er stattgefunden hat
local function wasHeld(prefix, year)
local held = false
if prefix == 'AUO' then
if year ~= 1986 then
held = true
end
elseif prefix == 'FRO' then
held = true
elseif prefix == 'WIM' then
if year ~= 2020 then
held = true
end
elseif prefix == 'USO' then
held = true
elseif prefix == 'WTC' then
if year ~= 2020 then
held = true
end
elseif prefix == 'CHI' then
if year == 1971 or (year > 1972 and year < 1998) or year > 2020 then
held = true
end
elseif prefix == 'BOC' then
if year >= 1989 and year < 1993 then
held = true
end
elseif prefix == 'DOH' then
if year > 2000 and year ~= 2009 and year ~= 2010 then
held = true
end
elseif prefix == 'DUB' then
if year > 2001 then
held = true
end
elseif prefix == 'IND' then
if (year >= 1997 and year <= 2019) or year >= 2021 then
held = true
end
elseif prefix == 'MIA' then
if year == 1973 or (year >= 1984 and year <= 2019) or year >= 2021 then
held = true
end
elseif prefix == 'HHI' then
if year >= 1973 and year <= 2000 then
held = true
end
elseif prefix == 'CHA' then
if (year >= 1986 and year <= 1987) or (year >= 2001 and year <= 2019) or year >= 2021 then
held = true
end
elseif prefix == 'ROM' then
if (year >= 1930 and year <= 1935) or (year >= 1950 and year <= 1985) or year >= 1987 then
held = true
end
elseif prefix == 'MAD' then
if (year >= 1996 and year <= 2003) or (year >= 2009 and year <= 2019) or year >= 2021 then
held = true
end
elseif prefix == 'BER' then
if year == 1979 or (year >= 1981 and year <= 2008) or year >= 2021 then
held = true
end
elseif prefix == 'SDI' then
if year == 1971 or (year >= 1979 and year <= 1982) or (year >= 1984 and year <= 2007) or (year >= 2010 and year <= 2013)then
held = true
end
elseif prefix == 'CIN' then
if (year >= 1899 and year <= 1917) or year == 1920 or (year >= 1922 and year <= 1934) or (year >= 1936 and year <= 1973) or (year >= 1980 and year <= 1982) or year == 1988 or year >= 2004 then
held = true
end
elseif prefix == 'KAN' then
if (year >= 1892 and year <= 1904) or (year >= 1906 and year <= 1914) or (year >= 1918 and year <= 1940) or (year >= 1946 and year <= 2019) or year >= 2021 then
held = true
end
elseif prefix == 'TOK' then
if year >= 1976 then
held = true
end
elseif prefix == 'WUH' then
if (year >= 2014 and year < 2020) or year > 2022 then
held = true
end
elseif prefix == 'MUN' then
if year == 1998 or year == 1999 then
held = true
end
elseif prefix == 'ZUR' then
if year >= 1984 and year <= 2008 then
held = true
end
elseif prefix == 'PHI' then
if year == 1971 or (year >= 1973 and year <= 1979) or (year >= 1991 and year <= 2000) or (year >= 2003 and year <= 2005) then
held = true
end
elseif prefix == 'PEK' then
if (year >= 1994 and year <= 1996) or (year >= 2004 and year <= 2019) or year > 2022 then
held = true
end
elseif prefix == 'MOS' then
if year == 1971 or year == 1975 or year == 1989 or year == 1990 or (year >= 1994 and year <= 2019) or year >= 2021 then
held = true
end
elseif prefix == 'OLY' then
if year >= 1988 and (year % 4) == 0 then
held = true
end
elseif prefix == 'FED' then
if year >= 1963 then
held = true
end
elseif prefix == 'GUA' then
if year >= 2022 then
held = true
end
end
return held
end
-- die Funktion differentCategory prüft ob der Wettkampf in einer für die Tabelle relevanten Kategorie war
-- relevante Kategorien sind:
-- die Grand Slam Turniere
-- 1990-2008 Tier I
-- 2009-2020 Premier Mandatory und Premier 5
-- ab 2021 WTA 1000
-- Parameter:
-- prefix: das Prefix des Wettkampfs, das in den Vorlagenparametern verwendet wird (zB AUO, FRO)
-- year: Jahr der Ausrichtung
-- Rückgabe:
-- boolean true wenn der Wettkampf nicht relevant war
-- boolean false wenn er relevant war
local function differentCategory(prefix, year)
local diff = true
if prefix == 'AUO' or prefix == 'FRO' or prefix == 'WIM' or prefix == 'USO' then
diff = false
elseif prefix == 'WTC' then
diff = false
elseif prefix == 'CHI' then
if year == 1990 then
diff = false
end
elseif prefix == 'BOC' then
if year >= 1991 and year <= 1992 then
diff = false
end
elseif prefix == 'DOH' then
if year == 2008 or (year >= 2012 and year <= 2014) or (year > 2015 and (year % 2) == 0) then
diff = false
end
elseif prefix == 'DUB' then
if (year >= 2009 and year <= 2011) or (year >= 2015 and (year % 2) == 1) then
diff = false
end
elseif prefix == 'IND' then
if (year >= 1997 and year <= 2019) or year >= 2021 then
diff = false
end
elseif prefix == 'MIA' then
if (year >= 1990 and year <= 2019) or year >= 2021 then
diff = false
end
elseif prefix == 'HHI' then
if year >= 1990 and year <= 2000 then
diff = false
end
elseif prefix == 'CHA' then
if year >= 2001 and year <= 2008 then
diff = false
end
elseif prefix == 'ROM' then
if year >= 1990 then
diff = false
end
elseif prefix == 'MAD' then
if year >= 2009 then
diff = false
end
elseif prefix == 'BER' then
if year >= 1990 and year <= 2008 then
diff = false
end
elseif prefix == 'SDI' then
if year >= 2004 and year <= 2007 then
diff = false
end
elseif prefix == 'CIN' then
if year >= 2009 then
diff = false
end
elseif prefix == 'KAN' then
if year >= 1990 then
diff = false
end
elseif prefix == 'TOK' then
if year >= 1993 and year <= 2013 then
diff = false
end
elseif prefix == 'WUH' then
diff = false
elseif prefix == 'MUN' then
if year >= 1998 and year <= 1999 then
diff = false
end
elseif prefix == 'ZUR' then
if year >= 1993 and year <= 2007 then
diff = false
end
elseif prefix == 'PHI' then
if year >= 1993 and year <= 1995 then
diff = false
end
elseif prefix == 'PEK' then
if year >= 2009 then
diff = false
end
elseif prefix == 'MOS' then
if year >= 1997 and year <= 2008 then
diff = false
end
elseif prefix == 'OLY' then
diff = false
elseif prefix == 'FED' then
diff = false
elseif prefix == 'GUA' then
if year > 2021 then
diff = false
end
end
return diff
end
-- die Funktion isUsed prüft ob es für die Athletin/den Athleten
-- im angegebenen Zeitraum für das Turnier mindestens einen gesetzten Parameter gibt
-- Parameter:
-- frame: der aufrufende frame
-- firstYear: erstes Jahr des zu prüfenden Zeitraums
-- lastYear: letztes Jahr des zu prüfenden Zeitraums
-- prefix: Prefix des Wettkampfs (zB AUS für Australien Open oder WIM für Wimbledon Championships)
-- Rückgabe:
-- boolean false wenn in der Vorlage keine Parameter für den Wettkampf gesetzt wurde
-- boolean true wenn der Anwender der Vorlage einen Parameter für den Wettkampf gesetzt hat
local function isUsed(frame, firstYear, lastYear, prefix)
local used=false
local year
local result
for year = firstYear, lastYear
do
if frame:getParent().args[prefix .. year] then
result = frame:getParent().args[prefix .. year] or ' '
if wasHeld(prefix, year) and not differentCategory(prefix, year) and result ~= ' ' then
used = true
break
end
end
end
return used
end
-- die Funktion getRow erzeugt eine Wettkampfzeile der Tabelle
-- Parameter:
-- frame: der aufrufende frame
-- overviewArticle: der Überblicksartikel für den Wettkampf (zB Australian Open)
-- competition: entweder 'einzel' oder 'doppel'
-- bgColor: die Hintergrundfarbe der Zeile
-- prefix: Prefix des Wettkampfs (zB AUS für Australien Open oder WIM für Wimbledon Championships)
-- firstYear: erstes Jahr in der Tabelle
-- lastYear: letztes Jahr in der Tabelle
-- Rückgabe:
-- ein String mit dem HTML Code der Zeile
local function getRow(frame, overviewArticle, competition, bgColor, prefix, firstYear, lastYear)
local row
local sum
local karriere
local year
local lYear
local year2
local result
local colspan
local possibleResults = {}
possibleResults[''] = 0
possibleResults['Q1'] = 1
possibleResults['Q2'] = 2
possibleResults['Q3'] = 3
possibleResults['1'] = 4
possibleResults['2'] = 5
possibleResults['3'] = 6
possibleResults['K3'] = 7
possibleResults['K2'] = 8
possibleResults['K1'] = 9
possibleResults['P2'] = 10
possibleResults['W2'] = 11
possibleResults['PO'] = 12
possibleResults['Q'] = 13
possibleResults['AF'] = 14
possibleResults['VF'] = 15
possibleResults['RR'] = 16
possibleResults['HF'] = 17
possibleResults['B'] = 18
possibleResults['F'] = 19
possibleResults['S'] = 20
karriere = 0
sum = 0
row = mw.html.create('tr'):css('background-color', bgColor)
row:node(mw.html.create('td'):wikitext('[[' .. overviewArticle .. ']]'):css('text-align', 'left'))
lYear = tonumber(lastYear)
year = tonumber(firstYear)
while (year <= lYear) do
colspan = 1
if wasHeld(prefix, year) then
if differentCategory(prefix, year) then
for year2 = year + 1, lYear do
if not wasHeld(prefix, year2) or differentCategory(prefix, year2) then
colspan = colspan + 1
else
break
end
end
cell = mw.html.create('td'):wikitext(' ')
cell:css('font-style', 'italic')
cell:css('background-color', '#e8e9ea')
if colspan > 1 then
cell:attr('colspan', colspan)
end
elseif not frame:getParent().args[prefix .. year] then
cell = mw.html.create('td'):wikitext(' ')
else
result = frame:getParent().args[prefix .. year] or ' '
if prefix == 'AUO' then
cell = getCell('Australian Open ' .. year .. '/Damen' .. competition, result)
elseif prefix == 'FRO' then
cell = getCell('French Open ' .. year .. '/Damen' .. competition, result)
elseif prefix == 'WIM' then
cell = getCell('Wimbledon Championships ' .. year .. '/Damen' .. competition, result)
elseif prefix == 'USO' then
cell = getCell('US Open ' .. year .. '/Damen' .. competition, result)
elseif prefix == 'WTC' then
cell = getCell('WTA Championships ' .. year, result)
elseif prefix == 'CHI' then
cell = getCell('Virginia Slims of Chicago ' .. year, result)
elseif prefix == 'BOC' then
cell = getCell('Virginia Slims of Florida ' .. year, result)
elseif prefix == 'DOH' then
if year < 2022 then
cell = getCell('Qatar Total Open ' .. year, result)
else
cell = getCell('Qatar TotalEnergies Open ' .. year, result)
end
elseif prefix == 'DUB' then
if year == 2009 or year == 2010 then
cell = getCell('Barclays Dubai Tennis Championships ' .. year .. '/Damen', result)
elseif year == 2011 then
cell = getCell('Dubai Duty Free Tennis Championships ' .. year .. '/Damen', result)
else
cell = getCell('Dubai Duty Free Tennis Championships ' .. year .. '/Damen', result)
end
elseif prefix == 'IND' then
if year == 1997 or year == 1998 then
cell = getCell('State Farm Evert Cup ' .. year, result)
elseif year == 1999 then
cell = getCell('Evert Cup 1999', result)
elseif year >= 2000 and year <= 2001 then
cell = getCell('Tennis Masters Series Indian Wells ' .. year .. '/Damen', result)
elseif year >= 2002 and year <= 2008 then
cell = getCell('Pacific Life Open ' .. year .. '/Damen', result)
elseif year >= 2009 then
cell = getCell('BNP Paribas Open ' .. year .. '/Damen', result)
end
elseif prefix == 'MIA' then
if year >= 1988 and year <= 1992 then
cell = getCell('Lipton International Players Championships ' .. year .. '/Damen', result)
elseif year >= 1993 and year <= 1999 then
cell = getCell('The Lipton Championships ' .. year .. '/Damen', result)
elseif year >= 2000 and year <= 2001 then
cell = getCell('Ericsson Open ' .. year .. '/Damen', result)
elseif year >= 2002 and year <= 2006 then
cell = getCell('NASDAQ-100 Open ' .. year .. '/Damen', result)
elseif year >= 2007 and year <= 2012 then
cell = getCell('Sony Ericsson Open ' .. year .. '/Damen', result)
elseif year >= 2013 and year <= 2014 then
cell = getCell('Sony Open Tennis ' .. year .. '/Damen', result)
elseif year >= 2015 then
cell = getCell('Miami Open ' .. year .. '/Damen', result)
end
elseif prefix == 'HHI' then
cell = getCell('Family Circle Cup ' .. year, result)
elseif prefix == 'CHA' then
cell = getCell('Family Circle Cup ' .. year, result)
elseif prefix == 'ROM' then
if year == 1990 then
cell = getCell('Campionati Internazionali d’Italia Peugeot Open Cup 1990/Damen', result)
elseif year == 1991 then
cell = getCell('Peugeot Italian Open 1991/Damen', result)
elseif year == 1992 then
cell = getCell('Campionati Internazionali d’Italia Peugeot Open 1992/Damen', result)
elseif year == 1993 then
cell = getCell('Campionati Internazionali d’Italia 1993/Damen', result)
elseif year == 1994 then
cell = getCell('Mercedes Italian Open 1994/Damen', result)
elseif year == 1995 or year == 1996 then
cell = getCell('Italian Open ' .. year .. '/Damen', result)
elseif year == 1997 or year == 1998 then
cell = getCell('Campionati Internazionali d’Italia ' .. year .. '/Damen', result)
elseif year == 1999 or year == 2000 then
cell = getCell('Italian Open ' .. year .. '/Damen', result)
elseif year == 2001 then
cell = getCell('Tennis Masters Series Rome 2001/Damen', result)
elseif year == 2002 then
cell = getCell('Tennis Masters Roma 2002/Damen', result)
elseif year == 2003 or year == 2004 then
cell = getCell('Telecom Italia Masters ' .. year .. '/Damen', result)
elseif year == 2005 then
cell = getCell('Telecom Italia Masters Roma 2005/Damen', result)
elseif year == 2006 then
cell = getCell('Internazionali d’Italia 2006/Damen', result)
elseif year >= 2007 then
cell = getCell('Internazionali BNL d’Italia ' .. year .. '/Damen', result)
end
elseif prefix == 'MAD' then
if year == 2009 or year == 2010 then
cell = getCell('Mutua Madrileña Madrid Open ' .. year .. '/Damen', result)
else
cell = getCell('Mutua Madrid Open ' .. year .. '/Damen', result)
end
elseif prefix == 'BER' then
if year == 1988 then
cell = getCell('German Open 1988/Damen', result)
elseif year == 1989 then
cell = getCell('Lufthansa Cup 1989', result)
elseif year == 1990 or year == 1991 then
cell = getCell('Lufthansa Cup German Open ' .. year, result)
elseif year == 1992 then
cell = getCell('Lufthansa Cup 1992', result)
elseif year == 1993 or year == 1994 then
cell = getCell('German Open ' .. year .. '/Damen', result)
elseif year >= 1995 and year <= 1997 then
cell = getCell('German Open ' .. year .. ' (Tennis)/Damen', result)
elseif year >= 1998 and year < 2000 then
cell = getCell('German Open ' .. year .. '/Damen', result)
elseif year == 2000 then
cell = getCell('German Open ' .. year, result)
elseif year == 2001 or year == 2002 then
cell = getCell('Eurocard Ladies German Open ' .. year, result)
elseif year == 2003 then
cell = getCell('MasterCard German Open 2003', result)
elseif year == 2004 then
cell = getCell('Ladies German Open 2004', result)
elseif year == 2005 then
cell = getCell('Qatar Total German Open ' .. year, result)
elseif year > 2005 then
cell = getCell('Qatar Telecom German Open ' .. year, result)
end
elseif prefix == 'SDI' then
cell = getCell('Acura Classic ' .. year, result)
elseif prefix == 'CIN' then
if year == 2009 or year == 2010 then
cell = getCell('Western & Southern Financial Group Women’s Open ' .. year, result)
else
cell = getCell('Western & Southern Open ' .. year .. '/Damen', result)
end
elseif prefix == 'KAN' then
if year == 1990 then
cell = getCell('Player’s Ltd. Challenge Canadian Open 1990', result)
elseif year == 1991 then
cell = getCell('Canadian Open 1991/Damen (Tennis)', result)
elseif year == 1992 then
cell = getCell('Matinee Ltd. Canadian Open 1992/Damen', result)
elseif year == 1993 then
cell = getCell('Matinee Ltd. International 1993/Damen', result)
elseif year == 1994 then
cell = getCell('Matinee Ltd. International - Canadian Open 1994/Damen', result)
elseif year >= 1995 and year <= 2000 then
cell = getCell('Du Maurier Open ' .. year .. '/Damen', result)
elseif year >= 2001 and year <= 2019 then
cell = getCell('Rogers Cup ' .. year .. '/Damen', result)
else
cell = getCell('National Bank Open ' .. year .. '/Damen', result)
end
elseif prefix == 'TOK' then
if year == 2001 then
cell = getCell('Pan Pacific Open 2001', result)
else
cell = getCell('Toray Pan Pacific Open ' .. year, result)
end
elseif prefix == 'WUH' then
cell = getCell('Dongfeng Motor Wuhan Open ' .. year, result)
elseif prefix == 'MUN' then
cell = getCell('Compaq Grand Slam Cup ' .. year .. '/Damen', result)
elseif prefix == 'ZUR' then
if year == 1993 then
cell = getCell('Barilla Indoors 1993', result)
elseif year == 1994 then
cell = getCell('European Indoors Zurich 1994', result)
elseif year == 1995 or year == 1996 then
cell = getCell('European Indoors ' .. year, result)
elseif year == 1997 then
cell = getCell('European Indoor Championships 1997', result)
elseif year == 1998 then
cell = getCell('European Championships / Swisscom 1998', result)
elseif year >= 1999 and year <= 2004 then
cell = getCell('Swisscom Challenge ' .. year, result)
else
cell = getCell('Zurich Open ' .. year, result)
end
elseif prefix == 'PHI' then
if year == 1993 or year == 1994 then
cell = getCell('Virginia Slims of Philadelphia ' .. year, result)
elseif year == 1995 then
cell = getCell('Advanta Championships 1995', result)
end
elseif prefix == 'PEK' then
cell = getCell('China Open ' .. year .. ' (Tennis)/Damen', result)
elseif prefix == 'GUA' then
cell = getCell('Guadalajara Open Akron ' .. year, result)
elseif prefix == 'MOS' then
cell = getCell('Kremlin Cup ' .. year .. '/Damen', result)
elseif prefix == 'OLY' then
cell = getCell('Olympische Sommerspiele ' .. year .. '/Tennis/Damen' .. competition, result)
elseif prefix == 'FED' then
if year >= 1982 and year <= 1994 then
cell = getCell('Federation Cup ' .. year, result)
elseif year >= 1995 and year < 2020 then
cell = getCell('Fed Cup ' .. year, result)
elseif year == 2020 then
if year < lYear then
if result == ' ' or not result or result == '' or result == '-' or result == '–' then
result = frame:getParent().args['WTC2021'] or ' '
end
cell = getCell('Billie Jean King Cup 2020/21', result)
cell:attr('colspan', 2)
year = year + 1
else
cell = getCell('Billie Jean King Cup 2020/21', result)
end
elseif year == 2021 then
cell = getCell('Billie Jean King Cup 2020/21', result)
elseif year > 2021 then
cell = getCell('Billie Jean King Cup ' .. year, result)
end
end
if possibleResults[result] ~= null then
if possibleResults[result] == karriere then
sum = sum + 1
elseif possibleResults[result] > karriere then
karriere = possibleResults[result]
sum = 1
end
end
end
else
for year2 = year + 1, lYear do
if not wasHeld(prefix, year2) or differentCategory(prefix, year2) then
colspan = colspan + 1
else
break
end
end
cell = mw.html.create('td'):wikitext(' ')
cell:css('font-style', 'italic')
cell:css('background-color', '#e8e9ea')
if colspan > 1 then
cell:attr('colspan', colspan)
end
end
row:node(cell)
year = year + colspan
end
if karriere == 0 then
row:node(mw.html.create('td'):wikitext('—'))
else
for k,v in pairs(possibleResults) do
if v == karriere then
if k == 'S' then
row:node(mw.html.create('td'):wikitext(sum .. ' × S'):css('background-color', '#FFF68F'):css('font-weight', 'bold'))
elseif k == 'F' then
row:node(mw.html.create('td'):wikitext(sum .. ' × F'):css('background-color', '#BFEFFF'))
elseif k == 'HF' or result == 'KF' then
row:node(mw.html.create('td'):wikitext(sum .. ' × ' .. k):css('background-color', '#FFE7BA'))
elseif k == 'B' then
row:node(mw.html.create('td'):wikitext(sum .. ' × B'):css('background-color', '#CC9966'))
elseif k == '1' or k == '2' or k == '3' then
row:node(mw.html.create('td'):wikitext(sum .. ' × ' .. k .. 'R'))
else
row:node(mw.html.create('td'):wikitext(sum .. ' × ' .. k))
end
break
end
end
end
return row
end
-- die Vorlage TennisturniereDamen erzeugt eine Tabelle mit den Turnierergebnissen der
-- wichtigsten Tennisturniere.
-- Parameter:
-- frame: der aufrufende frame
-- competition: entweder 'einzel' oder 'doppel'
-- tournaments: welche Turniere eingeschlossen werden sollen
-- 'all' alle Turniere
-- 'gs' nur die Grand Slam Turniere
-- 'gswtc' Grand Slams und WTC
-- 'gsoly' Grand Slams und Olympische Spiele
-- 'gswtcoly' Grand Slams, WTC und Olympische Spiele
-- Die wichtigsten Turniere sind:
-- die Grand Slam Turniere
-- die Olympischen Spiele
-- der Fed Cup bzw Billie Jean King Cup
-- 1990-2008 Kategorie Tier I
-- 2009-2020 Kategorie Premier Mandatory und Premier 5
-- ab 2021 Kategorie WTA 1000
-- die Vorlage muss die folgenden Parameter haben:
-- firstYear: das erste Jahr für das Tabelleneinträge erzeugt werden sollen (vierstellig)
-- lastYear: das letzte Jahr für das Tabelleneinträge erzeugt werden sollen (vierstellig)
-- optional kommen folgende Parameter dazu
-- AUS gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die Australian Open (zB AUS2016=1)
-- FRO gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die French Open (zB FRO2016=2)
-- WIM gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die Wimbledon Championships (zB WIM2016=AF)
-- USO gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die US Open (zB USO2016=VF)
-- WTC gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Tour Championships (zB WTC2016=S)
-- CHI gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Chicago (zB CHI2016=HF)
-- BOC gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Boca Raton (zB BOC2016=3)
-- DOH gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Doha (zB DOH2016= )
-- DUB gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Dubai (zB DUB2016=)
-- IND gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Indian Wells
-- MIA gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Miami
-- HHI gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Hilton Head Island
-- CHA gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Charleston
-- ROM gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Rom
-- MAD gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Madrid
-- BER gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Berlin
-- SDI gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA San Diego
-- CIN gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Cincinnati
-- KAN gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Kanada
-- TOK gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Tokio
-- WUH gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Wuhan
-- MUN gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA München
-- ZUR gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Zürich
-- PHI gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Philadelphia
-- PEK gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Peking
-- GUA gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Guadalajara
-- MOS gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die WTA Moskau
-- OLY gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die Olympischen Spiele
-- FED gefolgt vom Jahr für das Ergebnis im jeweiligen Jahr für die Fed Cup
local function TennisturniereDamen(frame, competition, tournaments)
local firstYear = frame:getParent().args['ErstesJahr']
local lastYear = frame:getParent().args['LetztesJahr']
local result
local table
local head
local row
local year
if not firstYear then
for year=1877, tonumber(os.date('%Y')) do
for k,v in pairs({ "AUO", "FRO", "WIM", "USO", "WTC", "DOH", "DUB", "IND", "MIA", "ROM", "MAD", "CIN", "KAN", "WUH", "PEK", "GUA", "CHI", "BOC", "HHI", "CHA", "BER", "SDI", "TOK", "MUN", "ZUR", "PHI", "MOS", "FED", "OLY" }) do
if frame:getParent().args[v..year] then
firstYear = year
break
end
end
if firstYear then
break
end
end
if not firstYear then
return '\n\nKein gültiger Parameter gefunden!\n\n'
end
end
if not lastYear then
lastYear = firstYear
for year=tonumber(os.date('%Y')), firstYear, -1 do
for k,v in pairs({ "AUO", "FRO", "WIM", "USO", "WTC", "DOH", "DUB", "IND", "MIA", "ROM", "MAD", "CIN", "KAN", "WUH", "PEK", "GUA", "CHI", "BOC", "HHI", "CHA", "BER", "SDI", "TOK", "MUN", "ZUR", "PHI", "MOS", "FED", "OLY" }) do
if frame:getParent().args[v..year] then
lastYear = year
break
end
end
if lastYear > firstYear then
break
end
end
end
if competition ~= 'einzel' and competition ~= 'doppel' then
return 'Der Parameter competition muss entweder "einzel" oder "doppel" sein'
end
-- wikitable anlegen
table = mw.html.create('table'):addClass('wikitable'):css('text-align', 'center'):css('font-size', '90%')
-- Tabellenheader mit Links auf die zugehörigen 'WTA Tour' Artikel anlegen
head = mw.html.create('tr')
head:node(mw.html.create('th'):wikitext('Turnier'))
for year = firstYear, lastYear
do
head:node(mw.html.create('th'):wikitext('[[WTA Tour ' .. year .. '|' .. year .. ']]'))
end
head:node(mw.html.create('th'):wikitext('Karriere'))
-- Header in die Tabelle einfügen
table:node(head):newline()
-- Zeile Australian Open
if isUsed(frame, firstYear, lastYear, 'AUO') then
if tournaments == 'all' then
table:node(getRow(frame, 'Australian Open', competition, '#E5D1CB', 'AUO', firstYear, lastYear)):newline()
else
table:node(getRow(frame, 'Australian Open', competition, '#', 'AUO', firstYear, lastYear)):newline()
end
end
-- Zeile French Open
if isUsed(frame, firstYear, lastYear, 'FRO') then
if tournaments == 'all' then
table:node(getRow(frame, 'French Open', competition, '#E5D1CB', 'FRO', firstYear, lastYear)):newline()
else
table:node(getRow(frame, 'French Open', competition, '#', 'FRO', firstYear, lastYear)):newline()
end
end
-- Zeile Wimbledon Championships
if isUsed(frame, firstYear, lastYear, 'WIM') then
if tournaments == 'all' then
table:node(getRow(frame, 'Wimbledon Championships|Wimbledon', competition, '#E5D1CB', 'WIM', firstYear, lastYear)):newline()
else
table:node(getRow(frame, 'Wimbledon Championships|Wimbledon', competition, '#', 'WIM', firstYear, lastYear)):newline()
end
end
-- Zeile US Open
if isUsed(frame, firstYear, lastYear, 'USO') then
if tournaments == 'all' then
table:node(getRow(frame, 'US Open', competition, '#E5D1CB', 'USO', firstYear, lastYear)):newline()
else
table:node(getRow(frame, 'US Open', competition, '#', 'USO', firstYear, lastYear)):newline()
end
end
if tournaments == 'all' or tournaments == 'gswtc' or tournaments == 'gswtcoly' then
-- Zeile WTA Tour Championships
if isUsed(frame, firstYear, lastYear, 'WTC') then
-- das erreicht, dass die Namen der Übersichtsartikel einzeilig dargestellt werden
if tournaments == 'all' then
table:node(getRow(frame, 'WTA Tour Championships|Tour Championships', competition, '#FFFFCC', 'WTC', firstYear, lastYear)):newline()
else
table:node(getRow(frame, 'WTA Tour Championships|Tour Championships', competition, '#E4F8E8', 'WTC', firstYear, lastYear)):newline()
end
end
end
if tournaments == 'all' then
-- Zeile WTA Chicago
if isUsed(frame, firstYear, lastYear, 'CHI') then
table:node(getRow(frame, 'WTA Chicago|Chicago', competition, '#', 'CHI', firstYear, lastYear)):newline()
end
-- Zeile WTA Boca Raton
if isUsed(frame, firstYear, lastYear, 'BOC') then
table:node(getRow(frame, 'WTA Boca Raton|Boca Raton', competition, '#', 'BOC', firstYear, lastYear)):newline()
end
-- Zeile WTA Doha
if isUsed(frame, firstYear, lastYear, 'DOH') then
table:node(getRow(frame, 'WTA Doha|Doha', competition, '#', 'DOH', firstYear, lastYear)):newline()
end
-- Zeile WTA Dubai
if isUsed(frame, firstYear, lastYear, 'DUB') then
table:node(getRow(frame, 'WTA Dubai|Dubai', competition, '#', 'DUB', firstYear, lastYear)):newline()
end
-- Zeile WTA Indian Wells
if isUsed(frame, firstYear, lastYear, 'IND') then
table:node(getRow(frame, 'WTA Indian Wells|Indian Wells', competition, '#', 'IND', firstYear, lastYear)):newline()
end
-- Zeile WTA Miami
if isUsed(frame, firstYear, lastYear, 'MIA') then
table:node(getRow(frame, 'WTA Miami|Miami', competition, '#', 'MIA', firstYear, lastYear)):newline()
end
-- Zeile WTA Hilton Head Island
if isUsed(frame, firstYear, lastYear, 'HHI') then
table:node(getRow(frame, 'WTA Hilton Head Island|Hilton Head Island', competition, '#', 'HHI', firstYear, lastYear)):newline()
end
-- Zeile WTA Charleston
if isUsed(frame, firstYear, lastYear, 'CHA') then
table:node(getRow(frame, 'WTA Charleston|Charleston', competition, '#', 'CHA', firstYear, lastYear)):newline()
end
-- Zeile WTA Rom
if isUsed(frame, firstYear, lastYear, 'ROM') then
table:node(getRow(frame, 'WTA Rom|Rom', competition, '#', 'ROM', firstYear, lastYear)):newline()
end
-- Zeile WTA Madrid
if isUsed(frame, firstYear, lastYear, 'MAD') then
table:node(getRow(frame, 'WTA Madrid|Madrid', competition, '#', 'MAD', firstYear, lastYear)):newline()
end
-- Zeile WTA Berlin
if isUsed(frame, firstYear, lastYear, 'BER') then
table:node(getRow(frame, 'WTA Berlin|Berlin', competition, '#', 'BER', firstYear, lastYear)):newline()
end
-- Zeile WTA San Diego
if isUsed(frame, firstYear, lastYear, 'SDI') then
table:node(getRow(frame, 'WTA San Diego|San Diego', competition, '#', 'SDI', firstYear, lastYear)):newline()
end
-- Zeile WTA Cincinnati
if isUsed(frame, firstYear, lastYear, 'CIN') then
table:node(getRow(frame, 'WTA Cincinnati|Cincinnati', competition, '#', 'CIN', firstYear, lastYear)):newline()
end
-- Zeile WTA Kanada
if isUsed(frame, firstYear, lastYear, 'KAN') then
table:node(getRow(frame, 'WTA Kanada|Kanada', competition, '#', 'KAN', firstYear, lastYear)):newline()
end
-- Zeile WTA Tokio
if isUsed(frame, firstYear, lastYear, 'TOK') then
table:node(getRow(frame, 'WTA Tokio|Tokio', competition, '#', 'TOK', firstYear, lastYear)):newline()
end
-- Zeile WTA Wuhan
if isUsed(frame, firstYear, lastYear, 'WUH') then
table:node(getRow(frame, 'WTA Wuhan|Wuhan', competition, '#', 'WUH', firstYear, lastYear)):newline()
end
-- Zeile WTA München
if isUsed(frame, firstYear, lastYear, 'MUN') then
table:node(getRow(frame, 'WTA München|München', competition, '#', 'MUN', firstYear, lastYear)):newline()
end
-- Zeile WTA Zürich
if isUsed(frame, firstYear, lastYear, 'ZUR') then
table:node(getRow(frame, 'WTA Zürich|Zürich', competition, '#', 'ZUR', firstYear, lastYear)):newline()
end
-- Zeile WTA Philadelphia
if isUsed(frame, firstYear, lastYear, 'PHI') then
table:node(getRow(frame, 'WTA Philadelphia|Philadelphia', competition, '#', 'PHI', firstYear, lastYear)):newline()
end
-- Zeile WTA Peking
if isUsed(frame, firstYear, lastYear, 'PEK') then
table:node(getRow(frame, 'WTA Peking|Peking', competition, '#', 'PEK', firstYear, lastYear)):newline()
end
-- Zeile WTA Moskau
if isUsed(frame, firstYear, lastYear, 'MOS') then
table:node(getRow(frame, 'WTA Moskau|Moskau', competition, '#', 'MOS', firstYear, lastYear)):newline()
end
-- Zeile WTA Guadalajara
if isUsed(frame, firstYear, lastYear, 'GUA') then
table:node(getRow(frame, 'WTA Guadalajara|Guadalajara', competition, '#', 'GUA', firstYear, lastYear)):newline()
end
end
if tournaments == 'all' or tournaments == 'gsoly' or tournaments == 'gswtcoly' then
-- Zeile Olympische Spiele
if isUsed(frame, firstYear, lastYear, 'OLY') then
table:node(getRow(frame, 'Tennis bei den Olympischen Spielen|Olympische Spiele', competition, '#FFD700', 'OLY', firstYear, lastYear)):newline()
end
end
if tournaments == 'all' then
-- Zeile Fed Cup
if isUsed(frame, firstYear, lastYear, 'FED') then
table:node(getRow(frame, 'Fed Cup', competition, '#C2B280', 'FED', firstYear, lastYear)):newline()
end
end
-- komplette Tabelle als String zurückgeben
return tostring(table)
end
function p.TennisturniereDamenEinzel(frame)
return TennisturniereDamen(frame, 'einzel', 'all')
end
function p.TennisturniereDamenDoppel(frame)
return TennisturniereDamen(frame, 'doppel', 'all')
end
function p.DamenEinzelGrandSlam(frame)
if frame:getParent().args['WTC'] == '+' then
if frame:getParent().args['OLY'] == '+' then
return TennisturniereDamen(frame, 'einzel', 'gswtcoly')
else
return TennisturniereDamen(frame, 'einzel', 'gswtc')
end
elseif frame:getParent().args['OLY'] == '+' then
return TennisturniereDamen(frame, 'einzel', 'gsoly')
else
return TennisturniereDamen(frame, 'einzel', 'gs')
end
end
function p.DamenDoppelGrandSlam(frame)
if frame:getParent().args['WTC'] == '+' then
if frame:getParent().args['OLY'] == '+' then
return TennisturniereDamen(frame, 'doppel', 'gswtcoly')
else
return TennisturniereDamen(frame, 'doppel', 'gswtc')
end
elseif frame:getParent().args['OLY'] == '+' then
return TennisturniereDamen(frame, 'doppel', 'gsoly')
else
return TennisturniereDamen(frame, 'doppel', 'gs')
end
end
return p