Autor Zpráva
Jardaklon
Profil *
Hezký den,
patlám se s tím už celkem dlouhou dobu a stále nevím jak následující kód upravit, aby číslo stránky 1 odkazovalo na page=0. Čili snížit odkazování o jednu stránku.
Budu rád za pomoc.


<?php


/** ---------- nastaveni ---------- */

$options = array(
                    'rows_total' => ''.$mess->CountCurrent().'',  // celkovy pocet zaznamu 
                    'offset'     => $show, // po kolika budeme strankovat
                    'interval'   => 10, // interval cisel nalevo a napravo od aktivniho = vybraneho cisla
                    'url'        => '?str=diskusindex&?add=&', // adresa ke ktere se pripoji strankovani parametr
                );
echo pagingBlock($options);



function pagingBlock($options = array())
{
    $html = '';
    
    $pages_total = ceil($options['rows_total'] / $options['offset']);
    $interval    = $options['interval'];
    $actual_page = empty($_GET["page"]) ? 1 : $_GET["page"];
    $url         = $options['url']; //"?url=1&";
    
    
    /** ---------- fix proti URL hacku ---------- */
    if ($actual_page < 0)     
        $actual_page = 0;
    
    if ($actual_page > $pages_total) 
        $actual_page = $pages_total;


    /** ---------- co budeme ukazovat, interval ---------- */
    $show = array();
    
    for ($i = $actual_page - $interval; $i <= $actual_page + $interval; $i++)
    {
        if ($i > 0 && $i <= $pages_total)
            $show[] = $i;
    }
    
    
    /** ---------- zacatek rady ---------- */
    
    if ($actual_page - $interval == 2)
    {
        $html .= "<a href='".$url."page=0'>1</a> ";
    }
    
    if ($actual_page - $interval > 2)
    {
        $html .= "<a href='".$url."page=0'>1</a> ... ";
    }
    
    
    /** ---------- dynamicky stred ---------- */
    
    for ($i = 0; $i <= $pages_total; $i++ )
    {
        if (in_array($i, $show))
        {
            if ($i == $actual_page)
            {
                $html .= " <strong>$i</strong> ";
            }
            else
            {
                $html .= "<a href='".$url."page=$i'>$i</a> ";
            }
        }
    }
    
    /** ---------- konec rady ---------- */
    
    if ($actual_page + $interval + 1 == $pages_total)
    {
        $html .= "  <a href='".$url."page=".$pages_total."'>".$pages_total."</a>";
    }
    
    if ($actual_page + $interval + 1 < $pages_total)
    {
        $html .= " ... <a href='".$url."page=".$pages_total."'>".$pages_total."</a>";
    }
    
    
    /** ---------- vystup  ---------- */
    return $html;
}

?>
Klonojarda
Profil *
Tady to máš, je to šílený, ale bude ti to fungovat.

Drogy užívej v dobré míře a naději!!!

<?php


/** ---------- nastaveni ---------- */

$options = array(
                    'rows_total' => ''.$mess->CountCurrent().'',  // celkovy pocet zaznamu 
                    'offset'     => $show, // po kolika budeme strankovat
                    'interval'   => 10, // interval cisel nalevo a napravo od aktivniho = vybraneho cisla
                    'url'        => '?str=diskusindex&?add=&', // adresa ke ktere se pripoji strankovani parametr
                );
echo pagingBlock($options);


/**
 * Strankovani s promenlivym stredem 
 * 
 * @param array $options  pole slouzici k nastaveni hodnot ktere funkce vyzaduje viz priklad  
 * @date 28-12-2009  
 * @author Roman Janko <admin@rjwebdesign.net>  
 *   
 **/  
function pagingBlock($options = array())
{
$html = '';
    
    $pages_total = ceil($options['rows_total'] / $options['offset']);
    $interval    = $options['interval'];
    $actual_page = empty($_GET["page"]) ? 1 : $_GET["page"]+1;
    $url         = $options['url']; //"?url=1&";
    
    
    /** ---------- fix proti URL hacku ---------- */
    if ($actual_page < 0)     
        $actual_page = 0;
    
    if ($actual_page > $pages_total) 
        $actual_page = $pages_total;


    /** ---------- co budeme ukazovat, interval ---------- */
    $show = array();
    
    for ($i = $actual_page - $interval; $i <= $actual_page + $interval; $i++)
    {
        if ($i > 0 && $i <= $pages_total)
            $show[] = $i;
    }
    
    
    /** ---------- zacatek rady ---------- */
    
    if ($actual_page - $interval == 2)
    {
        $html .= "<a href='".$url."page=0'>1</a> ";
    }
    
    if ($actual_page - $interval > 2)
    {
        $html .= "<a href='".$url."page=0'>1</a> ... ";
    }
    
    
    /** ---------- dynamicky stred ---------- */
    
    for ($i = 1; $i <= $pages_total; $i++) 
    
    {
        if (in_array($i, $show))
        {
            if ($i == $actual_page)
            {   
                
                $html .= " <strong>$i</strong> ";
            }
            else
            {
                $kaliber = $i-1; ///zkalibruje že stránka 1 má odkaz na page 0
                $html .= "<a href='".$url."page=$kaliber'>$i</a> ";
            }
        }
    }
    
    /** ---------- konec rady ---------- */
    
    if ($actual_page + $interval + 1 == $pages_total)
    {
        $kaliber2 = $pages_total-1;
        $html .= "  <a href='".$url."page=".$kaliber2."'>".$pages_total."</a>";
    }
    
    if ($actual_page + $interval + 1 < $pages_total)
    {
        $kaliber2 = $pages_total-1;
        $html .= " ... <a href='".$url."page=".$kaliber2."'>".$pages_total."</a>";
    }
    
    
    /** ---------- vystup  ---------- */
    return $html;
}

?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: