Module:SportsRankings
Module om sport rankings van (landen)ploegen in verschillende sporten weer te geven. De data die gebruikt wordt voor de verschillende rankings staat in aparte module subpagina's waardoor deze per ranking geactualiseerd kan worden.
De module genereert ranking informatie in twee hoofdvormen, te weten "item" of "lijst" (tabel) achtige informatie.
Huidige data subpagina's
bewerkenSjablonen die gebruik maken van de module
bewerkenSjablonen die gebruik maken van de "item" functionaliteit
bewerkenSjablonen die gebruik maken van de "lijst" (tabel) functionaliteit
bewerken- Nog geen
Algeme toelichting bij de parameters
bewerkenVerder op deze pagina wordt gesproken over 2 soorten parameters, te weten:
- positieparameter → Dit is een parameter waarbij het van belang is als hoeveelste parameter deze wordt meegegeven en alleen van de vorm "waarde" is. Wanneer hieronder een parameter als positieparameter wordt aangemerkt, staat bij deze parameter een integer (positie) vermeldt. E.g. de positieparameter met daarbij als getal 3, moet als 3e parameter (de waarde na het 3e "|" teken) meegegeven worden.
- naamparameter → Bij deze parameters is het niet van belang als hoeveelste ze worden meegegeven, met die beperking dat ze niet op een positie mogen staan waar een positieparameter wordt verwacht. Ze zijn van de vorm "naam=waarde".
Bij de aanroep van de module worden als eerste de positieparameters meegegeven in een voorgeschreven volgorde, gevolgd door de naamparameters in willekeurige volgorde. De positieparameters zijn dan in beginsel verplicht en de naamparameters optioneel.
Gebruik
bewerken"Item" gericht
bewerkenFormaat
bewerken{{#invoke:SportsRankings|<item functie>|<ranking>|<land>|[mdy]}}
Parameters
bewerkenParameter | Soort | Omschrijving | Type | Status | Opmerking | |
---|---|---|---|---|---|---|
item functie | 1 | positioneel | Er zijn 3 "item" gerichte functionaliteiten, te weten:
|
string | verplicht | Beperkt zich tot één van de drie gedefinieerde "item" functionaliteiten. Niet alle functionaliteiten hoeven te zijn geïmplementeerd. Dit is afhankelijk van de beschikbare informatie bij de bron. Welke van deze 3 functiomaliteiten is geimplementeerd is te zien in het databestand van de ranking. Indien daar een lijst "data.<functionaliteit>rankings" aanwezig is, dan is de desbetreffende functionaliteit geïmplementeerd. |
ranking | 2 | positioneel | De naam van de te gebruiken ranking zoals aangegeven bij "Huidige data subpagina's" | string | verplicht | Beperkt zich tot één van de aanwezige datasets |
team | 3 | positioneel | De naam van de ploeg waarvoor we ranking informatie willen weten of de voor de ploeg gehanteerde afkorting in de desbetreffende ranking, e.g. de FIFA-code | string | verplicht | |
mdy | |mdy=
|
naam | Standaard wordt in de ranking informatie het datum format "dmy" gebruikt. Met deze parameter kan voor het datum formaat "mdy" worden gekozen. | string | optioneel | Elke waarde (dus niet leeg) voldoet, echter omwille van duidelijkheid wordt aangeraden on "ja" of "yes" te gebruiken. |
"Lijst" gericht
bewerken"list"
bewerkenFormaat
bewerken{{#invoke:SportsRankings|<lijst functie>|<ranking>|[startpositie]|[eindpositie]|[mdy]|[select]|[caption]|[header1]|[header2]|[header3]|[header4]|[header5]|[footer1]|[footer2]|[footer3]|[footer4]|[footer5]|[style]|[selection_header]|[rank_header]|[change_header]|[team_header]|[points_header]}}
of
{{#invoke:SportsRankings|<lijst functie>|<ranking>|[startpositie]|[eindpositie]|[mdy]|[selecteer]|[uitleg]|[koptekst1]|[koptekst2]|[koptekst3]|[koptekst4]|[koptekst5]|[voettekst1]|[voettekst2]|[voettekst3]|[voettekst4]|[voettekst5]|[style]|[selectie_kop]|[rang_kop]|[poswijz_kop]|[team_kop]|[punten_kop]}}
Parameters
bewerkenParameter | Soort | Omschrijving | Type | Status | Opmerking | |
---|---|---|---|---|---|---|
Lijst functie | 1 | positioneel | list → genereert een lijst (tabel) van ploegen uit de ranking van beginpositie (standaard 1) t/m eindpositie (standaard 10). | string | verplicht | Hier altijd de functionaliteit "list". |
Ranking | 2 | positioneel | De naam van de te gebruiken ranking zoals aangegeven bij "Huidige data subpagina's" | string | verplicht | Beperkt zich tot één van de aanwezige datasets |
beginpositie | 3 | positioneel | De startpositie in de ranking van de landen die in de lijst moet worden opgenomen. | integer | verplicht/(optioneel) | Een "lege" waarde betekent ongedefinieerd. Indien niet gedefinieerd, wordt standaard de waarde 1 gehanteerd. Als de parameter leeg is, en ook bij de parameter "eindpositie" een lege waarde wordt gekozen, en verder ook geen enkele naamparemeter wordt gebruikt (de aanroep van de module eindigt dus op "||}}"), dan krijgt deze parameter het karakter van een optionele parameter en kan in zijn geheel worden weggelaten. |
eindpositie | 4 | positioneel | De eindpositie in de ranking van de landen die in de lijst moet worden opgenomen. | integer | optioneel | Een "lege" waarde betekent ongedefinieerd. Indien niet gedefinieerd, wordt standaard de waarde 10 gehanteerd. Als de parameter leeg is, en ook geen enkele naamparemeter wordt gebruikt (de aanroep van de module eindigt dus op "|}}"), dan krijgt deze parameter het karakter van een optionele parameter en kan in zijn geheel worden weggelaten. |
"list2"
bewerkenFormaat
bewerken{{#invoke:SportsRankings|<lijst functie>|<ranking>|<ploeg>|[positiebreedte]|[mdy]|[select]|[caption]|[header1]|[header2]|[header3]|[header4]|[header5]|[footer1]|[footer2]|[footer3]|[footer4]|[footer5]|[style]|[selection_header]|[rank_header]|[change_header]|[team_header]|[points_header]}}
of
{{#invoke:SportsRankings|<lijst functie>|<ranking>|<ploeg>|[positiebreedte]|[mdy]|[selecteer]|[uitleg]|[koptekst1]|[koptekst2]|[koptekst3]|[koptekst4]|[koptekst5]|[voettekst1]|[voettekst2]|[voettekst3]|[voettekst4]|[voettekst5]|[style]|[selectie_kop]|[rang_kop]|[poswijz_kop]|[team_kop]|[punten_kop]}}
Parameters
bewerkenParameter | Soort | Omschrijving | Type | Status | Opmerking | |
---|---|---|---|---|---|---|
Lijst functie | 1 | positioneel | list2 → genereert een lijst (tabel) van ploegen uit de ranking vanaf de positie van de aangegeven ploeg - positiebreedte (standaard 2) t/m de positie van de aangegeven ploeg + positiebreedte (standaard 2). | string | verplicht | Hier altijd de functionaliteit "list2". |
Ranking | 2 | positioneel | De naam van de te gebruiken ranking zoals aangegeven bij "Huidige data subpagina's" | string | verplicht | Beperkt zich tot één van de aanwezige datasets |
ploeg | 3 | positioneel | De naam van de ploeg waarvoor we ranking informatie willen weten of de voor de ploeg gehanteerde afkorting in de desbetreffende ranking, e.g. de FIFA-code opgenomen. | string | verplicht | |
positiebreedte | 4 | positioneel | Waarde die aangeeft hoeveel posities voor en na de positie van de aangegeven ploeg in de lijst (tabel) moeten worden opgenomen. Het aantal getoonde ploegen is dus 2×<waarde>+1. | integer | verplicht/(optioneel) | Een "lege" waarde betekent ongedefinieerd. Indien niet gedefinieerd, wordt standaard de waarde 2 gehanteerd. Als de parameter leeg is, en ook geen enkele naamparemeter wordt gebruikt (de aanroep van de module eindigt dus op "|}}"), dan krijgt deze parameter het karakter van een optionele parameter en kan in zijn geheel worden weggelaten. |
Gemeenschappelijke optionele naamparameters "list" en "list2"
bewerkenVoor nagenoeg al deze naamparameters bestaat zowel een Nederlandse en een Engelse variant.
Parameter | Soort | Omschrijving | Type | Status | Opmerking | |
---|---|---|---|---|---|---|
mdy | |mdy=
|
naam | Standaard wordt in de ranking informatie het datum format "dmy" gebruikt. Met deze parameter kan voor het datum formaat "mdy" worden gekozen. | string | optioneel | Elke waarde voldoet, echter omwille van duidelijkheid wordt aangeraden on "ja" of "yes" te gebruiken. |
select of selecteer |
|select= of |selecteer=
|
naam | Hiermee is het mogelijk om de lijst tot een bepaalde groep te beperken. Dit kan een vorgedefinieerde groep zijn of een zelfgedefinieerde groep. De voorgedefinieerde groepen zijn te zien in het databestand dat bij de gekozen ranking hoort. de ranking. Deze zijn te vinden in de lijst "data.groups". Zelfgedefineerde groepen zijn van de vorm "<groepsnaam>:<landenlijst", waarbij "groepsnaam een vrij te kiezen naam is, en "landenlijst" een aantal landsnamen of landscodes gescheiden door ","'s (komma's). | string | optioneel | Voor FIFA-rankings zijn dit de voorgedefinieerde groepen de namen van de 6 confederaties, te weten "AFC", "CAF", "CONCACAF", "CONMEBO", "OFC" of "UEFA", waarbij elke confederatoiegroep bestaat uit een lijst van landen aangesloten bij doe confederatie. Een voorbeeld van een zelfgedefinieerde groep zou kunnen zijn "EK20GC:NED, UKR, AUT, MKD". "EK20GC" staat hier voor de ploegen (NED, UKR, AUT, MKD) die bij het EK van 2020 (wordt/werd gespeeld in 2021) in Groep C zijn ingedeeld. Wanneer deze parameter wordt gebruikt, wordt er een extra kolom (als eerste) aan de gegenereerde lijst (tabel) toegevoegd. Deze kolom geeft de relatieve rang van de ploegen binnen de gedefinieerde groep. De kolomkop wordt standaard de naam van de voor- of zelfgedefinieerde groep. |
caption of uitleg |
|caption= of |uitleg=
|
naam | Boven de lijst (tabel) komt een standaard regel van het formaat "<ranking> sinds <datum>" te staan. Met deze parameter kan de regel zelf gedefinieerd of onderdrukt worden. | string of leeg |
optioneel | |
header1 header5 of koptekst1 koptekst5 |
|header1= |header5= of |koptekst1= |koptekst5=
|
naam | Met deze parameters kunnen tot 5 kopteksten naar keuze boven de lijst (tabel) gedefinieerd worden. | string | optioneel | |
footer1 footer5 of voettekst1 voettekst5 |
|footer1= |footer5= of |voettekst1= |voettekst5=
|
naam | Met deze parameters kunnen tot 5 voetteksten naar keuze onder de lijst (tabel) gedefinieerd worden. | string | optioneel | |
style | |style=
|
naam | Voor het toekennen van extra CSS style attributen aan de lijst (tabel). Deze zijn van de vorm "<attribuut>: <waarde>;" of bij meerdere "<attribuut1>: <waarde1>; <attribuut2>: <waarde2>;" | string | optioneel | Bij gebruik van het CSS "float" attribuut, e.g. "float: right;" is het raadzaam om direct na de module aanroep, het sjabloon {{clearboth}} te gebruiken. |
selection_header of selectie_kop |
|selection_header= of |selectie_kop=
|
naam | Voor het wijzigen van de standaard kolomnaam van de extra kolom die wordt toegevoegd wanneer de parameter |select= wordt gebruikt.
|
string | optioneel | Standaard krijgt de kolomnaan dezelfde waarde als de met de parameter |select= geselecteerde groep. Wanneer de parameter |select= niet is gebruikt wordt de waarde van deze parameter genegeerd.
|
rank_header of rang_kop |
|rank_header= of |rang_kop=
|
naam | Voor het wijzigen van de kolomnaam van de kolom die de rang van een ploeg aangeeft. | string | optioneel | Standaard is de kolomnaam "Rang" |
change_header of poswijz_kop |
|change_header= of |poswijz_kop=
|
naam | Voor het wijzigen van de kolomnaam van de kolom die de positieverandering van een ploeg aangeeft. | string | optioneel | Standaard is de kolomnaam "PW" |
team_header of team_kop |
|team_header= of |team_kop=
|
naam | Voor het wijzigen van de kolomnaam van de kolom die de naam van een ploeg aangeeft. | string | optioneel | Standaard is de kolomnaam "Team" |
points_header of punten_kop |
|points_header= of |punten_kop=
|
naam | Voor het wijzigen van de kolomnaam van de kolom die het aantal punten van een ploeg aangeeft. | string | optioneel | Standaard is de kolomnaam "Punten" |
Substitutie strings
bewerkenWanneer de parameters |caption=
, |header1=
|header5=
of |footer1=
|footer5=
gebruikt worden, kunnen hierin een drietal "vaste" strings gebruikt worden.
String | Betekenis | Opmerking |
---|---|---|
INSERT_UPDATE_DATE | Wordt vervangen door de datum waarop de laatste ranking is gepubliceerd. | Bij de datum wordt er rekening gehouden of de parameter |mdy= is gedefinieerd.
|
INSERT_LAST_DATE | Wordt vervangen door de datum waarop de op een na laatste ranking is gepubliceerd. | Bij de datum wordt er rekening gehouden of de parameter |mdy= is gedefinieerd.
|
INSERT_REFERENCE | Wordt vervangen door een referentie naar de laatste gepubliceerde ranking. |
require('Module:No globals');
local p = {}
local error_msg = '<span style=\"font-size:100%\" class=\"error\"><code style=\"color:inherit; border:inherit; padding:inherit;\">|_template=</code> missing or empty</span>';
local data = {}
local templateArgs = {}
local function getArgs(frame)
local parents = mw.getCurrentFrame():getParent()
for k,v in pairs(parents.args) do
if v and v ~= "" then
templateArgs[k]=v
end
end
for k,v in pairs(frame.args) do
if v and v ~= "" then
templateArgs[k]=v
end
end
if parents.args['caption'] then
templateArgs['caption'] = parents.args['caption']
elseif parents.args['uitleg'] then
templateArgs['caption'] = parents.args['uitleg']
end
if frame.args['caption'] then
templateArgs['caption'] = frame.args['caption']
elseif frame.args['uitleg'] then
templateArgs['caption'] = frame.args['uitleg']
end
end
local function loadData(frame)
local source = frame.args[1]
data = require('Module:SportsRankings/data/'.. source);
end
local function convDate(Dat,short)
local tmpDat = {}
if Dat == "" then
Dat = "heden"
else
tmpDat.year, tmpDat.month, tmpDat.day = string.match(Dat, "(%d+)-(%d+)-(%d+)")
Dat = os.time(tmpDat)
if short then
if templateArgs['mdy'] and templateArgs['mdy'] ~= "" then
Dat = mw.getContentLanguage():formatDate( 'M j, Y', '@' .. Dat, true )
else
Dat = mw.getContentLanguage():formatDate( 'j M Y', '@' .. Dat, true )
end
else
if templateArgs['mdy'] and templateArgs['mdy'] ~= "" then
Dat = mw.getContentLanguage():formatDate( 'F j, Y', '@' .. Dat, true )
else
Dat = mw.getContentLanguage():formatDate( 'j F Y', '@' .. Dat, true )
end
end
end
return Dat
end
local function getDate(short,option)
local Dat = data.updated
if option == "LAST" then
local lastDat = data.previous
if lastDat then
Dat = lastDat
else
return "Datum enerlaatste lijst niet gedefinieerd (data.update)"
end
end
return convDate(Dat,short)
end
local function addCiteWeb(frame)
local short = true
return frame:expandTemplate{ title = 'citeer web' , args = {
url = data.source['url'],
titel = data.source['title'],
website = data.source['website'],
taal = data.source['lang'],
['datum'] = getDate(short),
['bezochtdatum'] = getDate(short) }}
end
local function addReference(frame)
local text = ""
if data.source['text'] then
text = data.source['text']
end
return frame:expandTemplate{ title = 'refn' , args = {
name=frame.args[1],
text .. addCiteWeb(frame) }}
end
local function replaceKeywords(keyword)
local short = false
local insDat = getDate(short)
local lastDat = getDate(short, "LAST")
keyword = string.gsub(keyword, "INSERT_UPDATE_DATE", insDat)
keyword = string.gsub(keyword, "INSERT_LAST_DATE", lastDat)
if string.find(keyword, "INSERT_REFERENCE") then
keyword = string.gsub(keyword, "INSERT_REFERENCE", addReference(mw.getCurrentFrame()))
end
return keyword
end
local function table(frame, ranking, first,last)
local styleString = ""
if templateArgs['style'] and templateArgs['style'] ~= "" then
styleString = templateArgs['style']
end
local lastRank = 0
local selectCount = 0
local select = nil
local selectData = nil
local selectList = nil
local short = false
select = templateArgs['select'] or templateArgs['selecteer']
if select and select ~= "" then
if string.match(select, ":") then
selectList, selectData = string.match(select, "(.*)%s*:%s*(.*)")
selectData = mw.text.split(selectData, '%s*[;,]%s*')
selectCount = 1
else
if data.groups[select] then
selectList = select
selectData = data.groups[selectList]
selectCount = 1
end
end
end
local rankHeader = templateArgs['rank_header'] or templateArgs['rang_kop'] or 'Rang'
local selectionHeader = templateArgs['selection_header'] or templateArgs['selectie_kop'] or selectList
local teamHeader = templateArgs['team_header'] or templateArgs['team_kop'] or 'Team'
local pointsHeader = templateArgs['points_header'] or templateArgs['punten_kop'] or 'Punten'
local changeHeader = templateArgs['change_header'] or templateArgs['poswijz_kop'] or '<abbr title="Positiewijziging">PW</abbr>'
local outputString = '{| class="wikitable" style="text-align: center;' .. styleString .. '"'
local caption = ranking .. ' sinds ' .. getDate(short) .. '.'
if templateArgs['caption'] and templateArgs['caption'] ~= "" then
caption = templateArgs['caption']
caption = replaceKeywords(caption)
end
if not (templateArgs['caption'] and templateArgs['caption'] == "") then
outputString = outputString .. '\n|+' .. caption .. addReference(frame)
end
local count = 0
local header = {}
local tableWidth = 4
if selectList then
tableWidth = 5
end
while count < 5 do
count = count + 1
if templateArgs['header'..count] or templateArgs['koptekst'..count] then
header[count] = templateArgs['header'..count] or templateArgs['koptekst'..count]
header[count] = replaceKeywords(header[count])
outputString = outputString .. '\n|-\n| colspan="'.. tableWidth .. '" |' .. header[count]
end
end
local optionalColumn = ""
if selectList then
optionalColumn = '\n!' .. selectionHeader
end
outputString = outputString .. '\n|-' .. optionalColumn
.. '\n!' .. rankHeader .. '\n!' .. changeHeader
.. '\n!' .. teamHeader .. '\n!' .. pointsHeader
local change,code = '', ''
for k,v in pairs(data.currankings) do
if v[2] >= first and v[2] <= last then
for _,u in pairs(data.alias) do
if u[2]==v[1] then
code = u[1]
break
end
end
local continue = true
if selectList then
continue = false
for _,u in pairs(selectData) do
if u == v[1] or u == code then
continue = true
break
end
end
end
if continue ==true then
local rowString = '\n|-'
if selectList then
local selectRank = selectCount
if v[2]==lastRank then
selectRank = selectCount -1
end
rowString = rowString .. '\n|' .. selectRank
selectCount = selectCount + 1
end
rowString = rowString .. '\n|' .. v[2]
lastRank = v[2]
local move = v[3]
if move == '-' then
change = frame:expandTemplate{ title = 'nieuw' }
elseif move < 0 and math.abs( move ) == math.abs( v[2] ) then
change = frame:expandTemplate{ title = 'nieuw' }
elseif move == 0 then
change = frame:expandTemplate{ title = 'stabiel' }
elseif move < 0 then
change = frame:expandTemplate{ title = 'verlies' } .. ' ' .. math.abs(move)
elseif move > 0 then
change = frame:expandTemplate{ title = 'winst' } .. ' ' .. move
end
rowString = rowString .. '||' .. change
local countryTemplate = data.templates['flagged_team_link']
local countryIconString = frame:expandTemplate{ title = code .. countryTemplate}
rowString = rowString .. '\n|style="text-align: left"|' .. countryIconString
local points = ""
if v[4] then
points = v[4]
end
rowString = rowString .. '||' .. string.gsub(points,"%.",",")
outputString = outputString .. rowString
end
end
end
count = 0
local footer = {}
while count < 5 do
count = count + 1
if templateArgs['footer'..count] or templateArgs['voettekst'..count] then
footer[count] = templateArgs['footer'..count] or templateArgs['voettekst'..count]
footer[count] = replaceKeywords(footer[count])
outputString = outputString .. '\n|-\n| colspan="'.. tableWidth .. '" |' .. footer[count]
end
end
outputString = outputString .. "\n|}"
return outputString
end
function p.cur(frame)
getArgs(frame)
loadData(frame)
local outputString = ""
local validCode = false
local country = templateArgs[2]
local rank, move
local short = true
if string.len(country) == 3 then
for _,u in pairs(data.alias) do
if u[1] == country then
country = u[2]
validCode = true
break
end
end
-- if not validCode then
-- outputString="[[Category:Pages using SportsRankings with unknown parameters]]" .. outputString
-- end
end
for _,v in pairs(data.currankings) do
if v[1]==country then
rank = v[2]
move = v[3]
break
end
end
if not rank then
rank = 'NR'
-- outputString="[[Category:Pages using SportsRankings with unknown parameters]]" .. outputString
-- outputString="[[Category:Pages using SportsRankings with no ranking]]" .. outputString
end
if rank ~= 'NR' then
outputString = outputString .. ' ' .. rank .. ' '
if move == '-' then
outputString = outputString .. frame:expandTemplate{ title = 'nieuw' }
elseif move < 0 and math.abs( move ) == math.abs( rank ) then
outputString = outputString .. frame:expandTemplate{ title = 'nieuw' }
elseif move == 0 then
outputString = outputString .. frame:expandTemplate{ title = 'stabiel' }
elseif move < 0 then
outputString = outputString .. frame:expandTemplate{ title = 'verlies' } .. ' ' .. math.abs(move)
elseif move > 0 then
outputString = outputString .. frame:expandTemplate{ title = 'winst' } .. ' ' .. move
end
else
local code = ""
for _,u in pairs(data.alias) do
if u[2] == country then
code = u[1]
break
end
end
local continue = true
for Count = 1, #data.hist do
if code == data.hist[Count] then
continue = false
outputString = outputString .. frame:expandTemplate{ title = 'afkorting', args = { "NMG", "Niet meer gerankt, het land als zodanig bestaat niet meer"} }
break
end
end
if continue then
for _,w in pairs(data.maxrankings) do
if w[1] == country then
continue = false
outputString = outputString .. frame:expandTemplate{ title = 'afkorting', args = { "NMG", "Niet meer gerankt, het land is wegens inactiviteit in de laatste 4 jaar uit de ranking verwijderd"} }
break
end
end
end
if continue then
outputString = outputString .. frame:expandTemplate{ title = 'afkorting', args = { "NGG", "Nooit gerankt geweest, het land heeft niet tenminste 5 wedstrijden tegen gerankte landen gespeeld"} }
end
end
outputString = outputString .. ' <small>(' .. getDate(short) .. ')</small>'
outputString = outputString .. addReference(frame)
return outputString
end
function p.max(frame)
getArgs(frame)
loadData(frame)
local outputString = ""
local validCode = false
local country = templateArgs[2]
local periods = {}
local period = {}
local rank
local startDat
local endDat
local short = true
if string.len( country) == 3 then
for _,u in pairs(data.alias) do
if u[1]==country then
country = u[2]
validCode = true
break
end
end
-- if not validCode then
-- outputString="[[Category:Pages using SportsRankings with unknown parameters]]" .. outputString
-- end
end
for _,v in pairs(data.maxrankings) do
if v[1]==country then
rank = v[2]
periods = v[3]
break
end
end
if not rank then
rank = 'NR'
-- outString="[[Category:Pages using SportsRankings with unknown parameters]]" .. outputString
-- outputString="[[Category:Pages using SportsRankings with no ranking]]" .. outputString
end
if rank ~= 'NR' then
outputString = outputString .. ' ' .. rank .. ':'
for Count = 1, #periods do
period = periods[Count]
startDat = period[1]
endDat = period[2]
outputString = outputString .. '<br />' .. convDate(startDat,short) .. ' – ' .. convDate(endDat,short)
end
else
outputString = outputString .. frame:expandTemplate{ title = 'afkorting', args = { "NGG", "Nooit gerankt geweest"} }
end
return outputString
end
function p.min(frame)
getArgs(frame)
loadData(frame)
local outputString = ""
local validCode = false
local country = templateArgs[2]
local periods = {}
local period = {}
local rank
local startDat
local endDat
local short = true
if string.len( country) == 3 then
for _,u in pairs(data.alias) do
if u[1]==country then
country = u[2]
validCode = true
break
end
end
-- if not validCode then
-- outputString="[[Category:Pages using SportsRankings with unknown parameters]]" .. outputString
-- end
end
for _,v in pairs(data.minrankings) do
if v[1]==country then
rank = v[2]
periods = v[3]
break
end
end
if not rank then
rank = 'NR'
-- outputString="[[Category:Pages using SportsRankings with unknown parameters]]" .. outputString
-- outputString="[[Category:Pages using SportsRankings with no ranking]]" .. outputString
end
if rank ~= 'NR' then
outputString = outputString .. ' ' .. rank .. ':'
for Count = 1, #periods do
period = periods[Count]
startDat = period[1]
endDat = period[2]
outputString = outputString .. '<br />' .. convDate(startDat,short) .. ' – ' .. convDate(endDat,short)
end
else
outputString = outputString .. frame:expandTemplate{ title = 'afkorting', args = { "NGG", "Nooit gerankt geweest"} }
end
return outputString
end
function p.list(frame)
getArgs(frame)
loadData(frame)
local ranking = frame.args[1]
local first = tonumber(frame.args['2']) or 1
local last = tonumber(frame.args['3']) or 10
return table(frame, ranking, first, last)
end
function p.list2(frame)
getArgs(frame)
loadData(frame)
local ranking = frame.args[1]
local first, last = 1,10
local country = frame.args[2]
local span = frame.args[3] or 2
if string.len(country) == 3 then
for _,u in pairs(data.alias) do
if u[1]==country then
country = u[2]
break
end
end
end
for k,v in pairs(data.currankings) do
if v[1] == country then
first = v[2]-span
last = v[2]+span
end
end
return table(frame, ranking, first, last)
end
return p