Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

Dokončenie paginace (stránkovanie) v PHP

V minulom tutoriále o tvorbe paginace (stránkovanie) v PHP sme si založili databázu s 1000 testovacími automobilmi a popísali sme si, ako by mal fungovať helper, ktorý bude zobrazovať našu paginaci. V dnešnom dieli aplikácii dokončíme.

Paginace.php

Vytvorte si súbor paginace.php, do ktorého vložíme funkcie pre výpis navigačnej lišty s číslami stránok:

<?php

function urlStrany($url, $strana)
{
    return str_replace('{strana}', $strana, $url);
}

function paginace($strana, $stran, $url)
{
    $polomer = 5; // Poloměr oblasti kolem aktuální stránky
    $html = '<nav class="centrovany"><ul class="paginace">';
    // Šipka vlevo
    if ($strana > 1)
        $html .= '<li><a href="' . urlStrany($url, $strana - 1) . '">&laquo;</a></li>';
    else
        $html .= '<li class="neaktivni">&laquo;</li>';
    $left = $strana - $polomer >= 1 ? $strana - $polomer : 1;
    $right = $strana + $polomer <= $stran ? $strana + $polomer : $stran;
    // Umístění jedničky
    if ($left > 1)
        $html .= '<li><a href="' . urlStrany($url, 1) . '">1</a></li>';
    // Tečky vlevo
    if ($left > 2)
        $html .= '<li class="neaktivni">&hellip;</li>';
    // Stránky v radiusu
    for ($i = $left; $i <= $right; $i++)
    {
        if ($i == $strana) // Aktivní stránka
            $html .= '<li class="aktivni">' . $i . '</li>';
        else
            $html .= '<li><a href="' . urlStrany($url, $i) . '">' . $i . '</a></li>';
    }
    // Tečky vpravo
    if ($right < $stran - 1)
        $html .= '<li class="neaktivni">' . '&hellip;' . '</li>';
    // Umístění poslední stránky
    if ($right < $stran)
        $html .= '<li><a href="' . urlStrany($url, $stran) . '">' . $stran . '</a></li>';
    // Šipka vpravo
    if ($strana < $stran)
        $html .= '<li><a href="' . urlStrany($url, $strana + 1) . '">&raquo;</a></li>';
    else
        $html .= '<li class="neaktivni">&laquo;</li>';
    $html .= '</ul></nav>';
    return $html;
}

Súbor obsahuje 2 funkcie. Prvá funkcia vráti URL adresu pre prechod na danú stránku a to tak, že prevezme URL adresu so značkou {strana} a na miesto tejto značky vloží číslo danej stránky. Keď funkciu pošleme parametre:

['index.php?strana={strana}', 2]

Vráti nám:

index.php?strana=2

Týmto spôsobom budeme generovať odkazy na stránky, aby bol súbor paginace.php univerzálne a mohli sme ho použiť pre akýkoľvek tvar URL, napr. Zamestnanci.php? Stranka = {strana}.

Druhá funkcia vygeneruje HTML kód navigačnej lišty a to podľa aktuálnej stránky a počtu stránok. V premennej $ polomer sa nachádza informácia koľko stránok chceme okolo aktuálnej stránky zobrazovať. Postupne vložíme šípku vľavo, 1. stránku, bodky, rozsah strán okolo tej aktuálnej, bodky a šípku vpravo. Všimnite si, že je navigácia kvôli sémantike vložená v elemente

 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 430x (22.56 kB)
Aplikácia je vrátane zdrojových kódov v jazyku PHP

 

Všetky články v sekcii
Ostatné tutoriály v PHP
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity