Ich habe das "Field Group" -Modul verwendet und einige Gruppen im Backend erstellt. Jetzt möchte ich der Gruppe programmgesteuert ein Feld hinzufügen. Wie kann ich das machen.
Ich verwende Hook_form_alter. Ich habe festgestellt, dass jedes Feld ein 'und'-Attribut hat, in dem die Feldgruppe aufgeführt ist, zu der es gehört. Wenn Sie jedoch ein' und'-Array erstellen und einen Feldgruppennamen hinzufügen, funktioniert dies nicht .
Wie soll ich das machen
Antworten:
Dies ist ein bisschen alt, aber ich wollte das Gleiche tun und konnte im Web keine Antwort finden. Am Ende habe ich es selbst herausgefunden.
Angenommen, Sie haben über die CMS-Schnittstelle eine Feldgruppe mit dem Namen "group_product_fields" erstellt. Sie haben dieser Gruppe einige Felder hinzugefügt.
Jetzt haben Sie ein neues Feld, das programmgesteuert über hook_form_alter in das Formular aufgenommen wird. Sie möchten dieses Feld zu "group_product_fields" hinzufügen. Hier ist ein Beispiel, wie das Feld aussehen könnte:
Jetzt müssen Sie nur noch das neue Feld zur Feldgruppe hinzufügen. Fügen Sie dazu die folgende Zeile zum hook_form_alter hinzu. Es kann überall darin platziert werden.
Das ist alles. Möglicherweise möchten Sie das Feldgewicht anpassen, damit es wie gewünscht positioniert wird. Aber am Ende ist das wirklich einfach. :)
quelle
Zitieren nach Füge einer Feldgruppe programmatisch Felder hinzu :
quelle
'mode' => 'form'
oder'mode' => 'default'
anstelle von verwenden'mode' => 'full'
oder einfach weglassenmode
. Jeder view_mode_name, danke @ Maiq FashIch bin nicht sicher, wie es bei dir funktioniert hat. Da der Name des Arrayschlüssels mit dem Namen des Datenbankfelds übereinstimmen muss. Und sie sind:
Ich muss folgendes Format verwenden, damit es funktioniert. Lass es mich wissen, wenn ich hier etwas Dummes mache.
quelle
Schauen Sie sich hook_field_group_build_pre_render_alter () an.
Dies bietet Ihnen die Möglichkeit, die Struktur Ihrer Gruppen programmgesteuert zu ändern.
Verschieben Sie beispielsweise das Feld " example_field" aus dem Stammformularelement in die Gruppe "group_example":
quelle
Suchen Sie zuerst den Namen Ihrer Feldgruppenmaschine im CMS-Bereich und dann in Ihrem Formular alter do
Für einen Instanst habe ich eine benutzerdefinierte Feld-Mail in die Feldgruppe aufgenommen
User form field group
:quelle