Ajax restore request
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Jod
- Člen | 701
Nevie niekto ako sa dá spraviť ajaxové presmerovanie pri backlinku?
$this->getApplication()->restoreRequest($this->backlink);
Vracia mi to stránku, ale ja potrebujem aby sa mi to presmerovalo
z loginu.
Vyriešil som to tak, že som dal do BasePresenter:
<?php
function ajaxRestoreRequest($key)
{
$session = Environment::getSession('Nette.Application.Request');
if (isset($session->rq[$key])) {
$request = $session->rq[$key];
unset($session->rq[$key]);
$params = $request->getParams();
$presenter = $request->getPresenterName();
$view = $params['action'];
$destination = ':' . $presenter . ':' . $view;
$this->redirect($destination);
}
}
?>
Editoval Jod (14. 11. 2008 10:52)
- Jod
- Člen | 701
Po novom mi to funguje takto:
<?php
try {
$this->getApplication()->restoreRequest($this->backlink);
} catch (ForwardingException $e) {
$httpRequest = Environment::getHttpRequest();
$uri = $this->getApplication()->getRouter()->constructUrl($e->getRequest(), $httpRequest);
$this->redirectUri($uri);
}
?>
Editoval Jod (27. 2. 2009 0:34)