एक बार में कई सामग्री प्रकारों में फ़ील्ड जोड़ें?


9

मैं एक बार में कई सामग्री प्रकारों में फ़ील्ड जोड़ना चाहता हूं, और उन सभी के लिए इसे एक ही बार में कॉन्फ़िगर करना चाहता हूं।

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

क्या कई सामग्री प्रकारों के लिए एक नए क्षेत्र के बड़े पैमाने पर जोड़ने / कॉन्फ़िगर करने का कोई तरीका है?


आपके पास कितने सामग्री प्रकार हैं?
बोबिलापॉइंट 17

मैं यह मान रहा हूं कि यह सवाल अब ओपी के लिए प्रासंगिक नहीं है, लेकिन निगेल वाटर्स के लिए भी प्रासंगिक है, जिन्होंने इनाम निर्धारित किया है। क्या आप टिप्पणी करने के लिए निगेल की देखभाल करेंगे?
कारी कामिनीन

25 हैं (यह एक बहुत बड़ी साइट है, इसके लिए अलग सामग्री प्रकार की आवश्यकता होती है)।
निगेल वॉटरर्स

Btw, एक अन्य समाधान इस तरह के सामान के लिए किसी को सस्ते में काम पर रखने के लिए है :)
20

या एक ब्राउज़र मैक्रो?
डॉनक्विओटे

जवाबों:


9

फ़ीचर मॉड्यूल का उपयोग करने वाली व्यापक लाइनें हो सकती हैं:

  1. हाथ से फ़ील्ड को दो (पैटर्न देखने के लिए) सामग्री प्रकारों में जोड़ें
  2. नए बनाए गए फ़ील्ड के लिए फ़ील्ड बेस और फ़ील्ड इंस्टेंस सहित एक फ़ीचर बनाएं
  3. क्षेत्र आधारों और उदाहरणों को आवश्यक सभी प्रकार की सामग्री से गुणा करने के लिए बनाए गए मॉड्यूल को संपादित करें
  4. संपादित मॉड्यूल सक्षम करें

मुझे याद नहीं कि वास्तव में फ़ीचर फ़ील्ड के साथ कैसे व्यवहार करते हैं .. क्या फ़ील्ड के बनने के बाद फ़ीचर को अक्षम करना संभव है?
दानवेक्सोट

नवजात मॉड्यूल सुविधाओं पर निर्भर करेगा, इसलिए मूल रूप से नहीं, जहां तक ​​मुझे पता है।
कारी गृहिणी

मेरा मतलब है कि नवजात शिशु को अक्षम करें, न कि सुविधाओं को अक्षम करें। सवाल यह है कि क्या क्षेत्र के उदाहरण अभी भी होंगे। हो सकता है कि लेस्टर पीबॉडी या निगेल वाटर्स इसे आजमाएं और वापस रिपोर्ट करें।
donquixote

मुझे माफ करें। हां, वास्तव में दोनों को निष्क्रिय किया जा सकता है, क्षेत्र डेटाबेस में रहेंगे, मैं देखता हूं, जैसा कि अब मैं खुद इसे परख रहा हूं।
कारी किशनिन

यह डिफ़ॉल्ट ड्रुपल सेटअप और अधिकांश अन्य ड्रुपल सेटअप के लिए भी सही उत्तर है। लेकिन यदि आपके पास अलग-अलग सामग्री प्रकारों के लिए अलग-अलग डिस्प्ले मोड उपलब्ध हैं, तो आप प्रत्येक सामग्री प्रकार में फ़ील्ड्स को हाथ से कॉन्फ़िगर करना बेहतर समझते हैं, या सुनिश्चित करें कि आप अपने फ़ील्ड_स्टांस सरणी कोड में सही प्रदर्शन प्रकारों का उपयोग करते हैं।
सुमीत पारीक

5

फ़ील्ड टूल मॉड्यूल का उपयोग करें :

खेतों के साथ काम करने के लिए उपयोगी UI टूल का एक संग्रह:

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!

यह बहुत भयानक लग रहा है, मैं इसे देखने जा रहा हूं।
लेस्टर पीबॉडी

3

यदि आपको इसके लिए कोई कस्टम मॉड्यूल लिखने में कोई आपत्ति नहीं है, तो कोड के माध्यम से सामग्री प्रकार में फ़ील्ड जोड़ना अपेक्षाकृत आसान है:
$instance = array(
'field_name' => 'field_firstname',
'label' => 'First name',
'entity_type' => 'node',
'bundle' => 'person',
);
field_create_instance($instance);

उपरोक्त कोड मशीन नाम "व्यक्ति" के साथ सामग्री प्रकार के लिए फ़ील्ड "field_firstname" जोड़ देगा। इसलिए आप एक ऐसा मॉड्यूल बना सकते हैं, जो एक फॉर्म आपको एक फ़ील्ड और कई प्रकार की सामग्री का चयन करने की अनुमति देता है और सबमिट करने पर फ़ील्ड को सभी चयनित सामग्री प्रकारों में जोड़ा जाता है।


1

कुछ समय जो मुझे करना पड़ा है, मैंने फील्ड कलेक्शन का उपयोग किया है ।

एक फ़ील्ड-संग्रह फ़ील्ड प्रदान करता है, जिससे किसी भी फ़ील्ड को संलग्न किया जा सकता है।

यह अभी भी बहुत कठिन है, क्योंकि आपको प्रत्येक सामग्री प्रकार में फ़ील्ड संग्रह फ़ील्ड जोड़ना होगा। कहा कि, यदि आप 5 या 6 फ़ील्ड को कई सामग्री प्रकारों में जोड़ रहे हैं, तो आपको केवल फ़ील्ड संग्रह में एक बार प्रारंभिक 5 या 6 फ़ील्ड कॉन्फ़िगर करना होगा।

उसके बाद, आप अपने किसी एक प्रकार के फ़ील्ड पर फ़ील्ड संग्रह फ़ील्ड बनाते हैं (तर्कों के लिए इसे कॉल करते हैं field_collection_field) और फिर अन्य सभी पर उसी फ़ील्ड का पुनः उपयोग करें।

जैसा कि मैंने कहा, आपको अभी भी एक फ़ील्ड को सामग्री प्रकारों की x मात्रा पर कॉन्फ़िगर करना है..लेकिन यह 10 सामग्री प्रकारों (उदाहरण के लिए) पर 10 फ़ील्ड बनाने से बेहतर है।


aah..sorry। मैंने आपके प्रश्न को फिर से पढ़ा है और इसे केवल एक क्षेत्र की आवश्यकता है। अपना समय बर्बाद करने के लिए क्षमा करें> _ <
चपबाबू

कहा कि आप इस एक फ़ील्ड को फ़ील्ड संग्रह में रख सकते हैं और इसे कॉन्फ़िगर कर सकते हैं कि आप कैसे चाहते हैं, और फिर अपने पहले से कॉन्फ़िगर किए गए फ़ील्ड के साथ फ़ील्ड संग्रह का संदर्भ लें। हालाँकि, यह थोड़ा ओवरकिल है।
चापाबू

कोई समस्या नहीं, चापाबू, यह अभी भी उपयोगी जानकारी है, जब मुझे सड़क के नीचे ऐसा कुछ करने की आवश्यकता होती है।
लेस्टर पीबॉडी

1

यदि आप सीधे डेटाबेस में हेरफेर करने में सहज हैं, तो फ़ील्ड इंस्टेंसेस {field_config_instance} तालिका में संग्रहीत किए जाते हैं। आप एक सामग्री प्रकार के लिए अपने क्षेत्र को जोड़ / कॉन्फ़िगर कर सकते हैं, फिर डेटाबेस तालिका में रिकॉर्ड ढूंढ सकते हैं और इसे डुप्लिकेट कर सकते हैं।

आपको डुप्लिकेट पंक्ति पर दो कॉलम मान बदलने होंगे:

  • आईडी: टेबल के लिए एक नया पूर्णांक होना चाहिए
  • बंडल: नई सामग्री प्रकार का मशीन नाम होना चाहिए
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.