2011-10-18 15 views

cevap

5

Kolay bir yol yok, hayır. Bildiğim kadarıyla söyleyebilirim bu kılavuzu DB yapmak gerekir değiştirir şunlardır: 'LIST_TEXT' ve alan için 'listesi module kolona

  1. değişiklik field_config yılında type sütunu. Daha sonra data sütunundaki serileştirilmiş diziyi bir liste türüyle eşleştirmek için değiştirmeniz gerekir (şu anda metin türleri için ayarlara sahip olacaksınız). Burada nasıl yapılacağını göstermek için kolay bir yolu yok, en iyi yolu liste türü farklı bir alan için biriyle tefrika diziyi karşılaştırmak olacaktır, o zaman/değişikliğini kaldırmak için gerekenleri değerleri görmek mümkün olacak . settings altındaki allowed_values dizisi, listenizin değerlerini koyduğunuz yer olacaktır. Bu değiştirildikten sonra, yeniden düzenleyin ve alanınız için data sütununa geri koyun. Bundan sonra

  2. field_myfield_ ile başlayan alanın field_data ve field_revision tablolardan herhangi sütunları kaldırmak ancak değildir field_myfield_value (liste türü hala o sütunu gerekir).

  3. value sütun için bu tablolara bir dizin ekleyin.

  4. temizleyin önbelleğe

Ben sadece duyu tablo yapıları bakarak yapmak gibi görünüyor tamamen denenmemiş var uyarmalıyız

, bunun iyi bir fikir almak olurdu bir geri üç tablo kadar sen Her ihtimale karşı oynayacağım.

+0

Bir çekicilik gibi çalıştım! –

+1

teşekkür ederim ben de doğrudan field_config_instance' 'verileri düzenleme veya alanını düzenleyerek ve widget türü olarak "Onay kutuları" "Seç" veya seçerek yapabilirsiniz ya hangi widget türünü değiştirmek zorunda kaldı. Ayrıca bir ipucu olarak, ilk seçme alanını yapmak ve mevcut sütununu düzenlemek için bu seri hale getirilmiş verileri kullanmak daha kolay buluyorum. Temel olarak sadece ismi (ve bu girişlerin karakter uzunluklarını) ve kimliğini değiştirmeniz gerekir. – Wayne

4

Sadece benim Helper module sizin için bu işlemesi gereken bazı kodlar yazdım: http://cgit.drupalcode.org/helper/tree/lib/FieldChangeHelper.php?h=7.x-1.x

FieldChangeHelper::changeType('my_text_field_name', 'list_text'); 

En basit vakalarda ve alanlar için sorunsuz çalışır, ancak iyice test edilmelidir. Ayrıca şu anda herhangi bir alan biçimlendiricisini güncellememektedir, bu yüzden bunu çalıştırdıktan sonra alanın görüntü yapılandırmasını gözden geçirmek isteyeceksiniz.

+0

Teşekkürler - bu harika çalıştı ve zaman kazandı :) –