Odkaz do jiného modulu

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

Snažil jsem se vytvořit přesměrování do jiného modulu:

$this->redirect('Front:Access:login',$this->backlink());

ovšem končí to chybou

presenter 'Admin:Front:Access', class 'Admin_Front_AccessPresenter'was not found

je použita tato routa:

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

Mám chybu v tom odkazu? Můžete mi vysvětlit jak by se mělo toto implementovat?

LM
Člen | 206
+
0
-

Front modul asi nebude v modulu Admin? použí absolutní odkaz teda:

:Front:Access:login
vlki
Člen | 218
+
0
-

Myslím, že máš chybu v tom odkazu. Protože teď se to bere relativně vůči tomu modulu v kterém jsi. Pokud ale ještě před jméno modulu dáš dvojtečku, tak se to bere absolutně (nebo o úroveň výš? teď si nejsem jistý…).

Každopádně zkus

	$this->redirect(':Front:Access:login',$this->backlink());
Panda
Člen | 569
+
0
-

Ještě bych možná zmínil, že metoda backlink() u Presenteru v současné verzi Nette vrací celou cestu k presenteru bez oné dvojtečky na začátku, takže při vytváření odkazu, redirectu nebo jiné podobné operaci je nutno jí tam doplnit, jinak výsledkem bude opět odkaz např. na submodul Front v modulu Admin.

Je to feature, bug, nebo se to vztahuje k ‚TODO: implement $full‘, Davide?

David Grudl
Nette Core | 8218
+
0
-

Ta cesta, co se uvádí v metodách link(), redirect() nebo follow(), se nazývá destination – jde o řetězec, ze kterého se odvodí cílový presenter a view podobně, jako se odvozují relativní a absolutní cesty v souborovém systému nebo URL – jen místo lomítka se používá dvojtečka. Proto je také absolutní cesta začíná dvojtečkou.

V jedné z předchozích revizí jsem přidal klíčové slovo this, takže link('this') resp. link('this!') vede na současný presenter & view.

Panda napsal(a):

Ještě bych možná zmínil, že metoda backlink() u Presenteru v současné verzi Nette vrací celou cestu k presenteru bez oné dvojtečky na začátku, takže při vytváření odkazu, redirectu nebo jiné podobné operaci je nutno jí tam doplnit, jinak výsledkem bude opět odkaz např. na submodul Front v modulu Admin.

Je to feature, bug, nebo se to vztahuje k ‚TODO: implement $full‘, Davide?

Ono je to tak, že metoda backlink() by měla sloužit pro případy, když je například kvůli přihlášení potřeba přesměrovat na stránku s přihlašovacím formulářem a poté zase zpět. Jenže zatím nefunguje, respektive není to implementované.

ViliamKopecky
Nette hipster | 230
+
0
-

David Grudl napsal(a):

Ono je to tak, že metoda backlink() by měla sloužit pro případy, když je například kvůli přihlášení potřeba přesměrovat na stránku s přihlašovacím formulářem a poté zase zpět. Jenže zatím nefunguje, respektive není to implementované.

backlink() používám na „vyčištění“ URI od ?do=... atd. Čili po odeslání formuláře se vrátim akorát na adresu bez query.

Je tedy backlink() pro tenhle účel, nebo to je spíš akorát využití bugu?

deric
Člen | 93
+
0
-

Díky za vysvětlení. Hodila by se dokumentace nebo nějaký podrobný tutoriál vysvětlující filosofii frameworku pro aktuální verzi.

phx
Člen | 651
+
0
-

Snad bych jen upozornil, ze Route jsou nyni citlive na velikosti pismen! Docela jsem na tom ted pri update Nette vysekal a hned 2×! Drive (3 tydny na zpet) na velikosti nezalezelo, ale ted ANO. Je to BUG ci umyls?

// drive OK a ted ne
$router[] = new Route('<module>/<presenter>/<action>', array(
    'module' => 'front',
    'presenter' => 'default',
    'action' => 'default',
));

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

Kdyz poslu URL http://localhost/…kt/PreSenTer nebo http://localhost/…kt/presenter ci dokonce http://localhost/…kt/PRESENTER tak pokazde to vykresli jednu a tu samou stranku. Nebylo by proto vhodnejsi aby routy nebyly nachylne na velikosti pismen? Predejde se zbytecnym chybam!

ViliamKopecky
Nette hipster | 230
+
0
-

Myslim že je to úmysl, David to zmiňoval.

David Grudl
Nette Core | 8218
+
0
-

phx napsal(a):

Snad bych jen upozornil, ze Route jsou nyni citlive na velikosti pismen! Docela jsem na tom ted pri update Nette vysekal a hned 2×! Drive (3 tydny na zpet) na velikosti nezalezelo, ale ted ANO. Je to BUG ci umyls?

Citlivé to bylo pořád, jen dřív se generoval požadavek s malýma písmenkama a to se změnilo, viz vysvětlení.

Vím, že dotaz je staršího data, a chtěl jsem Routy rozšířít o možnost porovnávat parametry a jejich výchozí hodnoty i bez citlivosti na velikost písmenek, ale s postupem času přemýšlím, jestli z toho neudělat normu – potřebujete někdo porovnávání s citlivostí na velikost písmenek?