Użyłem modułu „Field Group” i utworzyłem kilka grup w backend. Teraz chcę programowo dodać pole do grupy. Jak mogę to zrobić.
Korzystam z Hook_form_alter, zauważyłem, że każde pole ma atrybut „und”, w którym wymieniona jest grupa pól, do której należy, ale jeśli tablica create i „und” i doda do niego nazwę grupy pól, to nie działa .
Jak mam to zrobić?
Odpowiedzi:
To jest trochę stare, ale chciałem zrobić to samo i nie mogłem znaleźć odpowiedzi w Internecie. Skończyło się to samodzielnie.
Załóżmy, że utworzyłeś grupę pól poprzez interfejs CMS o nazwie „group_product_fields”. Dodano kilka pól do tej grupy.
Teraz masz nowe pole dołączane do formularza programowo poprzez hook_form_alter. Chcesz dodać to pole do „group_product_fields”. Oto przykład tego, czym może być pole:
Wszystko, co musisz teraz zrobić, to dodać to nowe pole do grupy pól. Aby to zrobić, dodaj poniższy wiersz do hook_form_alter. Można go umieścić w dowolnym miejscu w środku.
To wszystko. Możesz dostosować wagę pola, aby ustawiała się tak, jak chcesz. Ale w końcu jest to naprawdę proste. :)
źródło
Cytowanie po Programowo dodaj pola do grupy pól :
źródło
'mode' => 'form'
lub'mode' => 'default'
zamiast'mode' => 'full'
lub po prostumode
w ogóle pominąć . Wszelkie view_mode_name, dzięki @Maiq FashNie jestem pewien, jak to dla ciebie zadziałało. Ponieważ nazwa klucza tablicy musi być zgodna z nazwą pola bazy danych. I oni są:
Muszę użyć następującego formatu, aby go uruchomić. daj mi znać, jeśli robię tutaj coś głupiego.
źródło
Spójrz na hook_field_group_build_pre_render_alter ().
Daje to możliwość programowej zmiany struktury grup.
Na przykład przenieś pole „example_field” do grupy „group_example” z elementu głównego formularza:
źródło
Najpierw znajdź nazwę komputera grupy pól w panelu CMS, a następnie w formularzu alter do
na przykład dodałem niestandardową pocztę polową do
User form field group
grupy pól:źródło