Routa pro stránkování v komponentě

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kleinpetr
Člen | 480
+
0
-

Ahoj,

jak bych mohl tohle upravit pomocí routy ?

www.domain.cz/articles/list/articleList-visualPaginator-page=4
komponenta ArticleList v sobě vytváří VisualPaginator

představoval bych si něco jako:

www.domain.cz/articles/list/page/4

mockrát díky.

Editoval kleinpetr (20. 5. 2015 8:11)

ChocoTUx
Člen | 31
+
0
-

Ahoj,

no tak když máš routu tak tam prostě napíšeš co jednotlivé věci znamenají

V routě máš tohle

$router[] = new Route('<presenter>/<action>/<type>/<number>', Homepage:default);

a zpracuješ to v presentru takhle

class ArticlesPresenter
{

public function actionList()
{
 $type = $this->getParam('type'); //tady se ti načte page
 $number = $this->getParam('number'); //tady se ti načte 4
}
//nebo by to mohlo fungovat primo v hlavice metody
public function actionList($type, $number)
{

}

}

a když chceš sestavit adresu, tak prostě jenom používáš redirect nebo n:href s parametry

$this->redirect('Articles:list', array(type=>'page', 'number'=>4);

v sablone

<a n:href="Articles:list, type=>page, number=>4">
kleinpetr
Člen | 480
+
0
-

Jojo, to chápu, ale proto jsem napsal nadpis v komponentě . nevím jak je předat do komponenty. Jedině udělat v presenteru členské proměnné, a pak si je vytáhnout při vytváření komponenty a předat si je, ale je to takový moc zdlouhavý..

David Matějka
Moderator | 6445
+
+3
-

Do routy muzes dat kompletni path k parametru:

new Route('<presenter>/<action>/page/<articleList-visualPaginator-page \d+>'
ChocoTUx
Člen | 31
+
0
-

Aha promiň, tohle jsem zazdil.
No co přesně chceš od komponenty?
Routování stejně vždy provádí routa a první to musí jít přes presenter. Takže když potřebuješ to číslo dostat do komponenty, tak ji to předej jako paramter nebo tak nějak.

A když chceš dělat redirect přes komponentu? Tak musel by jsi si ji tam dostat – nebo inicializovat nějakou třídu co to umí (tužím že http\request). Ale osobně bych nechal routování na presentru (něco vrací nebo tak nějak).

kleinpetr
Člen | 480
+
0
-

To je přesně to o co jsem se pokoušel ! díky

kleinpetr
Člen | 480
+
0
-

Mockrát děkuju za pomoc :)