Bedingte Feldgruppen / Feldgruppen in Drupal 7

8

Hintergrund: In Drupal 7 habe ich ein Formular mit CCK (aka the Field UI) erstellt. Ich habe das Modul Feldgruppe verwendet, um eine Feldgruppe zu erstellen, aber ich benötige es als Bedingung, dh es wird nur abhängig von einer vorherigen Gruppe angezeigt antworte.

Frühere Forschung : Um ein bedingtes Feld zu erstellen, können Sie hook_form_alter () , um die zu bearbeiten #states Attribut wie folgt:

%Vor%

Es scheint jedoch keine Möglichkeit zu geben, die States API für Feldgruppen zu verwenden. Beachten Sie, dass Feldgruppen in $form gespeichert werden, während Feldgruppen in $form['#groups'] sowie in $form['#fieldgroups'] gespeichert werden. Ich weiß nicht, wie ich zwischen diesen unterscheiden kann, und in diesem Sinne habe ich versucht, ein # states Attribut einer Feldgruppe auf die gleiche Weise wie oben. Es erzeugt jedoch nur Serverfehler.

Frage Gibt es eine Möglichkeit, eine Feldgruppenanzeige mit der States-API oder einem alternativen Ansatz bedingt anzuzeigen?

    
seane 14.06.2012, 23:02
quelle

3 Antworten

2

Hier ist die einfachste Lösung, die ich mir ausgedacht habe. Es gibt im Wesentlichen 2 Teile dazu: (1.) Programmatisch die Anzeige des Formulars ändern und (2.) die GUI verwenden, um die Anzeige des Inhalts zu ändern.

(1.) Zuerst habe ich hook_form_alter () verwendet. , um das bedingte Feldset programmgesteuert zu erstellen und vorhandene Felder hinzuzufügen. Der Code ist unten gezeigt.

%Vor%

(2.) Dann habe ich das Modul Feldgruppe verwendet, um die Anzeige des Inhalts zu ändern. Dazu habe ich meinen Inhaltstyp ausgewählt und auf dem Tab "Anzeige verwalten" eine Feldgruppe erstellt und meine Felder hinzugefügt. Auf diese Weise erscheinen die Felder sowohl in der Form als auch in den gespeicherten Inhalten als Teil derselben Gruppe.

    
seane 28.06.2012, 22:31
quelle
3

Sie müssen die hook_field_group_build_pre_render_alter ()

Einfach:

%Vor%

Das funktioniert perfekt. Wenn sich die Gruppe A in einer anderen Gruppe befindet, tun Sie dies

%Vor%

Sie müssen möglicherweise ein ID-Attribut hinzufügen, wenn keines existiert:

%Vor%     
bobylapointe 03.11.2012 16:12
quelle
0

Vielleicht können Sie versuchen, sich den Code von diesem Modul anzusehen, um Ihnen bei der Suche nach einer Idee zu helfen.

    
Juuuuuu 28.06.2012 12:15
quelle

Tags und Links