I have read your tickets, and I had other people read them too. I am afraid you do come across as passive-aggressive at best. If you would like to receive support please do adopt a more neutral tone of language.
The other extension is using Joomla custom fields completely vanilla, the same you get them displayed in Joomla's com_content (Articles). Based solely on the screenshot you sent me, they appear to have merely added two CSS statements to style the field labels in the outermost container of a rendered custom fields group.
Joomla custom fields, however, do let developers provide two layout overrides to improve, well, the overall layout of the rendered fields (but not the contents of the rendered field labels or values). One (fields.render) is there to render the fields group container, the other (field.render) to render each field – Joomla gives us the HTML for the label and value of the field, we can only override the HTML around them. That's what we do to maintain consistency with the rest of the interface.
The render layout of the subform field in core Joomla was just slapped together, as there's no way to know how you want it rendered. In fact, the expectation is that you will do a template or layout override if you are using the subform field. It was never meant to be used vanilla. In fact, subform is the second attempt at implementing this functionality in Joomla. The original attempt was NOT site integrator-friendly at all when they had to write a template override to render the contained fields.
The file I linked you to is how Joomla renders subform fields. As you can see, it calls the overridable (and overridden in ATS) field.render layout (lines 31:35) for each field, wrapping it in a SPAN element. If that was the end of it, the subforms would render fine in ATS. But no. Joomla then goes ahead and puts commas between each field in line 52. That's where the layout break comes from. Since these commas are NOT wrapped in an element we cannot target them with CSS.
Therefore, the solution is pretty simple.
Copy the file plugins/fields/subform/tmpl/subform.php into your template's html/plg_fields_subform directory and customise it. How to customise it? The best way would be changing line 52 to read
$result .= '<li>' . implode('<span class="joomla_subform_fields_separator">, </span>', $row_output) . '</li>';
Now, you can write custom CSS (a topic we covered in your other ticket) to hide this useless comma:
div.ats-ticket-fields-container span.joomla_subform_fields_separator { display: none; }
Now your subform renders its value as a UL with each LI item having a list of fields rendered as a stack of one field per line. You can of course target this UL and LI and the fields therein with the following CSS selectors:
- div.ats-ticket-fields-container ul.fields-container
- div.ats-ticket-fields-container ul.fields-container > li
- div.ats-ticket-fields-container ul.fields-container > li span.field-entry
The div.ats-ticket-fields-container comes from components/com_ats/layouts/fields/render.php.
The ul.fields comes from the core file I linked you to, line 57.
The span.field-entry comes from the core file I linked you to, line 44.
You should probably style the list so it doesn't render bullets, instead having each LI element styled as a card (thin border, 0.25em to 0.5em rounded corners, top and bottom margins around 0.5em to 0.75em, no left/right or start/end margin, and maybe a bit of padding. Since your use case appears to be "which items are we discussing about, and are they under warranty" this would render your results very nicely.
Nicholas K. Dionysopoulos
Lead Developer and Director
🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!