2011-10-18 16 views
5

मेरे पास एक फ़ील्ड है जो टाइप टेक्स्ट है और मैं इसे ड्रूपल 7 में सूची (टेक्स्ट) टाइप करने के लिए रूपांतरित करना चाहता हूं। मैं मूल्य को आसानी से बदल नहीं सकता, क्योंकि यह ' मुझे जाने दो, क्या ऐसा करने का कोई आसान तरीका है?फ़ील्ड टेक्स्ट को सूची (टेक्स्ट) ड्रूपल में बदलें 7

उत्तर

5

कोई आसान तरीका नहीं है, नहीं। जहाँ तक मेरा बता सकते हैं इन मैनुअल डीबी परिवर्तन करना होगा: 'list_text' और अपने क्षेत्र के लिए 'सूची' के लिए module स्तंभ के लिए

  1. field_config में परिवर्तन type स्तंभ।

  2. फिर आपको सूची प्रकार के मिलान के लिए data कॉलम में धारावाहिक सरणी को बदलने की आवश्यकता होगी (इसमें स्पष्ट रूप से टेक्स्ट प्रकारों की सेटिंग्स होगी)। आपको यह दिखाने का कोई आसान तरीका नहीं है कि इसे यहां कैसे किया जाए, सबसे अच्छा तरीका धारावाहिक सरणी की तुलना किसी सूची प्रकार के किसी भिन्न फ़ील्ड के साथ करना होगा, फिर आप यह देखने में सक्षम होंगे कि आपको कौन से मूल्यों को हटाने/बदलने के लिए आवश्यक है । allowed_values सरणी settings के तहत होगी जहां आप अपनी सूची के मूल्य डाल देंगे। एक बार यह बदल जाने के बाद, इसे फिर से क्रमबद्ध करें और इसे अपने क्षेत्र के लिए data कॉलम में वापस रखें।

  3. उसके बाद अपने क्षेत्र के field_data और field_revision तालिकाओं field_myfield_ के साथ शुरू से किसी भी स्तंभों को निकालने लेकिन नहीं हैंfield_myfield_value (सूची प्रकार अभी भी उस स्तंभ की जरूरत है)।

  4. value कॉलम के लिए उन तालिकाओं में एक अनुक्रमणिका जोड़ें।

  5. स्पष्ट अपने कैश

मुझे लगता है कि पूरी तरह से अपरीक्षित यही समझदारी तालिका संरचनाओं को देख कर लगता है है को सचेत करना चाहिए, यह एक अच्छा विचार लेने के लिए होगा एक वापस तीन टेबल के ऊपर आप बस मामले में खेलेंगे।

+0

एक आकर्षण की तरह काम किया! धन्यवाद –

+1

मुझे विजेट प्रकार को भी बदलना पड़ा, जिसे आप डेटा को सीधे 'field_config_instance' में संपादित करके, या फ़ील्ड को संपादित करके और विजेट प्रकार के रूप में "चयन करें" या "चेकबॉक्स" चुनकर कर सकते हैं। एक टिप के रूप में, मुझे पहले चयनित क्षेत्र बनाने और मौजूदा कॉलम को संपादित करने के लिए उस धारावाहिक डेटा का उपयोग करना सबसे आसान लगता है। आपको मूल रूप से केवल नाम (और उन प्रविष्टियों के लिए वर्ण की लंबाई) और आईडी को बदलने की आवश्यकता है। – Wayne

4

मैं बस कुछ कोड है कि मेरे Helper module में आप के लिए यह संभाल चाहिए लिखा है: http://cgit.drupalcode.org/helper/tree/lib/FieldChangeHelper.php?h=7.x-1.x

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

यह सबसे साधारण मामलों और खेतों के लिए ठीक काम करना चाहिए, लेकिन अच्छी तरह से परीक्षण किया जाना चाहिए। यह वर्तमान में किसी भी फील्ड स्वरूपण को अद्यतन नहीं करता है, इसलिए आप इसे चलाने के बाद फ़ील्ड के लिए प्रदर्शन कॉन्फ़िगरेशन की समीक्षा करना चाहेंगे।

+0

धन्यवाद आदमी - जिसने बहुत अच्छा काम किया और समय बचाया :) –

संबंधित मुद्दे