Thêm một trường vào nhiều loại nội dung cùng một lúc?


9

Tôi muốn thêm một trường vào nhiều loại nội dung cùng một lúc và cũng định cấu hình nó cho tất cả các loại nội dung đó.

Lý do là tôi có nhiều loại nội dung, tất cả đều cần được cập nhật bằng cách thêm trường mới này vào mỗi loại. Trường này cũng sẽ được cấu hình giống nhau cho tất cả các loại nội dung. Tôi phải lặp lại quá trình thêm này và sau đó định cấu hình trường mọi loại nội dung mà tôi muốn thêm vào và sau một thời gian khó khăn.

Có cách nào để thêm / cấu hình hàng loạt trường mới vào nhiều loại nội dung không?


Bạn có bao nhiêu loại nội dung?
bobylapointe

Tôi cho rằng câu hỏi này không còn phù hợp với OP nữa, nhưng phù hợp với Nigel Waters, người đặt tiền thưởng. Bạn có muốn Nigel quan tâm để bình luận?
Kari Kääriäinen

Có 25 (Đây là một trang web rất lớn, đòi hỏi chúng phải là các loại nội dung riêng biệt).
Nigel Waters

Btw, một giải pháp khác là thuê một người giá rẻ cho loại công cụ này :)
donquixote

Hoặc một macro trình duyệt?
donquixote

Câu trả lời:


9

Các đường rộng sử dụng mô-đun Tính năng có thể là:

  1. Thêm trường vào hai loại nội dung (để xem mẫu)
  2. Tạo một Tính năng bao gồm các cơ sở trường và trường hợp trường cho các trường mới được tạo
  3. Chỉnh sửa mô-đun đã tạo nhân các trường và cơ sở trường cho tất cả các loại nội dung cần thiết
  4. Kích hoạt mô-đun chỉnh sửa

Tôi không nhớ chính xác các tính năng xử lý các trường như thế nào .. có thể tắt tính năng này sau khi các trường được tạo không?
donquixote

Mô-đun sơ sinh sẽ phụ thuộc vào Tính năng, vì vậy về cơ bản là không, theo như tôi biết.
Kari Kääriäinen

Tôi có nghĩa là vô hiệu hóa các mô-đun sơ sinh, không vô hiệu hóa các tính năng. Câu hỏi là liệu các trường hợp trường vẫn sẽ ở đó. Có lẽ Lester Peabody hoặc Nigel Waters có thể dùng thử và báo cáo lại.
donquixote

Ồ xin lỗi. Vâng, thực sự cả hai đều có thể bị vô hiệu hóa, các trường sẽ tồn tại trong cơ sở dữ liệu, tôi thấy, vì tôi hiện đang tự mình kiểm tra nó.
Kari Kääriäinen

Đây là câu trả lời đúng cho các thiết lập drupal mặc định và hầu hết các thiết lập drupal khác. Nhưng nếu bạn có các chế độ hiển thị khác nhau có sẵn cho các loại nội dung khác nhau, tốt hơn hết bạn nên định cấu hình các trường trong từng loại nội dung hoặc đảm bảo bạn sử dụng các loại hiển thị chính xác trong mã mảng field_instance của bạn.
Sumeet Pareek

5

Sử dụng mô-đun Công cụ Trường :

Một bộ sưu tập các công cụ UI hữu ích để làm việc với các trường:

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!

Điều này nghe có vẻ khá tuyệt vời, tôi sẽ phải xem xét điều này.
Lester Peabody

3

Nếu bạn không ngại viết mô-đun tùy chỉnh cho việc này, việc thêm một trường vào một loại nội dung thông qua mã là tương đối dễ dàng:
$instance = array(
'field_name' => 'field_firstname',
'label' => 'First name',
'entity_type' => 'node',
'bundle' => 'person',
);
field_create_instance($instance);

Đoạn mã trên sẽ thêm trường "field_firstname" vào loại nội dung với tên máy "người". Vì vậy, bạn có thể tạo một mô-đun cho phép bạn chọn một trường và một số loại nội dung và sau khi gửi, trường được thêm vào tất cả các loại nội dung được chọn.


1

Vài lần tôi phải làm điều này Tôi đã sử dụng Bộ sưu tập hiện trường .

Cung cấp trường thu thập trường, theo đó bất kỳ số lượng trường nào có thể được đính kèm.

Mặc dù vậy, nó vẫn còn khá khó khăn, vì bạn phải thêm trường bộ sưu tập trường vào mọi loại nội dung. Điều đó nói rằng, nếu bạn thêm 5 hoặc 6 trường vào nhiều loại nội dung, bạn chỉ phải định cấu hình 5 hoặc 6 trường ban đầu một lần trong bộ sưu tập trường.

Theo đó, bạn tạo trường bộ sưu tập trường (đối với các đối số vì vậy hãy gọi nó field_collection_field) trên một trong các loại nội dung của bạn, sau đó sử dụng lại cùng một trường trên tất cả các loại khác.

Như tôi đã nói, bạn vẫn phải định cấu hình một trường trên x lượng loại nội dung..nhưng tốt hơn là tạo 10 trường trên 10 loại nội dung (ví dụ).


aah .. xin lỗi. Tôi cũng vừa đọc lại câu hỏi của bạn và nó chỉ cần một lĩnh vực. Xin lỗi vì đã lãng phí thời gian của bạn> _ <
Chapabu

Điều đó nói rằng bạn có thể đặt trường này vào bộ sưu tập trường và định cấu hình trường theo cách bạn muốn, sau đó tham chiếu bộ sưu tập trường với trường đã được cấu hình của bạn. Tuy nhiên, đây là một chút quá mức cần thiết.
Chapabu

Không có vấn đề gì với Chapabu, đây vẫn là thông tin hữu ích trong tương lai trong trường hợp tôi cần phải làm gì đó như thế này.
Lester Peabody

1

Nếu bạn thoải mái thao tác trực tiếp với cơ sở dữ liệu, các trường hợp trường được lưu trữ trong bảng {field_config_instance}. Bạn có thể thêm / cấu hình trường của mình cho một loại nội dung, sau đó tìm bản ghi trong bảng cơ sở dữ liệu và sao chép nó.

Bạn sẽ phải thay đổi hai giá trị cột trên hàng trùng lặp:

  • id: Nên là một số nguyên mới duy nhất cho bảng
  • gói: Nên là tên máy của loại nội dung mới
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.