Generování odkazu na komponentu v jiném view přes $this->link

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

Zdravím, řeším takovou záludnost. Potřeboval bych generovat přes $this->link v jednom view generovat odkaz na komponentu (confirmation dialog, ale do jiného view). Má to jediný důvod, v tom view kde to generuju nemají někteří useři přístup, tak je redirectnu na default view a tam mají ve flash message odkaz, který má otevřít confirmation dialog. Jelikož je ale vygenerovaný odkaz z jiného view, kam nemají přístup, dialog nefunguje.

Prostě a jednoduše, existuje nějaká možnost, jak upravit toto

<?php
$this->link("confirm:confirmUnlock!", array('id' => $id))
?>

aby to mířilo na jiné view, než na aktuální?

Nic podobného jako

<?php
$this->link("Default:default:confirm:confirmUnlock!", array('id' => $id))
?>

bohužel nefunguje. Dík předem.

Šaman
Člen | 2668
+
0
-

Ty necílíš na view, ale na akci confirmUnlock. Tam si můžeš případně změnit jaký pohled se bude renderovat, nebo rovnou přesměrovat na jinou action/view.

forkman
Člen | 72
+
0
-

Dík za reakci. Problém je v tom, že to je nějaký „magický“ handle komponenty, kterou bych nerad prznil. Opravdu by to nešlo jak jsem si to myslel? Nebo to nechápu a prosím o kopanec :-)

srigi
Nette Blogger | 559
+
0
-

Podla mna to chapes spravne, bohuzial v docke sa docitas
Signál se vždy volá na aktuálním presenteru a view, tudíž není možné jej směřovat jinam.

A toto tvrdenie podporuje aj pohlad do zdrojaku, kde je v pripade vytvarania linku na signal navrdo nastaveny destination na 'this'.

Mimochodom sam som ostal dost odpaleny, ked som pouzil ConfirmationDialog a zistil, ze je mozne takto poslat signal komponente, pomocou $presenter->link('component:signal!'). Jedna sa opat o nezdokumentovanu featuru. Preto si aj tak trochu myslim, ze sa Saman vo svojej odpovedi myli (no offence). Ale mozno sa mylim ja :)

Editoval srigi (19. 2. 2013 19:06)