Vykreslení dynamického formuláře – zjištění typu prvku

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

Potřebuji vykreslit dynamický počet prvků formuláře. Tudíž je v třídě formuláře plním do containeru.

foreach ($variants as $var) {
			$block = $form->addContainer("varianta_" . $var->id);
			$block->addRadioList("main","Hlavní varianta")
					->setDefaultValue($var->main);
			$block->addText("name","Název varianty")
					->setRequired("Musíte zadat název varianty")
					->setDefaultValue($var->name);
			$block->addSelect("display","Zobrazovat",$this->products->getProductVariantDisplayOption())
					->setDefaultValue($var->display);
			$block->addText("price","Prodejní cena")
					->setDefaultValue($var->price);
		}

V šabloně je následně takto vykresluji:

{form variantAddForm}
				{foreach $form->getComponents() as $container}
					<tr>
						{if $container->name !== "save" && $container->name !== "id_product"}
							{foreach $container->getComponents() as $control}
								<td>{$control->control}</td>
							{/foreach}
						{/if}
					</tr>
				{/foreach}
			{/form}

Potřebuji ještě ale ošetřit abych když formulářový prvek je select aby se před ním zobrazila ikonka tzn potřebuji tam udělat nějakou podmínku kde zkontroluji že jde o select. Jak to udělat?

Celkově se mi tohle řešení moc nelíbí? Jak to udělat lépe? A přesto mít možnost to vykreslit manuálně?

Editoval Marsme (28. 2. 2013 22:24)

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Nu, ty už to vykresluješ manuálně. Tak bych jen neiteroval po obsahu toho kontejnteru, ale vypsal jednotlivé prvky. A tam kde je potřeba nějaká ikona, dal ikonu.

Nox
Člen | 378
+
0
-

Pokud bys přece jen chtěl, tak: instanceof

Editoval Nox (1. 3. 2013 0:26)