potíže a hezkými url v komponentách

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

Ahoj, mám např. url: /12-navstevni-kniha/?guestBook-11-visualPaginator-page=2&do=guestBook-11-visualPaginator-showPage .

Nevím si rady, jak vytvořit url: /12-navstevni-kniha/page-2

Moje routa vypadá takto:

$router[] = new Route('[<locale cs|en>/]<path>/', [
    'module' => 'Front',
    'presenter' => 'Category',
    'action' => 'show',
    'path' => [
        Route::FILTER_OUT => NULL,
        Route::PATTERN => '.*'
    ],
]);

Statická routa mi funguje:

 $router[] = new Route('[<locale cs|en>/]<path>/[page-<guestBook-11-visualPaginator-page>]', [
    'module' => 'Front',
    'presenter' => 'Category',
    'action' => 'show',
    'do' => 'guestBook-11-visualPaginator-showPage',
    'path' => [
        Route::FILTER_OUT => NULL,
        Route::PATTERN => '.*'
    ],
]);

Jak do routy můžu přidat reguální výraz nebo co byste mi prosím poradili?

Díky moc za pomoc.

CZechBoY
Člen | 3608
+
0
-

V té routě nikde nevidim ty parametry v cestě.

Asi si budeš muset udělat vlastní implementaci Nette\Application\IRouter, protože Route neumožňuje dynamicky pojmenované parametry. :-(

Petr Parolek
Člen | 455
+
0
-

jejda, to je na mě složité – dá se napsat jen část vlastního routeru a zachovat ostatní routy?

CZechBoY
Člen | 3608
+
0
-

Tak můžeš zkopírovat Route a upravit jen některé části aby do nich šel zapsat regulární výraz.

akadlec
Člen | 1326
+
0
-

A co tohle?

$router[] = new Route("auto-moto[/strana/<visualPaginator-page \d+>]", [
    "presenter" => "AutoMoto",
    "action" => "list",
    "visualPaginator-page" => null,
    "do" => " visualPaginator -showPage"
]);
CZechBoY
Člen | 3608
+
0
-

@akadlec tam je problém, že on používá Multiplier k vytváření subkomponenty, takže url je dynamická.