Custom render form element

duskohu
Člen | 778
+
0
-

Ahojte, hladam vhodne riesenie na render formularoveho prvku. Renderujem kazdy prvok samostatne, lebo si ich rozmiestnujem ako potrebujem, nerenderujem form ako celok, lebo v kazdom forme mam prvky rozmiestnene inak.
Momentalne to mam takto. Kde potrebujem vykreslit form. prvok tak si zavolam include inputText .... Nemate nejake krajsie riesenie?

{define inputText}
    {if !isset($descriptionClass)}
        {var $descriptionClass = 'text-muted'}
    {/if}

        <div class="form-group col-12">
            {label $fieldName class=>"col-form-label"/}
            {input $fieldName class=>"form-control"}
            {if $form[$fieldName]->getOption('description')}
                <span class="font-13 {$descriptionClass}">{$form[$fieldName]->getOption('description')}</span>
            {/if}
            <div n:if="$form[$fieldName]->error" class="invalid-tooltip" data-form-alert-for="{$form[$fieldName]->getHtmlId()}">
                {$form[$fieldName]->error}
            </div>
        </div>
{/define}

{include inputText form => $form, fieldName => 'aaaaa'}
{include inputText form => $form, fieldName => 'bbbbb'}
dakur
Člen | 493
+
0
-

Ahoj

Nemate nejake krajsie riesenie?

A co se ti na tom konkrétně nelíbí? :-)

David Matějka
Moderator | 6445
+
0
-

muzes to zjednodusit treba na

{define inputText, $field}
	...
	{input $field, class => ...}
{/define}

{include inputText $form[aaa]}
duskohu
Člen | 778
+
0
-

No uvazoval som ze by som si urobil nejaky macro-set, ktory by som definoval pre nejaku theme a uz by som si len tie macra volal. napr {customInput aaa}

Editoval duskohu (14. 7. 2020 22:10)