RedirectUri na referer + flash message

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

Ahoj,

potřeboval bych menší radu, jak docílit toho, abych byl při neoprávněném přístupu na požadovanou stránku přesměrováno na stránku odkazující, na níž bych vypsal příslušnou flash message.

Problém je ve vypsání flash message, viz toto:

...
$this->redirect(':Default:default'); // flash se vypíše, ale nemohu použít refererer, resp. jsem nenašel způsob, jak objekt Uri jednoduše přeformátovat vč. parametrů do tohoto tvaru
...

...
$this->redirectUri(Environment::getHttpRequest()->getReferer()->absoluteUri); // přesměreuje se na referera, což je super, ale není vypsána flash message - lze ji nějak explicitně dodefinovat?
...

Díky. Snad se to tu už neřešilo…

Panda
Člen | 569
+
0
-

Při redirectu musíš přidat do URL parametr, který bude identifikovat sadu flash zpráviček, které se mají zobrazit:

<?php
	$uri = Environment::getHttpRequest()->getReferer();
	$uri->appendQuery(array(self::FLASH_KEY => $this->getParam(self::FLASH_KEY)));
	$this->redirectUri($uri->absoluteUri);
?>

// Čárka nahrazena šipkou, díky!

Editoval Panda (24. 8. 2009 14:39)

lucass
Člen | 89
+
0
-

Panda napsal(a):

Při redirectu musíš přidat do URL parametr, který bude identifikovat sadu flash zpráviček, které se mají zobrazit:

<?php
	$uri = Environment::getHttpRequest()->getReferer();
	$uri->appendQuery(array(self::FLASH_KEY, $this->getParam(self::FLASH_KEY)));
	$this->redirectUri($uri->absoluteUri);
?>

Díky, funguje. Jen ještě opravím chybku – místo čárky v poli parametru appendQuery() má být šipka (překlep;)).

<?php

...
$uri->appendQuery(array(self::FLASH_KEY => $this->getParam(self::FLASH_KEY)));
...

?>

Aby si někdo nestěžoval, že mu to nefunguje…