poradte s routovanim pls

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

Ahoj mam tuto routu:

<?php


$router[] = new Route('index.php', array(
	'module' => 'Front',
	'presenter' => 'Default',
), Route::ONE_WAY);

$router[] = new Route('<module>/<presenter>/<action>', array(
    'module' => 'Front',
    'presenter' => 'Default',
    'action' => 'default',
));

?>

chci aby odkazy mely na frontendu tvar:

/blog/
/kontakt/

a ne

/front/blog/
/front/kontakt/

jak toho prosim docilim?
predem dekuji

LM
Člen | 206
+
0
-

Asi bych zkusil něco jako:

$router[] = new Route('blog/', array(
    'presenter' => 'Front:Blog',
    'action' => 'default',
));

$router[] = new Route('kontakt/', array(
    'presenter' => 'Front:Contact',
    'action' => 'default',
));
simon
Člen | 98
+
0
-

takze se musi pro kazdy prezenter psat zvlast routa? nejde to nejak jednodusseji?

LM
Člen | 206
+
0
-

O jednodušším řešení nevím :-) někdo jiný třeba jo…

_Martin_
Generous Backer | 679
+
0
-

A potřebuješ mít ty presentery v modulu?

simon
Člen | 98
+
0
-

tak ty frontendovy by asi nemusely byt, ale prijde mi to pak takovy prehlednejsi…
jestli to jinak nejde tak to necham takhle…

_Martin_
Generous Backer | 679
+
0
-

Kolik máš těch modulů? Pokud jich není moc, dalo by se použít řešení z příkladu „modules-usage“.

simon
Člen | 98
+
0
-

praveze pouzivam reseni z prikladu modules-usage.
modulu bude asi 5

Honza Marek
Člen | 1664
+
0
-

podle mě by stačilo místo ‚<module>/<presenter>/<action>‘ dát ‚<presenter>/<action>‘

simon
Člen | 98
+
0
-

no a pak tam mam modul admin a na ten se uz nedostanu, kdyz to dam jak rikas…

carnaby
Člen | 7
+
0
-

a co takto … zalezi na poradi rout

<?php
$router[] = new Route('admin/<presenter>/<action>', array(
    'module' => 'Admin',
    'presenter' => 'Default',
    'action' => 'default',
));

$router[] = new Route('<presenter>/<action>', array(
    'module' => 'Front',
    'presenter' => 'Default',
    'action' => 'default',
));
?>
simon
Člen | 98
+
0
-

aha myslis jako vytvaret routy pro moduly, jo to by slo. diky moc za rady, vyzkousim.

simon
Člen | 98
+
0
-

Tak tamto uz jsem vyresil.

mam tu dalsi problem.
rad bych mel adresu ve tvaru

/storage/img/kytky/tulipan.jpg

soubor tulipan.jpg je ulozen v adresari storage, ktery je na urovni adresare app.

zkousim routu ktera zavola akci presenteru, a ta preda obrazek ke stazeni (to neni problem)

<?php
$router[] = new Route('/storage/<path>', array(
    'module' => 'Front',
    'presenter' => 'Default',
    'action' => 'storage',
    'path' => '',
));

?>

problem je ze si prohlizec mysli, ze je to normalni cesta a vraci

Not Found

The requested URL /storage/img/kytky/tulipan.jpg was not found on this server.

poradite pls co s tim? diky

Mas3r
Člen | 116
+
0
-

Použij směřování FILE souborů na index.php přes HTACCESS

simon
Člen | 98
+
0
-

tak jsem to tak udelal a ted mi ladenka hazi chybu

BadRequestException

No route for HTTP request.

routu jsem nemenil jen jsem z htaccessu odebra priponu jpg

David Grudl
Nette Core | 8218
+
0
-

Použij tam new Route('/storage/<path .*?>', ...), tou maskou .*? povolíš všechny znaky včetně lomítek.