Presenter a komponenty s ajaxem

Skřetík
Člen | 11
+
0
-

Řeším takový problém s aplikací. Jde o to, že mám Presenter obsahující 3 komponenty

  • košík v hlavičce (1)
  • košík na stránce (2)
  • další produkty na stránce (doporučujeme dokoupit atd.) (3) které mají opět možnost být vloženy do košíku

Rozdělené je tak, že košík v hlavičce je komponenta z BasePresenteru, na stránce s košíkem pak je jedna komponenta košíku a druhá doporučené produkty. Problém je, že změna košíku (2) mi musí současně překreslit i obsah (1), a přidání produktu z (3) musí překreslit (1) i (2). Ono to samozřejmě jde, komponenta produktů může zavolat $this->getPresenter()->getComponent('headerCart')->redrawControl('price') a $this->getPresenter()->getComponent('headerCart')->redrawControl('count') nebo rovnou $this->getPresenter()->getComponent('headerCart')->redrawControl(), stejně jako $this->getPresenter()->getComponent('cart')->redrawControl()

Nicméně mám za to, že tohle není dobré řešení, protože komponenta 3 by neměla vrtat do komponenty 1 ani 2, a ještě když tam lezu skrze presenter, takže to bude asi špatný návrh. Děkuji moc za nakopnutí správnějším směrem.

Skřetík
Člen | 11
+
0
-

Technicky asi jediné smysluplné řešení co mě napadá je, že při změně stavu košíku bude košík vědět, že se musel přepočítat, a komponenty headerCart i cart, které si z toho košíku stejně berou informace (počet kusů, co je v košíku, celková suma) si úplně stejně vezmou informaci, že košík byl změněn, ergo ony se musí překreslit.