Routa pro výpis produktů – jak omezit NODE aby nezobrazoval PAGE-X?

Alsatian
Člen | 164
+
0
-

Ahoj, prosím o popostrčení.

Pro výpis produktů z kategorií mám routu

		$router[] = new Route('[<locale=cs [a-z]{2}>/]eshop[/<node [a-z0-9-]+>][/page-<visualPaginator-page \d+>]', [
    'presenter' => 'Produkt',
    'action' => 'prehled',
			'node' => null,
    'visualPaginator-page' => null,
    'do' => 'visualPaginator-showPage',
]);

Nyní bych rád generoval následující odkazy:
/eshop – přehled produktů všech kategorií
/eshop/page-x – stránkování produktů všech kategorií (použit paginator)
/eshop/nazev-prvni-kategorie – přehled produktů z konkrétní kategorie (parametr NODE)
/eshop/nazev-prvni-kategorie/page-x – konkrétní kategorie a stránkování

Při této routě, pokud při všech výpisu ze všech kateogorií (první příklad), kliknu na další stránku, zobrazí se správně, tedy /eshop/page-2. Pokud kliknu opět na další stránku, už se page-2 použije jako NODE a dostávám chybnou url /eshop/page-2/page-3

Tušíte, někdo, jak se toho mám zbavit? Napadá mě do NODE nějak uvézt, že nemůže obsahovat spojení „page-[0–9]+“, ale jak to tam dostat, netuším…

Moc děkuji!

Editoval Alsatian (25. 10. 2019 12:21)

Marek Bartoš
Nette Blogger | 1167
+
0
-

Přidej další routu. A nesnaž se všude cpát proměnné, když chceš matchnout statický string, tak ho tam prostě napiš staticky.
'[<locale=cs [a-z]{2}>/]eshop/page-<visualPaginator-page \d+>'

Alsatian
Člen | 164
+
0
-

Zatím jsem tedy nepokročil. Mimochodem, není náročnější na provádění scriptu více rout, než mít co nejvíce v jedné podmínce?