Problem s tvorbou kalendare
- Dj_Oggy
- Člen | 67
Zdravim, snazim se udelat vlastni komponentu pro kalendar, ktery bude obsahovat informace v jednotlivych bunkach podle databaze. Moje idea je takova, ze pri generovani bunky se priradi dodatecne informace pro danou bunku, ktere se pak pouzijou pri generovani. Tohle prirazovani jsem chtel udelat ve stylu eventu, kdy pro kazde tvoreni bunky bude volan event, ktery bude obslouzeny v nejakem presenteru. Jenze muj problem je ten, ze v handleru eventu chci zpatky do kompoenenty nastavit nejake ty dodatecne informace a zkousel jsem to udelat pres reference, ale to se mi nepodarilo a nette mi vyhodilo po renderovani tenhle warning:
Warning: Parameter 2 to DefaultPresenter::cellCreate() expected to be a reference, value given in ...\libs\Nette\ObjectMixin.php on line 84
Jak tedy vyresit zpetne nastavovani dat do komponenty? Napadlo me pres metodu, ale to mi neprislo zrovna jako pekne reseni. Ma na to nette nejaky mechanismus nebo se to musi resit nejaky bypassem?
Ukazka:
Komponenta
public $onCellCreating;
public function render()
{
...
$this->onCellCreating($this, $data);
...
}
Presenter
public function onCellCreating($sender, &$data)
{
$data = "test";
}
Diky
Editoval Dj_Oggy (25. 8. 2009 11:59)
- Foowie
- Člen | 269
Komponenta:
public $onCellCreating = null;
public function render()
{
...
if($this->onCellCreating != null)
call_user_func_array($this->onCellCreating, array($this, &$data));
...
}
Presenter:
$komponenta->$onCellCreating = array($this, "onCellCreating");
...
public function onCellCreating($sender, &$data)
{
$data = "test";
}
Co něco takového?
Editoval Foowie (25. 8. 2009 12:10)
- Dj_Oggy
- Člen | 67
Stacilo zmenit
$this->onCellCreating($this, $data);
na
$this->onCellCreating($this, &$data);
a handler z
public function onCellCreating($sender, &$number)
{
}
na
public function onCellCreating($sender, $number)
{
}
Pokud se neprovede ta druha zmena, tak php krici warning
Call-time pass-by-reference has been deprecated
Diky za pomoc a sry za zbytecny topik
Editoval Dj_Oggy (25. 8. 2009 12:52)