presmerovani uzivatele zpatky odkud prisel

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

Dobrý den, jak mohu uživatele přesměrovat na stránku odkuď přišel ? Mám tento kód ale ani jedna varianta mi nezafungovala (klikam na odkaz a nic).

public function handleZpet(){
           $url = $this->context->getService('httpRequest');
           $this->redirectUrl($url->getReferer());
       }

.latte
{link zpet!}

------------NEBO a chova se to STEJNE--------------------

public function actionZpet(){
           $url = $this->context->getService('httpRequest');
           $this->redirectUrl($url->getReferer());
       }

.latte
{link zpet}

děkuji

Editoval muflix (18. 9. 2012 1:22)

h4kuna
Backer | 740
+
0
-

Jasný protože referer po kliknutí na zpět bude mít pravděpodobně jinou url než požaduješ. Udělej si dump zkontroluj si co kdy čteš z referera a ulož si to třeba do session. Druhá možnost je pokud to jde využít v presenteru jsou metody

<?php
$key = $this->storeRequest();
$this->restoreRequest($key);
?>

Editoval h4kuna (18. 9. 2012 7:11)

JakubTN
Bronze Partner | 49
+
0
-

Pomoct by ti mohol aj tento clanok, aj ked sa tyka formularov, storeRequest a restoreRequest vysvetluje pekne.

muflix
Člen | 92
+
0
-

děkuji článek jsem přečetl a udělal jsem to takto, mám výpis zboží a po kliku na odkaz koupit mě handler koupit přesměruje na stránku košík, kde chci mít odkaz zpět abych se dostal na výpis zboží.

/** @persistent */
public $backlink;

public function beforeRenderProducts(){
            $this->backlink=$this->storeRequest();
        }

public function handleZpet(){
           $this->restoreRequest($this->backlink);
       }

public function handleKoupit(...){ ...
	$this->redirect('Homepage:kosik');
}
public function renderKosik(){
          ...
       }
<a href="{link zpet!}">Zpet</a>

výsledek je ten, že odkaz Zpet zavolá handler a nic nedělá (nebo nic viditelného).
?:-)

edit: případně pokuď použiju

public function handleZpet(){
           $this->redirect($this->restoreRequest($this->backlink));
       }

tak mi to hodí error

Destination must be non-empty string

Editoval muflix (18. 9. 2012 11:35)

vvoody
Člen | 910
+
0
-

Typujem ze predosla stranka na ktoru by si chcel ist spat bola v inom presentery nez v ktorom mas $backlink a ten before render.

muflix
Člen | 92
+
0
-

vvoody: nn vše je v HomepagePresenter.php