UI\Form vlastni render a template – nelze invalidovat snippet

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

Zdravím,

používám znovupoužitelné formuláře implementované jako třídy dědící od UI\Form. Tyto třídy mají implementovánu vlastní metodu render a vlastní šablonu se snippetem. Ukázka níže. V presenteru ale nejde invalidovat parentCategory snippet. Někde jsem četl, že nelze invalidovat snippety ze šablon UI\Form, ale nikde jsem nenašel proč, tak se vás na to chci zeptat. Zároveň z toho plyne otázka, jestli je znovupoužitelné formuláře lepší implementovat jako UI\Control nebo jako UI\Form a proč.

/**
 * Method to render a categoryForm.
 *
 * @return void
 */
public function render()
{
	$this->presenter->template->setFile(dirname(__FILE__) . '/templates/categoryForm.latte');

	$this->presenter->template->renderer = $this->getRenderer();

	$this->presenter->template->render();
}

{foreach $form->controls as $name => $field}
	{if $name == 'parent_category_id'}
		{snippet parentCategory}
			{label parent_category_id /}
			{input parent_category_id}
		{/snippet}
	{else}
		{label $name /}
		{input $name}
	{/if}
{/foreach}
Vojtěch Dobeš
Gold Partner | 1316
+
0
-

I have been running on this ballad… určitě děď od UI\Control. Kód je úplně stejně dlouhý, až na to, že je to správně :).

Viz: https://forum.nette.org/…-jeho-limity

Dědění od UI\Form nedává žádný smysl a nepřináší žádné výhody.

Editoval vojtech.dobes (24. 7. 2013 11:16)