Chcę dodać pole do wielu typów treści jednocześnie i skonfigurować je dla wszystkich jednocześnie.
Powodem jest to, że mam wiele typów treści, z których wszystkie wymagają aktualizacji, dodając do każdego nowe pole. To pole zostanie skonfigurowane tak samo dla wszystkich typów treści. Muszę powtórzyć ten proces dodawania, a następnie konfigurowania pola dla każdego typu zawartości, do którego chcę go dodać, a po pewnym czasie staje się to uciążliwe.
Czy istnieje sposób na masowe dodawanie / konfigurowanie nowego pola do wielu typów treści?
Odpowiedzi:
Szerokie linie korzystające z modułu Funkcje mogą być:
źródło
Użyj modułu Narzędzia terenowe :
Zbiór przydatnych narzędzi interfejsu użytkownika do pracy z polami:
źródło
Jeśli nie masz nic przeciwko napisaniu niestandardowego modułu do tego, stosunkowo łatwo jest dodać pole do typu zawartości za pomocą kodu:
$instance = array(
'field_name' => 'field_firstname',
'label' => 'First name',
'entity_type' => 'node',
'bundle' => 'person',
);
field_create_instance($instance);
Powyższy kod doda pole „nazwa_pola” do typu zawartości o nazwie komputera „osoba”. Aby można było utworzyć moduł, w którym formularz pozwala wybrać pole i liczbę typów treści, a po przesłaniu pole jest dodawane do wszystkich wybranych typów treści.
źródło
Kilka razy, gdy musiałem to zrobić, korzystałem z Field Collection .
Jest to wciąż dość uciążliwe, ponieważ musisz dodać pole kolekcji pól do każdego typu zawartości. To powiedziawszy, jeśli dodajesz 5 lub 6 pól do wielu typów treści, musisz skonfigurować początkowe 5 lub 6 pól tylko raz w kolekcji pól.
Następnie utworzysz pole kolekcji pól (na wszelki wypadek nazwijmy to
field_collection_field
) na jednym z typów treści, a następnie ponownie użyjesz tego samego pola na wszystkich pozostałych.Jak powiedziałem, nadal musisz skonfigurować jedno pole na x ilości typów treści .. ale to lepsze niż tworzenie 10 pól na 10 typach treści (na przykład).
źródło
Jeśli możesz swobodnie manipulować bazą danych bezpośrednio, instancje pól są przechowywane w tabeli {field_config_instance}. Możesz dodać / skonfigurować swoje pole dla jednego typu zawartości, a następnie znaleźć rekord w tabeli bazy danych i powielić go.
Musisz zmienić dwie wartości kolumn w zduplikowanym wierszu:
źródło