Nette Stránkování – Úprava routeru
- jAkErCZ
- Člen | 322
Zdravím Vás,
Řeším takovou věc používám Nette stránkvání
A potřebuji aby v routeru fungovalo
Což bude vypadat private-tours/2 to se mi podařilo vyřešit když manuálně za / napíšu číslo získám data z této stránky.
Ale když mám výpis stránek a kliknu na danou stránku tak odkaz vypadá
private-tours?page=2
Což při kliknutí nic neudělá jelikož aby to fungovalo musel by být odkaz právě private-tours/2
myslel sem si že když použiji v routeru nepovinný parametr [/<page=1>] tak mi to bude dělat přesně to co budu chtít ale to nejede.
$router->addRoute('[<locale=en en|fr|ru|es|de|cs>/]private-tours[/<page=1>]', 'Tours:default');
Výpis paginatoru
<li n:for="$i = $left; $i <= $right; $i++" n:class="'page-item',$i == $page ? active">
{if $i == $page} {* Aktivní stránka. *}
<span class="page-link">{$i}
<span class="sr-only">(current)</span></span>
{else}
<a class="page-link" href="{$url->setQueryParameter('page', $i)->getAbsoluteUrl()}">{$i}</a>
{/if}
</li>
Jak tedy docílím toho co chci?
Díky za rady
- jAkErCZ
- Člen | 322
David Grudl napsal(a):
Proč nevytváříš odkazy takto? https://doc.nette.org/…eating-links
Jelikož Paginator mám jako komponentu a tam kde chci stránkování tak si ho tam inicializuju a pak používám. Pokud bych tam odkazy dělal tímto způsobem bylo by to přece na pevno definovaný na nějaký presenter ne?
- Martk
- Člen | 661
V paginatoru nastavíš persistentní parametr:
#[Persistent]
public int $page;
budeš na něho v šabloně odkazovat:
{link this page: 2}
Registruješ do presenteru:
protected function createComponentPaginator() { ... }
A v routeru nastavíš absolutní cestu k parametru $page
[<locale=en en|fr|ru|es|de|cs>/]private-tours[/<paginator-page=1>]
IMHO by to mělo být vše a mělo by to fungovat
- jAkErCZ
- Člen | 322
Martk napsal(a):
V paginatoru nastavíš persistentní parametr:
#[Persistent] public int $page;
budeš na něho v šabloně odkazovat:
{link this page: 2}
Registruješ do presenteru:
protected function createComponentPaginator() { ... }
A v routeru nastavíš absolutní cestu k parametru $page
[<locale=en en|fr|ru|es|de|cs>/]private-tours[/<paginator-page=1>]
IMHO by to mělo být vše a mělo by to fungovat
Díky moc to je ono 👍