Jak vytvořit odkaz na jiný server?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- toka
- Člen | 253
Co se týče flashMessages (netvrdím, že to je absolutně jediné správné řešení):
$a = Html::el('a')->href('http://www.google.cz')->setHtml('Odkaz');
$this->flashMessage('Text zprávy s odkazem - ' . $a, 'info');
Je však potřeba upravit výpis flashMessage v šabloně, aby nedocházelo k escapování:
{snippet flashMessage}
{foreach $flashes as $flash}
<div class="flash {$flash->type}">{!$flash->message}</div>
{/foreach}
{/snippet}
Pro přesměrování na jiný server slouží následující metoda/konstrukce:
$this->redirectUri('http://www.google.cz/');
EDIT:
Nevím jak moc by bylo správné, z bezpečnostních důvodů, to
„escapování“ ovlivňovat. Jestli neřešit takto:
$a = Html::el('a')->href('http://www.google.cz')->setHtml('Odkaz');
$msg = $this->flashMessage('Text zprávy s odkazem - ' . $a, 'info');
$msg->noescape = true;
{snippet flashMessage}
{foreach $flashes as $flash}
<div class="flash {$flash->type}">{if isset($flash->noescape)}{!$flash->message}{else}{$flash->message}{/if}</div>
{/foreach}
{/snippet}
Editoval toka (3. 3. 2011 9:04)
- toka
- Člen | 253
Nedošlo mi, že pokud je flashMessage předán objekt HTML, tak nedochází k escapování. Tvůj příklad je asi nejjednodušší.
A nebo jinak v případě použití Html
i pro sestavení
odkazu:
$this->flashMessage(Html::el()->setHtml('Text zprávy s odkazem - ' . Html::el('a')->href('http://www.seznam.cz')->setHtml('Odkaz')));