Jak vypsat a naformátovat celý formulář jen s pomocí šablony
- vasek125
- Člen | 34
Ahoj. V presenteru vytvořím přes createComponentFormular nějaký formulář a v šabloně bych ho chtěl vypsat. Nevyhovuje mi standardní renderer, potřebuji ho nějak složitěji formátovat (konkrétně tak, aby se dobře vykreslil v jquery mobile). Snažím se to celé udělat v šabloně, protože vytvářet nový renderer je podle mě nesmysl, protože to znemožňuje snadné vyměnění šablon v případě změny vzhledu.
Potřeboval bych poradit, jak v šabloně vypsat všechny prvky formuláře. Dostal jsem se k tomu,že mi funguje text, password a submit, ale už ne radio. Můj kód:
{form formular}
<ul class="errors" n:if="$form->hasErrors()">
<li n:foreach="$form->errors as $error">{$error}</li>
</ul>
<li n:foreach="$form->controls as $control">{$control->getControl()->type}</li>
{foreach $form->controls as $control}
{if in_array($control->getControl()->type, array('text', 'password', 'submit'), true)}
<div data-role="fieldcontain">
{label $control->name /}
{input $control->name}
</div>
{elseif $control->getControl()->type === "radio"}
<fieldset data-role="controlgroup">
<legend>{$control->label}</legend>
....
</fieldset>
{/if}
{/foreach}
{/form}
Pomocí pokusného „<li n:foreach=“$form->controls as $control">{$control->getControl()->type}</li>" jsem zjistil, že $control->getControl()->type nevrací nic v případě radio. Ostatní (text, password, button) vrací, ale v případě radio prvku to nevrátí nic. V čem je problém? Nebo byste mi poradili snadnější způsob vykreslování takového formuláře?