Filtrovací tabulka, překlad slov v url

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

Podle dokumentace jsem udělal

$router[] = new Route('<lang>/<presenter galerie|blog|novinky|ubytovani>/<action>/<id>', array(
                    'lang' => 'cs',
                    'presenter' => array(
                        Route::FILTER_TABLE => array(
                            // řetězec v URL => presenter
                            'galerie' => 'Gallery',
                            'blog' => 'Blog',
                            'novinky' => 'News',
                            'ubytování' => 'Accommodation'
                        ),
                    ),
                    'action' => 'default'
                ));

Ale po zadání do url http://localhost/…t/cs/galerie

Cannot load presenter ‚Galerie‘, class ‚App\Presenters\GaleriePresenter‘ was not found

Když mám GalleryPresenter, co mi uniká?

David Matějka
Moderator | 6445
+
0
-

neni tam nejaka routa pred tim, ktera to sezere? koukni do routing panelu, ktera routa se matchnula

mara11
Člen | 42
+
0
-

Už jsem na to přišel… takhle mi to funguje:

$router[] = new Route('<presenter galerie|blog|novinky|ubytovani>/<action>[/<id>]', array(
                    'presenter' => array(
                        Route::FILTER_TABLE => array(
                            // řetězec v URL => presenter
                            'galerie' => 'Gallery',
                            'blog' => 'Blog',
                            'novinky' => 'News',
                            'ubytovani' => 'Accommodation'
                        )),
                    'action'    => 'default'
                ));
                $router[] = new Route('<presenter>/<action>[/<id>]', array(
                    'presenter' => 'Page',
                    'action'    => 'default'
                ));