Tambahkan bidang ke beberapa jenis konten sekaligus?

9

Saya ingin menambahkan bidang ke beberapa jenis konten sekaligus, dan mengonfigurasinya untuk semuanya sekaligus.

Alasannya adalah bahwa saya memiliki banyak jenis konten, yang semuanya perlu diperbarui dengan menambahkan bidang baru ini ke masing-masing. Bidang ini juga akan dikonfigurasikan sama untuk semua jenis konten. Saya harus mengulangi proses menambahkan ini dan kemudian mengonfigurasi bidang setiap jenis konten yang ingin saya tambahkan, dan itu menjadi sulit setelah beberapa saat.

Apakah ada cara untuk melakukan penambahan / konfigurasi massal bidang baru ke banyak jenis konten?

Lester Peabody
sumber
Berapa banyak tipe konten yang Anda miliki?
bobylapointe
Saya mengasumsikan pertanyaan ini tidak lagi relevan untuk OP, tetapi relevan untuk Nigel Waters yang menetapkan hadiah. Apakah Anda Nigel mau berkomentar?
Kari Kääriäinen
Ada 25 (Ini adalah situs yang sangat besar, yang memang membutuhkan ini untuk jenis konten yang terpisah).
Nigel Waters
Btw, solusi lain adalah menyewa seseorang yang murah untuk barang semacam ini :)
donquixote
Atau makro browser?
donquixote

Jawaban:

9

Garis luas menggunakan modul Fitur dapat:

  1. Tambahkan bidang ke dua (untuk melihat pola) tipe konten dengan tangan
  2. Buat Fitur termasuk basis bidang dan instance bidang untuk bidang yang baru dibuat
  3. Edit modul yang dibuat dengan mengalikan basis bidang dan instance untuk semua jenis konten yang dibutuhkan
  4. Aktifkan modul yang diedit
Kari Kääriäinen
sumber
Saya tidak ingat bagaimana tepatnya fitur berurusan dengan bidang .. apakah mungkin untuk menonaktifkan fitur setelah bidang dibuat?
donquixote
Modul yang baru lahir akan tergantung pada Fitur, jadi pada dasarnya tidak, sejauh yang saya tahu.
Kari Kääriäinen
Maksud saya menonaktifkan modul yang baru lahir, bukan menonaktifkan Fitur. Pertanyaannya adalah apakah instance lapangan masih ada di sana. Mungkin Lester Peabody atau Nigel Waters dapat mencoba ini dan melaporkannya kembali.
donquixote
Oh maaf. Ya, sebenarnya keduanya bisa dinonaktifkan, kolomnya akan tetap hidup di database, saya mengerti, karena saya sekarang sedang mengujinya sendiri.
Kari Kääriäinen
Ini adalah jawaban yang tepat untuk pengaturan drupal default dan sebagian besar pengaturan drupal lainnya juga. Tetapi jika Anda memiliki mode tampilan berbeda yang tersedia untuk jenis konten yang berbeda, Anda lebih baik mengkonfigurasi bidang dalam setiap jenis konten dengan tangan, atau pastikan Anda menggunakan jenis tampilan yang benar dalam kode array field_instance Anda.
Sumeet Pareek
5

Gunakan modul Field Tools :

Kumpulan alat UI yang berguna untuk bekerja dengan bidang:

Overview of fields with links to edit single instances, and all instances at once
Clone any field instance to multiple entities and bundles
Clone all field instance of a bundle to multiple entities and bundles
Import and export fields
Delete multiple instances of a field
Apply a vocabulary to multiple entities and bundles at once (the same way vocabularies were applied to content types on Drupal 6)
... your idea here. Patches welcome!
Nigel Waters
sumber
Ini kedengarannya luar biasa, saya harus melihat ini.
Lester Peabody
3

Jika Anda tidak keberatan menulis modul khusus untuk ini, relatif mudah untuk menambahkan bidang ke jenis konten melalui kode:
$instance = array(
'field_name' => 'field_firstname',
'label' => 'First name',
'entity_type' => 'node',
'bundle' => 'person',
);
field_create_instance($instance);

Kode di atas akan menambahkan bidang "field_firstname" ke jenis konten dengan nama mesin "orang". Jadi Anda bisa membuat modul bahwa formulir yang memungkinkan Anda untuk memilih bidang dan sejumlah jenis konten dan setelah pengiriman bidang ditambahkan ke semua jenis konten yang dipilih.

LVA
sumber
1

Beberapa kali saya harus melakukan ini, saya menggunakan Field Collection .

Menyediakan bidang-bidang koleksi, di mana sejumlah bidang dapat dilampirkan.

Ini masih sangat sulit, karena Anda harus menambahkan bidang koleksi bidang ke setiap jenis konten. Yang mengatakan, jika Anda menambahkan 5 atau 6 bidang ke beberapa jenis konten, Anda hanya perlu mengkonfigurasi 5 atau 6 bidang awal sekali dalam koleksi bidang.

Setelah itu, Anda membuat bidang koleksi bidang (demi argumen, sebut saja field_collection_field) pada salah satu jenis konten Anda, dan kemudian gunakan kembali bidang yang sama pada yang lainnya.

Seperti yang saya katakan, Anda masih harus mengonfigurasi satu bidang pada x jumlah jenis konten..tapi lebih baik daripada membuat 10 bidang pada 10 jenis konten (misalnya).

Chapabu
sumber
aah .. maaf. Saya baru saja membaca kembali pertanyaan Anda juga dan hanya perlu satu bidang. Maaf karena membuang-buang waktu> _ <
Chapabu
Yang mengatakan Anda bisa menempatkan bidang yang satu ini ke kumpulan bidang dan mengonfigurasinya sesuai keinginan Anda, dan kemudian merujuk koleksi bidang dengan bidang yang sudah dikonfigurasi. Namun, ini sedikit berlebihan.
Chapabu
Tidak masalah Chapabu, ini masih informasi yang berguna untuk berjaga-jaga jika saya perlu melakukan sesuatu seperti ini di jalan.
Lester Peabody
1

Jika Anda nyaman memanipulasi database secara langsung, instance bidang disimpan dalam tabel {field_config_instance}. Anda bisa menambah / mengonfigurasi bidang Anda untuk satu jenis konten, lalu menemukan catatan di tabel database dan menduplikatnya.

Anda harus mengubah dua nilai kolom pada baris yang digandakan:

  • id: Harus bilangan bulat baru yang unik ke tabel
  • bundel: Harus nama mesin dari tipe konten baru
Les Lim
sumber