Autor | Zpráva | ||
---|---|---|---|
barneby Profil |
#1 · Zasláno: 1. 1. 2014, 14:04:19
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>"; } ?> <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> |
||
Jan Tvrdík Profil |
#2 · Zasláno: 1. 1. 2014, 14:11:39
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 |
#3 · Zasláno: 1. 1. 2014, 14:58:14
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 |
#4 · Zasláno: 1. 1. 2014, 14:59:27
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 |
#5 · Zasláno: 1. 1. 2014, 15:01:24 · Upravil/a: barneby
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>"; } } } ?> |
||
Antik4 Profil |
#6 · Zasláno: 1. 1. 2014, 18:53:49
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} |
||
Časová prodleva: 11 let
|
0