0

I re-code a website using DRY principles with layouts and layouts variables but I get stuck with this :

Into a channel form I have to store each {field_name} into a {layout:set:append} so I can loop through this list into the layout template and dynamically show some stuff based on the fields name.

{exp:channel:form channel="mychannel" entry_id="{segment_3}"}
    {custom_fields}
        {layout:set:append name='lv_the_fields_name'}{field_name}{/layout:set}
    {/custom_fields}
{/exp:channel:form}

But setting a layout variable into channel form seems to not be possible/parsed. I get {layout:set name='lv_the_fields_name'}the_name_of_my_field{/layout:set} in my HTML.

Before having the DRY approach I did show my divs this way in EE3+ (that was not beautiful but worked) :

{exp:channel:form channel="mychannel" entry_id="{segment_3}"}
            {custom_fields}
            <section class="cd-help-field field_{field_name}">
                    {embed="modify/_help_{field_name}"}
            </section>
            {/custom_fields}
{/exp:channel:form}

This technique worked in EE3+ but not anymore in EE5… it shows {embed="modify/_help_myfield"}

Is there a bug into channel form for EE5+ or does somebody know how I can achieve this please?

0

You are almost there - you just need to correct your syntax. To close a layout:set:append tag you need to use the same tag - i.e. /layout:set:append - you left off :append from the closing tag.

So try this:

{exp:channel:form channel="mychannel" entry_id="{segment_3}"}
    {custom_fields}
        {layout:set:append name='lv_the_fields_name'}{field_name}{/layout:set:append}
    {/custom_fields}
{/exp:channel:form}

HTH

| improve this answer | |
  • that is absolutely correct! Thanks. Shame on me! I tried but still doesn't work. Now displays : {layout:set:append name='lv_the_fields_name'}the_name_of_my_field{/layout:set:append} – pikarge Apr 30 '19 at 14:06
  • Well that's odd. Often when you see the tag text appearing in HTML output rather than php errors of some kind it is a symptom of a syntax error somewhere in the associated EE tags - so check for typos - things like mixing up " and ' quotes, missing } or as you had before having the opening and closing tags not having appropriate text etc. – JCOGS Design May 1 '19 at 7:49
  • Still stuck with this. Checked all the syntax reduced to it strict minimum but everything is fine and nothing works. I posted it as a bug on the GitHub bug tracker more than a month ago but it has not been assigned yet. – pikarge Jun 17 '19 at 14:29
  • There are known odditites with the {exp:channel:form} tag - it does not fully behave like other EE tags - in particular it does not echo all the functions of the {exp:channel:entries} tag. I don't know what the cause of this issue is, but possibly you cannot create new layout entries within a channel form tag. A work around would be to put an {exp:channel:entries} tag on an earlier template in the sequence and write the layout variable from that, and recall the layout variable later (where ever the one you are trying to create goes). Good luck! – JCOGS Design Jun 17 '19 at 23:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.