Autor Zpráva
barneby
Profil
Dobrý den,
Vím že se to tady řešilo 1000000x ale nic my nějak nepomohlo :( .
Potřeboval by sem nějak poradit jak udělat stránkování nejlíp pomocí http://doc.nette.org/cs/2.1/pagination - Nette.
Skoušel jsem snad 1000 návodů ale prostě nic, proto by sem ocenil kdyby si někdo dal práci a pomohl by my napsat nějaký ten kód.
Články generuji pomocí:
<?php
         $result = dibi::query('SELECT * FROM [user] LIMIT 16');
            if ($all = $result->fetchAll())
             foreach($all as $row) 
                    {
                      echo "<tr>";
                       echo "<td><span class=\"th\">".$row->id."</span></td>";
                       echo "<td><span class=\"th-img\"><img src=\"https://avatar.net/avatar/".$row->username."/50.png\"></span></td>";
                       echo "<td><span class=\"th\">".$row->username."</span</td>";
                       echo "<td><span class=\"th\">".$row->balance."</span</td>";
                      echo "</tr>";
                    }     
       ?>
A rozvržení menu pro výběr stránky:
<ul class="pure-paginator">
      <li><a class="pure-button prev" href="#">«</a></li>
      <li><a class="pure-button" href="#">1</a></li>
      <li><a class="pure-button pure-button-active" href="#">2</a></li>
      <li><a class="pure-button" href="#">3</a></li>
      <li><a class="pure-button" href="#">4</a></li>
      <li><a class="pure-button" href="#">5</a></li>
      <li><a class="pure-button" href="#">6</a></li>
      <li><a class="pure-button" href="#">7</a></li>
      <li><a class="pure-button" href="#">8</a></li>
      <li><a class="pure-button" href="#">9</a></li>
      <li><a class="pure-button" href="#">10</a></li>
      <li><a class="pure-button next" href="#">»</a></li>
     </ul>
Budu doopravdy rád za každou radu :), mockrát děkuji.
Jan Tvrdík
Profil
class FooPresenter extends UI\Presenter
{
    public function renderDefault($page = 1)
    {
        $count = dibi::query('SELECT COUNT(*) FROM [users]')->fetchSingle();
    
        $paginator = new Nette\Utils\Paginator;
        $paginator->setItemCount($count); // celkový počet položek (např. článků)
        $paginator->setItemsPerPage(30); // počet položek na stránce
        $paginator->setPage($page); // číslo aktuální stránky, číslováno od 1
        
        $users = dibi::query('SELECT * FROM [users] %lmt %ofs', $paginator->length, $paginator->offset);
        ...
    }
}
barneby
Profil
Píše my to: Fatal error: Class 'UI\Presenter' not found in C:\xampp\htdocs\project\minecraft1\index.php on line 9
Na řádku 9 je extends UI\Presenter, takže UI\Presenter není dostupný.
Co s tím?
Jan Tvrdík
Profil
barneby:
Co s tím?
Naučit se základy PHP, konkrétně přečíst si něco o jmenných prostorech zřejmě neuškodí.
barneby
Profil
No tak my napiš co s tím nebo nějaký odkaz na ty základy.


Už jsem na to přišel ;)
Udělal jsem to tahle
class FooPresenter extends Nette\Application\UI\Presenter



Mám to takhle:
<?php
        class FooPresenter extends Nette\Application\UI\Presenter
        {
           public function renderDefault($page = 1)
           {
             $count = dibi::query('SELECT COUNT(*) FROM [user]')->fetchSingle();
    
             $paginator = new Nette\Utils\Paginator;
             $paginator->setItemCount($count); // celkový počet položek (např. článků)
             $paginator->setItemsPerPage(16); // počet položek na stránce
             $paginator->setPage($page); // číslo aktuální stránky, číslováno od 1

             $result = dibi::query('SELECT * FROM [user] %lmt %ofs', $paginator->length, $paginator->offset);
                 if ($all = $result->fetchAll())
                    foreach($all as $row) 
                        {
                         echo "<tr>";
                          echo "<td><span class=\"th\">".$row->id."</span></td>";
                          echo "<td><span class=\"th-img\"><img src=\"https://avatar.net/avatar/".$row->username."/50.png\"></span></td>";
                          echo "<td><span class=\"th\">".$row->username."</span</td>";
                          echo "<td><span class=\"th\">".$row->balance."</span</td>";
                         echo "</tr>";
                    }   
           }
        }  
       ?>
Ale nic to negeneruje :(
Antik4
Profil
barneby:
kdyby si někdo dal práci a pomohl by my napsat nějaký ten kód.
Práci si s tím už někdo dal. Visual Paginator

Nahodit soubor kdekoliv kde dosáhne autoloader.

A kód

class FooPresenter extends UI\Presenter
{
    public function renderDefault($page = 1)
    {
        $count = dibi::query('SELECT COUNT(*) FROM [users]')->fetchSingle();
        
        $visualPaginator = new \VisualPaginator($this, 'page');
        
        $paginator = $visualPaginator->paginator;
        $paginator->itemsPerPage = 30;
        $paginator->itemCount = $count;
        
        $users = dibi::query('SELECT * FROM [users] %ofs %lmt', $paginator->offset, $paginator->itemsPerPage);
    }
}

// V šabloně {control page}

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: