Lze přes ajax přenášet flashMessage?
- CZechBoY
- Člen | 3608
Zdravím,
jde nějak zprovoznit vyskakování flashMessage při ajaxovém požadavku?
Používám komponentu flashMessage
a nějak se mi nedaří :(
Zkoušel jsem šablonu komponenty obalit do snippetu a invalidovat na každým
místě, kde vypisuju flashMessage –
$this->getPresenter()->flashMessage(...)
Ajaxem mi bohužel přijde prázdná odpověď –
{state:[]}
Nějaký rady, tipy?
Díky
Editoval CZechBoY (30. 7. 2014 10:14)
- Šaman
- Člen | 2666
Na komponentu se zatím vyprdni, použij klasické flashmessage ze Sandboxu a
jen je obal snippetem a ten překresluj. Všechno je v presenteru, takže
překresluješ taky z něho, případně z komponenty
$this->presenter->redrawControl('flashes');
Jestli na komponentě trváš (a máš ji odzkoušenou bez ajaxu že funguje),
tak ji obal už v šabloně presenteru snippetem a překresluj zase
z presenteru. Když máš snippet v šabloně komponenty a překresluješ
v presenteru, tak to může zlobit.
- CZechBoY
- Člen | 3608
Jo díky.
Obalil jsem výpis komponenty už v @layoute.latte a tam to funguje :-)
potom v BasePresenteru(z Pandova návodu na návštěvní knihu)
public function afterRender() {
if ($this->isAjax() && $this->hasFlashSession()) {
$this->invalidateControl('flashMessage');
}
}
a jede to.
V šabloně modulu jsem to teda zkoušel marně :-(
Nicméně konec šťastný a naštěstí to nezabralo ani moc času.