flashMessage → link nevytvoří odkaz

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

Pokousim se vytvorit odkaz z flashMessage pres

<?php
$this->flashMessage('Smazat?')
                    ->link = $this->link('deleteItem', $id);
?>

melo by to odkazat na akci function actionDeleteItem($id)

Problem, je ze to zadny odkaz nevytvori a ja nevim proc… Neni treba nekde neco nastavit, includovat nejake soubory nebo neco aby ->link zacal fungovat? Dekuji

Jan Endel
Člen | 1016
+
0
-

Je to trošku komplikovanější, ale mělo by to jít nějak takto (psáno z hlavy):

$message = Html::el('a')->href($this->link('deleteItem', $id))->setText('Smazat?');

$this->flashMessage($message);

pokud to teda tvoříš v presenteru, ještě je zapotřebí u flashmessage vypnout escapování ( {!$flash} )

Mikulas Dite
Člen | 756
+
0
-

To nefunguje, Control::flashMessage() vrací (object)[], tedy stdClass https://api.nette.org/…rol.php.html#126 . Musíš do message vložit instanci Html, resp. pro tenhle případ Html::el('a').

Edit: pozdě, reakce na OP.

Editoval Mikulas Dite (12. 10. 2011 16:06)

simPod
Člen | 383
+
0
-

dekuji oboum za radu a za inspiraci

vnuklo mi to napad

<div n:foreach="$flashes as $flash" class="flash {$flash->type}">
		<a href="{$flash->link}" n:tag-ifset="$flash->link">{$flash->message}</a>
            </div>

kazdopadne pro ty slozitejsi veci pouziji Html::el('a')

diky moc!