Vložení dodatečných dat do šablony ručně vykreslovaného formuláře

flamengo
Člen | 135
+
0
-

Potřeboval bych nějak dostat do šablony, kde ručně vykresluji formulář, nějaké hodnoty. Hodnoty načítám na základě defaulních hodnot formuláře (to je ale vlastně úplně jedno). Nějak takto:

control.php

protected function createComponentPokusForm(){
	$form = new Form();
	// ...
	// ...
	$this->template->pokus = 'pokus'; // nějaký další data sem dostat a poté je v šabloně vypsat
	return $form;
}

.latte

{form pokusForm}
	Pokus: {$pokus}
{/form}

Toto ale skončí chybou, že proměnná pokus není definovaná. Za nakopnutí díky moc.

Jiří Nápravník
Člen | 710
+
+1
-

Dej to do action/render metody kde s tim formularem pracujes. Nebo ještě lépe udělej z toho formuláře komponentu a v render() si to tam pošleš.

flamengo
Člen | 135
+
0
-

Super, díky. Do render metody to půjde, nebo do handle. Ona to už celé vlastně je komponenta, která má 4 různé formuláře. A do jednoho to potřebuji nacpat.

Přišlo mi to takový elegantní toto řešit přímo v metodě createComponentForm1(), když se ty data budou týkat pouze formuláře Form1.

Editoval flamengo (21. 9. 2015 20:34)

Unlink
Člen | 298
+
0
-

No ono to teoreticky môže byť aj v create component ale nieje to najlepší nápad.
Toto nefunguje proste preto, lebo keď ide nette renderovať šablony, tak si vytiahne dáta z Presenter::$template a pokiaľ pri renderingu narazí na nejaký control alebo form, tak ho vytvorí (zavolá createComponent()) ale keď až tu nastavíš tú hodnotu, tak sa už do šablóny nedostane.

RSS tématu Téma zavřeno