Moduł:Rekordy sezon: Różnice pomiędzy wersjami
Wygląd
Nie podano opisu zmian |
Nie podano opisu zmian |
||
| Linia 5: | Linia 5: | ||
-- | -- | ||
-- Jeden moduł dla różnych dyscyplin. | -- Jeden moduł dla różnych dyscyplin. | ||
-- ========================================================= | -- ========================================================= | ||
| Linia 47: | Linia 31: | ||
local function escapeSQL(value) | |||
value = tostring(value or "") | |||
return mw.ustring.gsub( | |||
value, | value, | ||
" | "'", | ||
"" | "''" | ||
) | ) | ||
end | |||
-- ========================================================= | |||
-- ROZPOZNANIE MIEJSCA MECZU | |||
-- ========================================================= | |||
local function miejsceMeczu(row, druzyna) | |||
local | local d1 = | ||
tostring(row.druzyna1 or "") | |||
local d2 = | |||
tostring(row.druzyna2 or "") | |||
if d1 == druzyna then | |||
return "dom" | |||
end | |||
if | if d2 == druzyna then | ||
return | return "wyjazd" | ||
end | end | ||
return | return nil | ||
end | end | ||
| Linia 100: | Linia 70: | ||
-- ========================================================= | -- ========================================================= | ||
-- | -- WYNIK MECZU | ||
-- ========================================================= | -- ========================================================= | ||
local function | local function wynikMeczu(row) | ||
local g1 = | |||
tonumber(row.gole1 or "") | |||
local | local g2 = | ||
tonumber(row.gole2 or "") | |||
if g1 ~= nil and g2 ~= nil then | |||
return g1, g2 | |||
if | |||
return | |||
end | end | ||
local wynik = | |||
tostring(row.wynik or "") | |||
local a, b = | |||
mw.ustring.match( | |||
wynik, | |||
"(%d+)%s*:%s*(%d+)" | |||
) | |||
if a and b then | |||
return | |||
tonumber(a), | |||
tonumber(b) | |||
end | |||
return | return nil, nil | ||
end | end | ||
| Linia 145: | Linia 110: | ||
-- ========================================================= | -- ========================================================= | ||
-- | -- WYNIK Z PERSPEKTYWY DRUŻYNY | ||
-- ========================================================= | -- ========================================================= | ||
local function | local function wynikZPerspektywy(row, druzyna) | ||
local | local g1, g2 = | ||
wynikMeczu(row) | |||
if g1 == nil or g2 == nil then | |||
return nil, nil | |||
return | |||
end | end | ||
if | local miejsce = | ||
return "wyjazd" | miejsceMeczu( | ||
row, | |||
druzyna | |||
) | |||
if miejsce == "dom" then | |||
return g1, g2 | |||
elseif miejsce == "wyjazd" then | |||
return g2, g1 | |||
end | end | ||
return nil | return nil, nil | ||
end | end | ||
| Linia 170: | Linia 144: | ||
-- ========================================================= | -- ========================================================= | ||
-- | -- NAZWA MECZU | ||
-- ========================================================= | -- ========================================================= | ||
local function | local function nazwaMeczu(row) | ||
local | local d1 = | ||
tostring(row.druzyna1 or "") | |||
local | local d2 = | ||
tostring(row.druzyna2 or "") | |||
local strona = | |||
tostring(row.strona_meczu or "") | |||
local tekst = | |||
d1 .. | |||
" – " .. | |||
d2 | |||
if | if strona ~= "" then | ||
return | return | ||
"[[" .. | |||
strona .. | |||
"|" .. | |||
tekst .. | |||
"]]" | |||
end | end | ||
return tekst | |||
return | |||
end | end | ||
| Linia 210: | Linia 181: | ||
-- ========================================================= | -- ========================================================= | ||
-- | -- FUNKCJA DODAWANIA REKORDU | ||
-- | |||
-- WAŻNE: | |||
-- item.wartosc MUSI być zapisana w elemencie. | |||
-- Dzięki temu kolejne rekordy są porównywane | |||
-- z rzeczywistą wartością danego rekordu. | |||
-- ========================================================= | -- ========================================================= | ||
local function | local function dodajRekord( | ||
tabela, | |||
miejsce, | |||
wartosc, | |||
item | |||
) | |||
if wartosc == nil then | |||
return | |||
end | |||
local lista = | |||
tabela[miejsce] | |||
-- KLUCZOWA POPRAWKA | |||
item.wartosc = wartosc | |||
if #lista == 0 then | |||
table.insert( | |||
lista, | |||
item | |||
) | |||
return | return | ||
end | end | ||
local obecna = | |||
lista[1].wartosc | |||
if obecna == nil then | |||
obecna = 0 | |||
end | |||
if wartosc > obecna then | |||
tabela[miejsce] = { | |||
item | |||
} | |||
elseif wartosc == obecna then | |||
table.insert( | |||
lista, | |||
item | |||
) | |||
end | end | ||
end | end | ||
| Linia 281: | Linia 247: | ||
-- ========================================================= | -- ========================================================= | ||
-- | -- FORMAT REKORDÓW MECZOWYCH | ||
-- ========================================================= | -- ========================================================= | ||
local function | local function tekstMeczow(lista) | ||
) | |||
if | if not lista or #lista == 0 then | ||
return | return "—" | ||
end | end | ||
local wynik = {} | |||
for _, item in ipairs(lista) do | |||
local roznica = | |||
item.roznica or 0 | |||
local roznicaTekst | |||
if roznica >= 0 then | |||
roznicaTekst = | |||
"+" .. | |||
tostring(roznica) | |||
else | |||
roznicaTekst = | |||
tostring(roznica) | |||
end | |||
table.insert( | |||
wynik, | |||
item.tekst .. | |||
item | " (" .. | ||
item.wynik .. | |||
", " .. | |||
roznicaTekst .. | |||
")" | |||
) | ) | ||
end | end | ||
return table.concat( | |||
wynik, | |||
"<br>" | |||
) | |||
end | end | ||
| Linia 352: | Linia 304: | ||
-- ========================================================= | -- ========================================================= | ||
-- FORMAT REKORDÓW | -- FORMAT REKORDÓW ZAWODNIKÓW | ||
-- ========================================================= | -- ========================================================= | ||