Manuální vypsání form prvku uvnitř snippetu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
JaxP
Člen | 62
+
0
-

Zdravím,
dostal jsem se do situace, ve které mi nelze vypsat část formuláře.

Příklad funkční:

{foreach $unitPictos as $pictogram}
	<label n:name="chlist:$pictogram->pictogram_uid">
		<input n:name="chlist:$pictogram->pictogram_uid">
		{$form['chlist']->items[$pictogram->pictogram_uid]}
	</label>
{/foreach}

Příklad nefunkční (Undefined variable: _form):

{snippet cokoliv}
	{foreach $unitPictos as $pictogram}
		<label n:name="chlist:$pictogram->pictogram_uid">
			<input n:name="chlist:$pictogram->pictogram_uid">
			{$form['chlist']->items[$pictogram->pictogram_uid]}
		</label>
	{/foreach}
{/snippet}

Dá se toto nějak ošetřit? Potřebuji překreslovat pouze jednu část formuláře (respektive měnit pořadí prvků)

iNviNho
Člen | 352
+
0
-

Skús

<?php
public function beforeRender() {
	$this->template->form = $this->template->_form =  $this["tvojFormular"];
}
?>

Ak bude fungovať, presuň tento riadok do konkrétnetj render<nieco> metody životne cyklusu presentera :)

Editoval iNviNho (27. 9. 2016 17:21)

Brzda
Člen | 4
+
0
-

nebo stačí ve snippetu nastavit proměnou $form a $_form:

{snippet cokoliv}
	{var $form = $_form = $control['tvujForm']}
	...
	...
{/snippet}
iNviNho
Člen | 352
+
0
-

@Brzda Ak používame MVC (MVP = Model View Presenter), tak by sme si mali data pripraviť v jednoduchosti povedané v Presentery(alebo ešte krajšie v nejakom modely) a nie v šablone… Teda párkrát to aj ja obídem, ale pre tento easy príklad do presetnera

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

@Brzda a myslim, ze v 2.4 tohle uz nefunguje