Przejdź do zawartości

Moduł:Rekordy sezon: Różnice pomiędzy wersjami

Z Encyklopedia Poznanskiego Sportu
Nie podano opisu zmian
Nie podano opisu zmian
 
(Nie pokazano 9 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 2: Linia 2:


-- =========================================================
-- =========================================================
-- Module:Rekordy_sezon
-- Moduł:Rekordy_sezon
--
--
-- Jeden moduł dla wielu dyscyplin.
-- Jeden moduł dla różnych dyscyplin.
--
--
-- Wywołanie:
-- Wywołanie:
Linia 21: Linia 21:
--  |dyscyplina=koszykówka
--  |dyscyplina=koszykówka
-- }}
-- }}
--
-- Opcjonalnie:
--
-- |rozgrywki=Ekstraklasa
--
--
-- =========================================================
-- =========================================================




function p.main(frame)
-- =========================================================
-- FUNKCJE WSPÓLNE
-- =========================================================


    -- =====================================================
local function liczba(value)
    -- PARAMETRY
    -- =====================================================


     local sezon =
     if value == nil or value == "" then
        mw.text.trim(frame.args.sezon or "")
        return 0
    end


     local druzyna =
     value = tostring(value)
        mw.text.trim(frame.args.druzyna or "")


     local dyscyplina =
     value = mw.ustring.gsub(
        mw.text.trim(frame.args.dyscyplina or "koszykówka")
        value,
        "%s+",
        ""
    )


     local rozgrywki =
     return tonumber(value) or 0
        mw.text.trim(frame.args.rozgrywki or "")


end


    if sezon == "" then
        return "'''Błąd:''' nie podano sezonu."
    end


    if druzyna == "" then
local function escapeSQL(value)
        return "'''Błąd:''' nie podano drużyny."
    end


    value = tostring(value or "")


     -- =====================================================
     return mw.ustring.gsub(
    -- ESCAPOWANIE SQL
        value,
     -- =====================================================
        "'",
        "''"
     )


    local sezonSQL =
end
        mw.ustring.gsub(sezon, "'", "''")


    local druzynaSQL =
        mw.ustring.gsub(druzyna, "'", "''")


    local rozgrywkiSQL =
-- =========================================================
        mw.ustring.gsub(rozgrywki, "'", "''")
-- ROZPOZNANIE MIEJSCA MECZU
-- =========================================================


local function miejsceMeczu(row, druzyna)


     -- =====================================================
     local d1 =
    -- FUNKCJE POMOCNICZE
        tostring(row.druzyna1 or "")
    -- =====================================================


     local function liczba(value)
     local d2 =
        tostring(row.druzyna2 or "")


        if value == nil or value == "" then
    if d1 == druzyna then
            return 0
        return "dom"
        end
    end


         value = tostring(value)
    if d2 == druzyna then
         return "wyjazd"
    end


        value =
    return nil
            mw.ustring.gsub(
                value,
                "%s+",
                ""
            )


        return tonumber(value) or 0
end


    end


-- =========================================================
-- WYNIK MECZU
-- =========================================================
local function wynikMeczu(row)
    local g1 =
        tonumber(row.gole1 or "")
    local g2 =
        tonumber(row.gole2 or "")


     local function miejsceMeczu(row)
     if g1 ~= nil and g2 ~= nil then
        return g1, g2
    end


        local d1 =
            row.druzyna1 or ""


        local d2 =
    local wynik =
            row.druzyna2 or ""
        tostring(row.wynik or "")


         if d1 == druzyna then
    local a, b =
             return "dom"
         mw.ustring.match(
         end
            wynik,
             "(%d+)%s*:%s*(%d+)"
         )


        if d2 == druzyna then
    if a and b then
            return "wyjazd"
        end


         return nil
         return
            tonumber(a),
            tonumber(b)


     end
     end




     local function wynikMeczu(row)
     return nil, nil


        local g1 =
end
            tonumber(row.gole1 or "")


        local g2 =
            tonumber(row.gole2 or "")


        if g1 and g2 then
-- =========================================================
            return g1, g2
-- WYNIK Z PERSPEKTYWY DRUŻYNY
        end
-- =========================================================


        local wynik =
local function wynikZPerspektywy(row, druzyna)
            row.wynik or ""


        local a, b =
    local g1, g2 =
            wynik:match(
        wynikMeczu(row)
                "(%d+)%s*:%s*(%d+)"
            )


        if a and b then
    if g1 == nil or g2 == nil then
            return tonumber(a), tonumber(b)
        return nil, nil
        end
    end


         return nil, nil
    local miejsce =
         miejsceMeczu(
            row,
            druzyna
        )


     end
     if miejsce == "dom" then


        return g1, g2


     local function nazwaMeczu(row)
     elseif miejsce == "wyjazd" then


         local d1 =
         return g2, g1
            row.druzyna1 or ""


        local d2 =
    end
            row.druzyna2 or ""


        local strona =
    return nil, nil
            row.strona_meczu or ""


        local tekst =
end
            d1 .. " – " .. d2


        if strona ~= "" then


            return "[[" ..
-- =========================================================
                strona ..
-- NAZWA MECZU
                "|" ..
-- =========================================================
                tekst ..
                "]]"


        end
local function nazwaMeczu(row)


         return tekst
    local d1 =
         tostring(row.druzyna1 or "")


     end
     local d2 =
        tostring(row.druzyna2 or "")


    local strona =
        tostring(row.strona_meczu or "")


     local function kopiuj(item)
     local tekst =
        d1 ..
        " – " ..
        d2


        local nowy = {}


        for k, v in pairs(item) do
    if strona ~= "" then
            nowy[k] = v
        end


         return nowy
         return
            "[[" ..
            strona ..
            "|" ..
            tekst ..
            "]]"


     end
     end


    return tekst


    local function dodajRekord(
end
        tabela,
        miejsce,
        wartosc,
        item
    )


        local lista =
            tabela[miejsce]


        local nowy =
-- =========================================================
            kopiuj(item)
-- FUNKCJA DODAWANIA REKORDU
-- UŻYWANA PRZEZ PIŁKĘ NOŻNĄ
-- =========================================================


        nowy.wartosc =
local function dodajRekord(
            wartosc
    tabela,
    miejsce,
    wartosc,
    item
)


        if #lista == 0 then
    if wartosc == nil then
        return
    end


            table.insert(
    local lista =
                lista,
        tabela[miejsce]
                nowy
            )


            return
    if #lista == 0 then


         end
         table.insert(
            lista,
            item
        )


         local obecna =
         return
            lista[1].wartosc


        if wartosc > obecna then
    end


            tabela[miejsce] = {
                nowy
            }


         elseif wartosc == obecna then
    local obecna =
         lista[1].wartosc


            table.insert(
                lista,
                nowy
            )


         end
    if wartosc > obecna then
 
         tabela[miejsce] = {
            item
        }
 
    elseif wartosc == obecna then
 
        table.insert(
            lista,
            item
        )


     end
     end


end


    -- =====================================================
    -- WYBÓR DYSCYPLINY
    -- =====================================================


    if mw.ustring.lower(dyscyplina)
-- =========================================================
        == "piłka nożna"
-- FORMAT REKORDÓW MECZOWYCH
        or
-- =========================================================
        mw.ustring.lower(dyscyplina)
        == "pilka nozna"
    then


        return p.pilka(
local function tekstMeczow(lista)
            sezon,
            druzyna,
            sezonSQL,
            druzynaSQL,
            rozgrywki,
            rozgrywkiSQL
        )


    if not lista or #lista == 0 then
        return "—"
     end
     end


    local wynik = {}
    for _, item in ipairs(lista) do


    -- Domyślnie koszykówka
        local roznica =
    return p.koszykowka(
            item.roznica or 0
        sezon,
        druzyna,
        sezonSQL,
        druzynaSQL,
        rozgrywki,
        rozgrywkiSQL
    )


end
        local roznicaTekst


        if roznica >= 0 then


            roznicaTekst =
                "+" ..
                tostring(roznica)


-- =========================================================
        else
-- =========================================================
-- KOSZYKÓWKA
-- =========================================================
-- =========================================================


            roznicaTekst =
                tostring(roznica)


function p.koszykowka(
        end
    sezon,
    druzyna,
    sezonSQL,
    druzynaSQL,
    rozgrywki,
    rozgrywkiSQL
)




    -- =====================================================
        table.insert(
    -- POBRANIE MECZÓW
            wynik,
    -- =====================================================


    local fieldsMecze =
            item.tekst ..
        table.concat({
            " (" ..
            item.wynik ..
            ", " ..
            roznicaTekst ..
            ")"


            "Mecze.id=mecz",
        )
            "Mecze.data=data",
 
            "Mecze.sezon=sezon",
    end
            "Mecze.rozgrywki=rozgrywki",
            "Mecze.druzyna1=druzyna1",
            "Mecze.druzyna2=druzyna2",
            "Mecze.gole1=gole1",
            "Mecze.gole2=gole2",
            "Mecze.wynik=wynik",
            "Mecze.strona_meczu=s