Hezká URL, aneb typy na psaní presenterů a šablon

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

zdravím,

řeším takový problém, zatím jsem to nikde nenašel, abych řekl pravdu jsem dnes trochu už přepracovanej, tak možná proto, no nic, k problému.

abych měl cool URL, tak jsem vždy nazval můj presenter např: Oskole a moje URL byla o-skole/bla-bla-neco

no jenže teď koukám, že od tý doby co mám aktuální nette, tak se mi zobrazuje oskole/bla-bla-neco, tedy zajímavé je, že u šablon když napíšu např: adresaKontakty routa mi zobrazí oskole/adresa-kontakty, takže se ptám, je něco u mně špatně? Nebo už u presenterů se nerozlišují velká a malá písmena? případně jsou ještě nějaké triky pro cool url?

Jan Mikeš
Člen | 771
+
0
-

Napis OSkole a ne Oskole :)

wb2009
Člen | 125
+
0
-

Nefunguje :(

Jan Tvrdík
Nette guru | 2595
+
0
-

Nebo to udělej rovnou správně.

wb2009
Člen | 125
+
0
-

OK, zkusil jsem toto

        $container->router[] = $frontRouter = new RouteList('Front');
        $frontRouter[] = $route = new Route('<presenter>/<action>/<id>', array(
    'presenter' => array(
        Route::VALUE => 'Akce',
        Route::FILTER_TABLE => array(
            // řetězec v URL => presenter
            'akce-skoly' => 'Akce'
        ),
    ),
    'action' => 'default',
    'id' => NULL,
));

a nefunguje, resp. žádná chyba, jen se mi v URL nezobrazí nic a to doslova…

Editoval wb2009 (2. 9. 2012 19:58)

Jan Tvrdík
Nette guru | 2595
+
0
-
$route = new Route('<presenter>/<action>/<id>', array(
	'presenter' => array(
		Route::FILTER_TABLE => array(
			// řetězec v URL => presenter
			'akce-skoly' => 'Akce'
		),
	),
	'action' => 'default',
	'id' => NULL,
));
wb2009
Člen | 125
+
0
-

Paráda díky a mohu se zeptat proč tam vypadlo to Route::VALUE, v dokumentaci to tam tak je? :)

Aurielle
Člen | 1281
+
0
-

Protože kdybys předal Route::VALUE, určil bys tím defaultní hodnotu daného parametru. Což znamená, že generované odkazy by tuto hodnotu neobsahovaly právě proto, že je defaultní.

edit: @Jan Tvrdlík 1337 příspěvků! Congratulations :D

Editoval gmvasek (2. 9. 2012 22:10)

Jan Tvrdík
Nette guru | 2595
+
0
-

wb2009 wrote: Paráda díky a mohu se zeptat proč tam vypadlo to Route::VALUE, v dokumentaci to tam tak je? :)

Skvělý dotaz. Kdybych nebyl líný, napsal bych ti to už minule :) Route::VALUE slouží pro nastavený výchozí hodnoty. Následující čtyři routy jsou zcela ekvivalentní (pokud se nemýlím, pochopitelně).

$route = new Route('<presenter=Homepage>/<action=default>');

$route = new Route('<presenter>/<action>', 'Homepage:default');

$route = new Route('<presenter>/<action>', array(
    'presenter' => 'Homepage',
    'action' => 'default',
);

$route = new Route('<presenter>/<action>', array(
    'presenter' => array(Route::VALUE => 'Homepage'),
    'action' => 'default',
);