Aynı anda birden fazla içerik türüne alan eklensin mi?


9

Aynı anda birden çok içerik türüne bir alan eklemek ve hepsini aynı anda yapılandırmak istiyorum.

Bunun nedeni, her birine bu yeni alanı ekleyerek güncellenmesi gereken birçok içerik türümün olması. Bu alan tüm içerik türleri için de aynı şekilde yapılandırılacaktır. Eklemek istediğim her içerik türünü ekleyip yapılandırmak için bu işlemi tekrarlamalıyım ve bir süre sonra zorlaşıyor.

Birçok içerik türüne yeni bir alan için toplu ekleme / yapılandırma yapmanın bir yolu var mı?


Kaç içerik türünüz var?
bobylapointe

Bu sorunun artık OP için geçerli olmadığını, ancak ödül alan Nigel Waters için geçerli olduğunu varsayıyorum. Nigel yorum yapmak ister misiniz?
Kari Kääriäinen

25 (Çok geniş bir sitedir, bunların ayrı içerik türleri olmasını gerektirir).
Nigel Waters

Btw, başka bir çözüm bu tür şeyler için ucuz birini işe :)
donquixote

Yoksa bir tarayıcı makrosu mu?
donquixote

Yanıtlar:


9

Özellikler modülünü kullanan geniş hatlar şunlar olabilir:

  1. Alanı iki (desen görmek için) içerik türüne elle ekleyin
  2. Yeni oluşturulan alanlar için alan tabanlarını ve alan örneklerini içeren bir Özellik oluşturma
  3. Oluşturulan modülü alan tabanlarını ve örnekleri gerekli tüm içerik türleriyle çarparak düzenleyin
  4. Düzenlenen modülü etkinleştir

Özelliklerin alanlarla tam olarak nasıl uğraştığını hatırlamıyorum .. Alanlar oluşturulduktan sonra özelliği devre dışı bırakmak mümkün mü?
donquixote

Yeni doğan modül, bildiğim kadarıyla, Hayır özelliklerine bağlı olacaktır.
Kari Kääriäinen

Yani yeni doğan modülü devre dışı bırakmak, Özellikleri devre dışı bırakmak değil. Soru, alan örneklerinin hala orada olup olmayacağıdır. Belki Lester Peabody veya Nigel Waters bunu deneyebilir ve rapor verebilir.
donquixote

Ay pardon. Evet, aslında her ikisi de devre dışı bırakılabilir, alanlar veritabanında yaşayacak, anladım, şimdi kendim test ediyorum.
Kari Kääriäinen

Bu, varsayılan drupal kurulumları ve diğer drupal kurulumlarının çoğu için doğru cevaptır. Ancak, farklı içerik türleri için farklı görüntüleme modlarınız varsa, her içerik türündeki alanları el ile yapılandırmaktan daha iyidir veya field_instance dizi kodunuzda doğru görüntü türlerini kullandığınızdan emin olursunuz.
Sümer Pareek

5

Alan Araçları modülünü kullanın :

Alanlarla çalışmak için kullanışlı UI araçları koleksiyonu:

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!

Bu kulağa harika geliyor, buna bakmak zorundayım.
Lester Peabody

3

Bunun için özel bir modül yazmanın sakıncası yoksa, içerik türüne kod yoluyla bir alan eklemek nispeten kolaydır:
$instance = array(
'field_name' => 'field_firstname',
'label' => 'First name',
'entity_type' => 'node',
'bundle' => 'person',
);
field_create_instance($instance);

Yukarıdaki kod, "person" makine adıyla içerik türüne "field_firstname" alanını ekleyecektir. Böylece, bir alan ve bir dizi içerik türü seçmenize izin veren bir form oluşturabilir ve gönderildikten sonra alan seçilen tüm içerik türlerine eklenir.


1

Bunu yapmak için birkaç kez Field Collection kullandım .

Herhangi bir sayıda alanın eklenebileceği bir alan toplama alanı sağlar.

Alan toplama alanını her içerik türüne eklemeniz gerektiğinden yine de oldukça zordur. Bununla birlikte, birden çok içerik türüne 5 veya 6 alan ekliyorsanız, ilk 5 veya 6 alanı alan koleksiyonunda yalnızca bir kez yapılandırmanız gerekir.

Bunu takiben, field_collection_fieldiçerik türlerinizden birinde alan toplama alanını (sake diyelim ki diyelim ) oluşturursunuz ve daha sonra aynı alanı diğerlerinde yeniden kullanırsınız.

Söylediğim gibi, yine de x içerik türü miktarında bir alan yapılandırmanız gerekir. Ancak 10 içerik türünde 10 alan oluşturmaktan daha iyidir (örneğin).


aah..sorry. Sorunuzu da tekrar okudum ve sadece bir alana ihtiyacı var. Zaman
kaybettiğiniz

Bu, bu alanı bir alan koleksiyonuna yerleştirip istediğiniz şekilde yapılandırabileceğinizi ve alan koleksiyonuna önceden yapılandırılmış alanınızla başvurabileceğinizi söyledi. Ancak, bu biraz abartılı.
Chapabu

Sorun değil Chapabu, bu yolda böyle bir şey yapmam gerektiğinde ileride faydalı bilgiler.
Lester Peabody

1

Veritabanını doğrudan yönetmek konusunda rahatsanız, alan örnekleri {field_config_instance} tablosunda saklanır. Alanınızı bir içerik türü için ekleyebilir / yapılandırabilir, ardından kaydı veritabanı tablosunda bulabilir ve çoğaltabilirsiniz.

Çoğaltılan satırdaki iki sütun değerini değiştirmeniz gerekir:

  • id: Tabloya özgü yeni bir tam sayı olmalıdır
  • paket: Yeni içerik türünün makine adı olmalıdır
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.