Przejdź do zawartości
Menu główne
Menu główne
przypnij
ukryj
Nawigacja
Strona główna
Ostatnie zmiany
Losowa strona
Pomoc z MediaWiki
Strony specjalne
Encyklopedia Poznanskiego Sportu
Szukaj
Szukaj
Wygląd
Utwórz konto
Zaloguj się
Narzędzia osobiste
Utwórz konto
Zaloguj się
Strony dla anonimowych edytorów
dowiedz się więcej
Edycje
Dyskusja
Edytujesz
Moduł:HistoriaWystepow
Moduł
Dyskusja
English
Czytaj
Edytuj
Wyświetl historię
Narzędzia
Narzędzia
przypnij
ukryj
Działania
Czytaj
Edytuj
Wyświetl historię
Ogólne
Linkujące
Zmiany w linkowanych
Informacje o tej stronie
Cargo data
Wygląd
przypnij
ukryj
Uwaga:
Nie jesteś zalogowany. Jeśli wykonasz jakąkolwiek zmianę, Twój adres IP będzie widoczny publicznie. Jeśli
zalogujesz się
lub
utworzysz konto
, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.
Filtr antyspamowy.
Nie
wpisuj tu nic!
local p = {} -- ========================================================= -- MODUŁ:HISTORIAWYSTĘPÓW -- -- Historia występów zawodnika -- -- UWAGA: -- Moduł pokazuje wyłącznie występy zawodnika -- w drużynach poznańskich. -- -- Liczy się UdzialZawodnika.druzyna, -- a NIE przeciwnik. -- -- Dzięki temu: -- Enea Basket Poznań vs Resovia -> TAK -- Resovia vs Enea Basket Poznań -> NIE -- ========================================================= -- ========================================================= -- DRUŻYNY POZNAŃSKIE -- ========================================================= -- -- Tutaj dopisujemy kolejne drużyny poznańskie. -- -- Nazwa musi być identyczna z wartością pola "druzyna" -- w UdzialZawodnika. -- local druzynyPoznanskie = { ["Enea Basket Poznań"] = true, ["Enea AZS Politechnika Poznań"] = true, ["Lech Poznań"] = true, ["Warta Poznań"] = true, ["AZS Politechnika Poznań"] = true, ["MUKS Poznań"] = true } function p.main(frame) local zawodnik = mw.text.trim( frame.args.zawodnik or "" ) if zawodnik == "" then zawodnik = mw.title .getCurrentTitle() .text end -- ===================================================== -- BEZPIECZNE PRZYGOTOWANIE NAZWY ZAWODNIKA -- ===================================================== local zawodnikSQL = mw.ustring.gsub( zawodnik, "'", "''" ) -- ===================================================== -- POLA POBIERANE Z CARGO -- ===================================================== local fields = table.concat({ "UdzialZawodnika.mecz=mecz", "UdzialZawodnika.druzyna=druzyna", "UdzialZawodnika.minuty=minuty", "UdzialZawodnika.minuty_format=minuty_format", "UdzialZawodnika.gol=gol", "UdzialZawodnika.asysta=asysta", "UdzialZawodnika.zbiorka=zbiorka", "UdzialZawodnika.eval=eval", "UdzialZawodnika.plusminus=plusminus", "Mecze.data=data", "Mecze.sezon=sezon", "Mecze.druzyna1=druzyna1", "Mecze.druzyna2=druzyna2", "Mecze.wynik=wynik", "Mecze.strona_meczu=strona_meczu" }, ",") -- ===================================================== -- ZAPYTANIE CARGO -- -- Pobieramy wszystkie występy zawodnika, -- a następnie filtrujemy je według drużyny. -- -- NIE filtrujemy Mecze.druzyna1/druzyna2, -- ponieważ przeciwnik może być drużyną poznańską. -- ===================================================== local args = { join = "UdzialZawodnika.mecz=Mecze.id", where = "UdzialZawodnika.zawodnik='" .. zawodnikSQL .. "' AND UdzialZawodnika.minuty > 0", orderBy = "Mecze.data ASC", limit = 5000 } local rows = mw.ext.cargo.query( "UdzialZawodnika,Mecze", fields, args ) -- ===================================================== -- FILTR DRUŻYN POZNAŃSKICH -- -- Sprawdzamy U.druzyna. -- -- Dzięki temu zawodnik występujący przeciwko -- drużynie poznańskiej, ale reprezentujący -- drużynę przyjezdną, NIE zostanie uwzględniony. -- ===================================================== local tylkoPoznanskie = {} if rows then for _, row in ipairs(rows) do local druzyna = mw.text.trim( row.druzyna or "" ) if druzynyPoznanskie[druzyna] then table.insert( tylkoPoznanskie, row ) end end end rows = tylkoPoznanskie -- ===================================================== -- BRAK DANYCH -- ===================================================== if not rows or #rows == 0 then return "''Brak wprowadzonych występów zawodnika " .. "dla drużyn poznańskich w bazie.''" end -- ===================================================== -- PODSUMOWANIE -- ===================================================== local function nowePodsumowanie() return { wystepy = 0, zwyciestwa = 0, porazki = 0, remisy = 0, punkty = 0, minuty = 0, asysty = 0, zbiorki = 0, eval = 0, plusminus = 0 } end -- ===================================================== -- PODSUMOWANIA -- ===================================================== local suma = nowePodsumowanie() local dom = nowePodsumowanie() local wyjazd = nowePodsumowanie() -- sezony local sezony = {} -- kluby local kluby = {} -- ===================================================== -- OKREŚLENIE WYNIKU MECZU -- ===================================================== local function okreslWynik(row) local d1 = row.druzyna1 or "" local d2 = row.druzyna2 or "" local druzyna = row.druzyna or "" local wynikMeczu = row.wynik or "" local g1, g2 = wynikMeczu:match( "(%d+)%s*:%s*(%d+)" ) if not g1 or not g2 then return nil end g1 = tonumber(g1) g2 = tonumber(g2) if druzyna == d1 then if g1 > g2 then return "W" elseif g1 < g2 then return "P" else return "R" end elseif druzyna == d2 then if g2 > g1 then return "W" elseif g2 < g1 then return "P" else return "R" end end return nil end -- ===================================================== -- DODANIE MECZU DO PODSUMOWANIA -- ===================================================== local function dodajDoPodsumowania( stat, row ) stat.wystepy = stat.wystepy + 1 stat.punkty = stat.punkty + ( tonumber(row.gol or 0) or 0 ) stat.minuty = stat.minuty + ( tonumber(row.minuty or 0) or 0 ) stat.asysty = stat.asysty + ( tonumber(row.asysta or 0) or 0 ) stat.zbiorki = stat.zbiorki + ( tonumber(row.zbiorka or 0) or 0 ) stat.eval = stat.eval + ( tonumber(row.eval or 0) or 0 ) stat.plusminus = stat.plusminus + ( tonumber(row.plusminus or 0) or 0 ) local wynik = okreslWynik(row) if wynik == "W" then stat.zwyciestwa = stat.zwyciestwa + 1 elseif wynik == "P" then stat.porazki = stat.porazki + 1 elseif wynik == "R" then stat.remisy = stat.remisy + 1 end end -- ===================================================== -- PRZEJŚCIE PRZEZ WSZYSTKIE MECZE -- ===================================================== for _, row in ipairs(rows) do -- ----------------------------------------------- -- WSZYSTKIE -- ----------------------------------------------- dodajDoPodsumowania( suma, row ) -- ----------------------------------------------- -- DOM / WYJAZD -- ----------------------------------------------- local d1 = row.druzyna1 or "" local d2 = row.druzyna2 or "" local druzyna = row.druzyna or "" if druzyna == d1 then dodajDoPodsumowania( dom, row ) elseif druzyna == d2 then dodajDoPodsumowania( wyjazd, row ) end -- ----------------------------------------------- -- SEZON -- ----------------------------------------------- local sezon = row.sezon or "" if sezon == "" then sezon = "Brak sezonu" end if not sezony[sezon] then sezony[sezon] = nowePodsumowanie() end dodajDoPodsumowania( sezony[sezon], row ) -- ----------------------------------------------- -- KLUB -- ----------------------------------------------- if druzyna == "" then druzyna = "Brak klubu" end if not kluby[druzyna] then kluby[druzyna] = nowePodsumowanie() end dodajDoPodsumowania( kluby[druzyna], row ) end -- ===================================================== -- FORMATOWANIE MINUT -- ===================================================== local function formatujMinuty(minuty) local godziny = math.floor( minuty / 60 ) local min = minuty % 60 return string.format( "%d:%02d", godziny, min ) end -- ===================================================== -- SORTOWANIE SEZONÓW -- ===================================================== local listaSezonow = {} for sezon, _ in pairs(sezony) do table.insert( listaSezonow, sezon ) end table.sort( listaSezonow, function(a, b) return a > b end ) -- ===================================================== -- SORTOWANIE KLUBÓW -- ===================================================== local listaKlubow = {} for klub, _ in pairs(kluby) do table.insert( listaKlubow, klub ) end table.sort( listaKlubow ) -- ===================================================== -- OPIS MECZU -- ===================================================== local function rekordMecz(row) local d1 = row.druzyna1 or "" local d2 = row.druzyna2 or "" local data = row.data or "" local wynikMeczu = row.wynik or "" local strona = row.strona_meczu or "" -- ----------------------------------------------- -- FAKTYCZNY ZAPIS MECZU -- ----------------------------------------------- local meczTekst = d1 .. " – " .. d2 -- ----------------------------------------------- -- LINK DO STRONY MECZU -- ----------------------------------------------- if strona ~= "" then meczTekst = "[[" .. strona .. "|" .. d1 .. " – " .. d2 .. "]]" end -- ----------------------------------------------- -- DATA -- ----------------------------------------------- if data ~= "" then meczTekst = meczTekst .. " (" .. data .. ")" end -- ----------------------------------------------- -- WYNIK -- ----------------------------------------------- if wynikMeczu ~= "" then meczTekst = meczTekst .. " " .. wynikMeczu end return meczTekst end -- ===================================================== -- REKORDY -- ===================================================== local rekordPunkty = -1 local rekordMinuty = -1 local rekordAsysty = -1 local rekordZbiorki = -1 local meczePunkty = {} local meczeMinuty = {} local meczeAsysty = {} local meczeZbiorki = {} -- ===================================================== -- WYSZUKIWANIE REKORDÓW -- ===================================================== for _, row in ipairs(rows) do local punkty = tonumber(row.gol or 0) or 0 local minuty = tonumber(row.minuty or 0) or 0 local asysty = tonumber(row.asysta or 0) or 0 local zbiorki = tonumber(row.zbiorka or 0) or 0 -- ----------------------------------------------- -- PUNKTY -- ----------------------------------------------- if punkty > rekordPunkty then rekordPunkty = punkty meczePunkty = { row } elseif punkty == rekordPunkty then table.insert( meczePunkty, row ) end -- ----------------------------------------------- -- MINUTY -- ----------------------------------------------- if minuty > rekordMinuty then rekordMinuty = minuty meczeMinuty = { row } elseif minuty == rekordMinuty then table.insert( meczeMinuty, row ) end -- ----------------------------------------------- -- ASYSTY -- ----------------------------------------------- if asysty > rekordAsysty then rekordAsysty = asysty meczeAsysty = { row } elseif asysty == rekordAsysty then table.insert( meczeAsysty, row ) end -- ----------------------------------------------- -- ZBIÓRKI -- ----------------------------------------------- if zbiorki > rekordZbiorki then rekordZbiorki = zbiorki meczeZbiorki = { row } elseif zbiorki == rekordZbiorki then table.insert( meczeZbiorki, row ) end end -- ===================================================== -- LISTA MECZÓW W REKORDZIE -- ===================================================== local function listaRekordow(lista) local wynikRekordu = {} for _, row in ipairs(lista) do table.insert( wynikRekordu, rekordMecz(row) ) end return table.concat( wynikRekordu, "<br>" ) end -- ===================================================== -- WYNIK -- ===================================================== local wynik = {} -- ===================================================== -- HISTORIA -- ===================================================== table.insert( wynik, "== Historia występów ==" ) table.insert( wynik, "" ) -- ===================================================== -- PODSUMOWANIE -- ===================================================== table.insert( wynik, "=== Podsumowanie wszystkich spotkań ===" ) table.insert( wynik, "" ) table.insert( wynik, '{| class="wikitable" style="width:100%; text-align:center;"' ) table.insert( wynik, "! " ) table.insert( wynik, "! Wszystkie spotkania" ) table.insert( wynik, "! 🏠 Mecze domowe" ) table.insert( wynik, "! ✈️ Mecze wyjazdowe" ) -- WYSTĘPY table.insert(wynik, "|-") table.insert(wynik, "! Występy") table.insert(wynik, "| '''" .. suma.wystepy .. "'''") table.insert(wynik, "| '''" .. dom.wystepy .. "'''") table.insert(wynik, "| '''" .. wyjazd.wystepy .. "'''") -- ZWYCIĘSTWA table.insert(wynik, "|-") table.insert(wynik, "! Zwycięstwa") table.insert(wynik, "| '''" .. suma.zwyciestwa .. "'''") table.insert(wynik, "| '''" .. dom.zwyciestwa .. "'''") table.insert(wynik, "| '''" .. wyjazd.zwyciestwa .. "'''") -- PORAŻKI table.insert(wynik, "|-") table.insert(wynik, "! Porażki") table.insert(wynik, "| '''" .. suma.porazki .. "'''") table.insert(wynik, "| '''" .. dom.porazki .. "'''") table.insert(wynik, "| '''" .. wyjazd.porazki .. "'''") -- REMISY table.insert(wynik, "|-") table.insert(wynik, "! Remisy") table.insert(wynik, "| '''" .. suma.remisy .. "'''") table.insert(wynik, "| '''" .. dom.remisy .. "'''") table.insert(wynik, "| '''" .. wyjazd.remisy .. "'''") -- PUNKTY table.insert(wynik, "|-") table.insert(wynik, "! Punkty") table.insert(wynik, "| '''" .. suma.punkty .. "'''") table.insert(wynik, "| '''" .. dom.punkty .. "'''") table.insert(wynik, "| '''" .. wyjazd.punkty .. "'''") -- MINUTY table.insert(wynik, "|-") table.insert(wynik, "! Minuty") table.insert( wynik, "| '''" .. formatujMinuty(suma.minuty) .. "'''" ) table.insert( wynik, "| '''" .. formatujMinuty(dom.minuty) .. "'''" ) table.insert( wynik, "| '''" .. formatujMinuty(wyjazd.minuty) .. "'''" ) -- ASYSTY table.insert(wynik, "|-") table.insert(wynik, "! Asysty") table.insert(wynik, "| '''" .. suma.asysty .. "'''") table.insert(wynik, "| '''" .. dom.asysty .. "'''") table.insert(wynik, "| '''" .. wyjazd.asysty .. "'''") -- ZBIÓRKI table.insert(wynik, "|-") table.insert(wynik, "! Zbiórki") table.insert(wynik, "| '''" .. suma.zbiorki .. "'''") table.insert(wynik, "| '''" .. dom.zbiorki .. "'''") table.insert(wynik, "| '''" .. wyjazd.zbiorki .. "'''") -- EVAL table.insert(wynik, "|-") table.insert(wynik, "! EVAL") table.insert(wynik, "| '''" .. suma.eval .. "'''") table.insert(wynik, "| '''" .. dom.eval .. "'''") table.insert(wynik, "| '''" .. wyjazd.eval .. "'''") -- PLUS/MINUS table.insert(wynik, "|-") table.insert(wynik, "! +/-") table.insert(wynik, "| '''" .. suma.plusminus .. "'''") table.insert(wynik, "| '''" .. dom.plusminus .. "'''") table.insert(wynik, "| '''" .. wyjazd.plusminus .. "'''") table.insert( wynik, "|}" ) table.insert( wynik, "" ) -- ===================================================== -- REKORDY -- ===================================================== table.insert( wynik, "=== Najlepsze występy ===" ) table.insert( wynik, "" ) table.insert( wynik, '{| class="wikitable" style="width:100%;"' ) table.insert( wynik, "! Rekord" ) table.insert( wynik, "! Wynik" ) table.insert( wynik, "! Mecz / mecze" ) -- PUNKTY table.insert(wynik, "|-") table.insert( wynik, "! 🏀 Najwięcej punktów" ) table.insert( wynik, "| '''" .. rekordPunkty .. "'''" ) table.insert( wynik, "| " .. listaRekordow(meczePunkty) ) -- MINUTY table.insert(wynik, "|-") table.insert( wynik, "! ⏱ Najwięcej minut" ) table.insert( wynik, "| '''" .. formatujMinuty(rekordMinuty) .. "'''" ) table.insert( wynik, "| " .. listaRekordow(meczeMinuty) ) -- ASYSTY table.insert(wynik, "|-") table.insert( wynik, "! 🎯 Najwięcej asyst" ) table.insert( wynik, "| '''" .. rekordAsysty .. "'''" ) table.insert( wynik, "| " .. listaRekordow(meczeAsysty) ) -- ZBIÓRKI table.insert(wynik, "|-") table.insert( wynik, "! 🏀 Najwięcej zbiórek" ) table.insert( wynik, "| '''" .. rekordZbiorki .. "'''" ) table.insert( wynik, "| " .. listaRekordow(meczeZbiorki) ) table.insert( wynik, "|}" ) table.insert( wynik, "" ) -- ===================================================== -- PODSUMOWANIE SEZONÓW -- ===================================================== table.insert( wynik, "=== Podsumowanie sezonów ===" ) table.insert( wynik, "" ) table.insert( wynik, '{| class="wikitable sortable" style="width:100%; text-align:center;"' ) table.insert(wynik, "! Sezon") table.insert(wynik, "! Występy") table.insert(wynik, "! Zwycięstwa") table.insert(wynik, "! Porażki") table.insert(wynik, "! Remisy") table.insert(wynik, "! Punkty") table.insert(wynik, "! Minuty") table.insert(wynik, "! Asysty") table.insert(wynik, "! Zbiórki") table.insert(wynik, "! EVAL") table.insert(wynik, "! +/-") for _, sezon in ipairs(listaSezonow) do local stat = sezony[sezon] table.insert( wynik, "|-" ) table.insert( wynik, "| '''" .. sezon .. "'''" ) table.insert( wynik, "| " .. stat.wystepy ) table.insert( wynik, "| " .. stat.zwyciestwa ) table.insert( wynik, "| " .. stat.porazki ) table.insert( wynik, "| " .. stat.remisy ) table.insert( wynik, "| " .. stat.punkty ) table.insert( wynik, "| " .. formatujMinuty( stat.minuty ) ) table.insert( wynik, "| " .. stat.asysty ) table.insert( wynik, "| " .. stat.zbiorki ) table.insert( wynik, "| " .. stat.eval ) table.insert( wynik, "| " .. stat.plusminus ) end table.insert( wynik, "|}" ) table.insert( wynik, "" ) -- ===================================================== -- PODSUMOWANIE WEDŁUG KLUBU -- ===================================================== table.insert( wynik, "=== Podsumowanie według klubu ===" ) table.insert( wynik, "" ) table.insert( wynik, '{| class="wikitable sortable" style="width:100%; text-align:center;"' ) table.insert(wynik, "! Klub") table.insert(wynik, "! Występy") table.insert(wynik, "! Zwycięstwa") table.insert(wynik, "! Porażki") table.insert(wynik, "! Remisy") table.insert(wynik, "! Punkty") table.insert(wynik, "! Minuty") table.insert(wynik, "! Asysty") table.insert(wynik, "! Zbiórki") table.insert(wynik, "! EVAL") table.insert(wynik, "! +/-") for _, klub in ipairs(listaKlubow) do local stat = kluby[klub] table.insert( wynik, "|-" ) table.insert( wynik, "| '''" .. klub .. "'''" ) table.insert( wynik, "| " .. stat.wystepy ) table.insert( wynik, "| " .. stat.zwyciestwa ) table.insert( wynik, "| " .. stat.porazki ) table.insert( wynik, "| " .. stat.remisy ) table.insert( wynik, "| " .. stat.punkty ) table.insert( wynik, "| " .. formatujMinuty( stat.minuty ) ) table.insert( wynik, "| " .. stat.asysty ) table.insert( wynik, "| " .. stat.zbiorki ) table.insert( wynik, "| " .. stat.eval ) table.insert( wynik, "| " .. stat.plusminus ) end table.insert( wynik, "|}" ) table.insert( wynik, "" ) -- ===================================================== -- TABELA WSZYSTKICH WYSTĘPÓW -- ===================================================== table.insert( wynik, "=== Mecze ===" ) table.insert( wynik, "" ) table.insert( wynik, '{| class="wikitable sortable" style="width:100%;"' ) table.insert(wynik, "! Nr") table.insert(wynik, "! Sezon") table.insert(wynik, "! Data") table.insert(wynik, "! Miejsce") table.insert(wynik, "! Przeciwnik") table.insert(wynik, "! Wynik") table.insert(wynik, "! Min.") table.insert(wynik, "! Pkt") table.insert(wynik, "! As.") table.insert(wynik, "! Zb.") table.insert(wynik, "! EVAL") table.insert(wynik, "! +/-") table.insert(wynik, "! Jubileusz") -- ===================================================== -- POSZCZEGÓLNE MECZE -- ===================================================== for i, row in ipairs(rows) do local data = row.data or "" local sezon = row.sezon or "" local d1 = row.druzyna1 or "" local d2 = row.druzyna2 or "" local druzyna = row.druzyna or "" local wynikMeczu = row.wynik or "" local strona = row.strona_meczu or "" local minutyFormat = row.minuty_format or "" local pkt = row.gol or "0" local asysty = row.asysta or "0" local zbiorki = row.zbiorka or "0" local eval = row.eval or "0" local plusminus = row.plusminus or "0" -- ----------------------------------------------- -- DOM / WYJAZD -- ----------------------------------------------- local miejsce = "" if druzyna == d1 then miejsce = "🏠 Dom" elseif druzyna == d2 then miejsce = "✈️ Wyjazd" end -- ----------------------------------------------- -- PRZECIWNIK -- ----------------------------------------------- local przeciwnik = "" if druzyna == d1 then przeciwnik = d2 elseif druzyna == d2 then przeciwnik = d1 else przeciwnik = d1 end -- ----------------------------------------------- -- LINK DO MECZU -- ----------------------------------------------- local meczTekst = przeciwnik if strona ~= "" then meczTekst = "[[" .. strona .. "|" .. przeciwnik .. "]]" end -- ----------------------------------------------- -- JUBILEUSZ -- ----------------------------------------------- local jubileusz = "" if i % 50 == 0 then jubileusz = "'''🏆 " .. i .. ". występ'''" end -- ----------------------------------------------- -- WIERSZ -- ----------------------------------------------- table.insert( wynik, "|-" ) table.insert( wynik, "| " .. i ) table.insert( wynik, "| " .. sezon ) table.insert( wynik, "| " .. data ) table.insert( wynik, "| " .. miejsce ) table.insert( wynik, "| " .. meczTekst ) table.insert( wynik, "| " .. wynikMeczu ) table.insert( wynik, "| " .. minutyFormat ) table.insert( wynik, "| " .. pkt ) table.insert( wynik, "| " .. asysty ) table.insert( wynik, "| " .. zbiorki ) table.insert( wynik, "| " .. eval ) table.insert( wynik, "| " .. plusminus ) table.insert( wynik, "| " .. jubileusz ) end -- ===================================================== -- KONIEC TABELI -- ===================================================== table.insert( wynik, "|}" ) -- ===================================================== -- ZWRÓCENIE WYNIKU -- ===================================================== return table.concat( wynik, "\n" ) end return p
Opis zmian:
Wszelki wkład na Encyklopedia Poznanskiego Sportu może być edytowany, zmieniany lub usunięty przez innych użytkowników. Jeśli nie chcesz, żeby Twój tekst był dowolnie zmieniany przez każdego i rozpowszechniany bez ograniczeń, nie umieszczaj go tutaj.
Zapisując swoją edycję, oświadczasz, że ten tekst jest Twoim dziełem lub pochodzi z materiałów dostępnych na warunkach
domeny publicznej
lub kompatybilnych (zobacz także
Encyklopedia Poznanskiego Sportu:Prawa autorskie
).
PROSZĘ NIE WPROWADZAĆ MATERIAŁÓW CHRONIONYCH PRAWEM AUTORSKIM BEZ POZWOLENIA WŁAŚCICIELA!
Anuluj
Pomoc w edycji
(otwiera się w nowym oknie)
Strona dołączona w tym artykule:
Moduł:HistoriaWystepow/opis
(
edytuj
)
Szukaj
Szukaj
Edytujesz
Moduł:HistoriaWystepow
Dodaj temat