Override eines Custom Field erstellen und zuordnen

  • Moin moin zusammen,

    ich möchte diesmal ein Override eines Custom Field selbst erstellen und dem Feld entsprechend zuordnen. Nun habe ich aber festgestellt, dass es scheinbar nicht möglich ist. Oder habt Ihr eine Idee?

    Konkretes Beispiel:

    Ich erstelle im Backend ein Override vom Plugin "plg_field_subform", welches mir auch im Template unter "templates/cassiopeia/html/plg_fields_subform/subform.php" abgelegt wird.


    Im Standard wird dieses als Liste ausgegeben, welches ich zu einem collapse ändern möchte (Beispiel: BS5 collapse). Wenn ich die Datei "subform.php" umbenenne zu "mysubform.php" wird dieses jedoch nicht erkannt und ich kann dieses auch nirgendwo auswählen. Der Name muss "subform.php" bleiben. Dann wiederum gilt dieses Override aber für alle Subform-Felder.

    Wenn ich jetzt mehrere verschiedene Subform-Felder einsetze, dann kann ich mein Override nicht speziell diesem einem zuordnen. Bei den Subform-Feldern, die mit meinem Override nicht zusammen passen, führt es dann logischerweise zu Fehlern.

    Ich habe dazu auch ein Kommentar zu diesem Issiu #36046 hinterlassen.

    Oder habt Ihr eine Idee, wie man das Lösen könnte?

    Aus meiner Sicht wäre es am Besten, wenn man ein alternatives Layout (Override) bei dem jeweiligen Feld auswählen kann.

    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.

  • Ich habe es mit dem Override von "com_fields/field/render.php" dann doch geschafft.


    In meinem Fall habe ich es mir dann einfacher gemacht. Ich kopierte die Datei "subform.php" mit meinen Änderungen in das Verzeichnis "templates/cassiopeia/html/layouts/com_fields/field/" und benannte sie um.


    Bevor die foreach-Schleife beginnt, musste ich die Variablen anpassen und FieldsHelper hinzufügen. Dieses Overrider kann ich dann in dem betreffenden Subform-Field auswählen und gilt dann nur hier. Die anderen Subform-Felder beziehen, das Standard-Layout.


    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.