Poprosim o radu s komponentou a snippetmi
- vladimir.biro
- Člen | 163
Ahojte. Vedeli by ste mi niekto prosim poradit?
Mam takuto komponentu…
<?php
// ... Hlavna komponenta
public function render()
{
$this->template->setFile('.../hlavna-komponenta.latte');
}
// ... Vedlajsia komponenta
public function renderSec()
{
$this->template->setFile('.../vedlajsia-komponenta.latte');
}
// ... handler volany ajax-om
public function handleTest()
{
/* ... nejaka logika ... */
$this->redrawControl('tag');
}
?>
… a potrebujem, aby ked sa spracuje handleTest, aby sa prekreslil snippet ‚tag‘ v sablone vedlajsia-komponenta.latte
Ked je dany snippet ‚tag‘ v sablone hlavna-komponenta.latte, tak vsetko funguje ako ma.
Predpokladam, ze problem je v tom, on tie snippety hlada len v render(). Je nejaky sposob, ako ho donutit hladat to v renderSec() ?
Dakujem za radu.
- japlavaren
- Člen | 404
On to nehlada, ale pri handle vola metodu render a nie inu. Budes si !usiet spravit v render metode podmienku ktoru sablonu ma vypisvat. Sprav si v triede private property showSec, v handle si do nej nastav true a ak je true zobra v renderi tu druhu sablonu
- vladimir.biro
- Člen | 163
japlavaren, to je dokonale :) … super, dakujem.
Takze:
<?php
private $useSec = false;
// ... Hlavna komponenta
public function render()
{
if ($this->useSec === true) {
$this->template->setFile('.../vedlajsia-komponenta.latte');
}
$this->template->setFile('.../hlavna-komponenta.latte');
}
// ... Vedlajsia komponenta
public function renderSec()
{
$this->template->setFile('.../vedlajsia-komponenta.latte');
}
// ... handler volany ajax-om
public function handleTest()
{
/* ... nejaka logika ... */
$this->useSec = true;
$this->redrawControl('tag');
}
?>
Jednoduche, genialne… dakujem este raz.
Editoval vladimir.biro (21. 9. 2017 18:54)
- japlavaren
- Člen | 404
Ak mas v renderSec nejaku logiku mozes zavolat v podmienke v metode render $this->renderSec()a return
- vladimir.biro
- Člen | 163
japlavaren napsal(a):
Ak mas v renderSec nejaku logiku mozes zavolat v podmienke v metode render $this->renderSec()a return
Presne tak nejako som to aj vyriesil, lebo v oboch funkciach som mal velmi podobny obsah.
Teraz ale este zapeklitejsia otazka :)
Co keby som z toho handleru chcel menit obe komponenty. Aj render() aj renderSec()
Ja som tu ukazku dost zjednodusil, ale v skutocnosti sa jedna o nakupny
kosik eshopu.
Jeden je halvny kosik na samostatnej podstranke render() a druhy je prehladovy
kosik, ktory sa nachadza v hlavicke webu. A ide mi o to, ze ked som na
podstranke kosiku a upravim pocet kusov produktu v kosiku, tak chcem aby sa mi
prepocitala cena v jednom aj druhom kosiku.
Vid: http://prntscr.com/go0fma
zakruzkoval som vsetky hodnoty, ktore sa maju zmenou poctu v inpute zmenit pricom sa jedna o dve komponenty. Resp jednu
{control basket}
a
{control basket:float}