2008-09-18 12 views
7

जब आप सामग्री निर्माण किट का उपयोग करके ड्रूपल में एक नई सामग्री प्रकार बनाते हैं, तो आप जेनरेट फॉर्म में स्वचालित रूप से शीर्षक और बॉडी फ़ील्ड प्राप्त करते हैं। क्या उन्हें हटाने का कोई तरीका है?सीसीके उत्पन्न ड्रूपल सामग्री-प्रकार में आप डिफ़ॉल्ट शीर्षक और बॉडी फ़ील्ड को कैसे हटाते हैं?

उत्तर

5

यदि आप डेवलपर नहीं हैं (या आप विकास प्रक्रिया को शॉर्टकट करना चाहते हैं), तो एक और संभावित समाधान auto_nodetitle मॉड्यूल का उपयोग करना है। ऑटो नोडेटिटल आपको नोड के शीर्षक को उत्पन्न करने के लिए नियम बनाने देगा। ये प्रोग्रामेटिक नियम, टोकन जिन्हें प्रतिस्थापित किया जा सकता है, या बस स्थैतिक पाठ हो सकता है। यदि कुछ और नहीं है तो देखो।

3

शरीर को हटाने के लिए प्रकार को संपादित करने के लिए, "सबमिशन फॉर्म सेटिंग्स" का विस्तार करें और बॉडी फील्ड लेबल के लिए खाली रखें। शीर्षक के लिए आप इसे किसी अन्य टेक्स्ट फ़ील्ड में बदल सकते हैं। यदि आपको वास्तव में किसी भी टेक्स्ट फ़ील्ड की आवश्यकता नहीं है, तो आप एक कस्टम मॉड्यूल बना सकते हैं, जिसे foo कहा जाता है, और फ़ंक्शन foo_form_alter() बनाता है जो 0 फॉर्म ['शीर्षक'] को #value के साथ प्रतिस्थापित करता है जब $ form ['type'] ['# मान '] आपका नोड प्रकार है।

+0

यह बॉडी फ़ील्ड के लिए अच्छी तरह से काम करता है लेकिन मैं नाम फ़ील्ड को हटाने के लिए auto_nodetitle मॉड्यूल पसंद करता हूं। धन्यवाद! –

2

आप एक डेवलपर नहीं कर रहे हैं (या आप विकास की प्रक्रिया शॉर्टकट करना चाहते हैं), एक और संभव समाधान auto_nodetitle मॉड्यूल का उपयोग है। ऑटो नोडेटिटल आपको नोड का शीर्षक बनाने के लिए नियम बनाने देगा। ये प्रोग्रामेटिक नियम हो सकते हैं, टोकन जिन्हें प्रतिस्थापित किया गया है, या बस स्थिर टेक्स्ट हो सकता है। और कुछ भी नहीं, तो देखो।

और William OConnor's समाधान के लिए पर जोड़ने के लिए ...

मॉड्यूल खराब दुर्भाग्य से प्रलेखित है। यह वास्तव में केवल प्रभावी है यदि आप मेरी राय में PHP का उपयोग करते हैं। क्षेत्र कुछ "पैटर्न में मूल्यांकन पीएचपी" बंद की जाँच करें और "शीर्षक के लिए पैटर्न" में टाइप की तरह:

<?php echo $node->field_staff_email[0]['email']; ?> 

या:

<?php echo $node->field_staff_name[0]['value'] . '-' . gmdate('YmdHis'); ?> 

... जहाँ मैं एक आंतरिक के साथ एक क्षेत्र था "field_staff_email" का नाम और सीसीके ईमेल मॉड्यूल का उपयोग कर रहा था - इस प्रकार 'ईमेल' प्रकार का उपयोग किया गया था। या, मेरे पास "field_staff_name" का आंतरिक नाम वाला फ़ील्ड था और यह केवल एक साधारण टेक्स्ट फ़ील्ड था - इस प्रकार 'मान' प्रकार का उपयोग किया गया था। अंत में gmdate() कॉल विशिष्टता सुनिश्चित करना है क्योंकि आपके पास एक ही चीज़ नामक दो या दो से अधिक कर्मचारी सदस्य हो सकते हैं।

तरह से मुझे पता चला कि यह सब पहले के साथ प्रयोग करके किया गया था:

<?php print_r($node); ?> 

... जो निश्चित रूप से पागल परिणाम दे दी है, लेकिन कम से कम मैं उत्पादन को पार्स करने और यह पता लगाने कैसे उपयोग करने के लिए कर रहा था ठीक से $ नोड ऑब्जेक्ट।

बस ध्यान दें कि यदि आप इनमें से किसी भी PHP रूटीन का उपयोग करते हैं, तो आप ड्रूपल एडमिन में सामग्री सूची के साथ समाप्त होते हैं जैसे कि आप PHP को कोड करते हैं। यही कारण है कि मैंने केवल gmdate() अकेले उपयोग नहीं किया क्योंकि तब संपादन के लिए मेरा रिकॉर्ड खोजना मुश्किल हो सकता है।

नोट भी आउटपुट के आकार को कम करने के लिए आप gmdate() पर बेस -36 रूपांतरण का उपयोग करने में सक्षम हो सकते हैं क्योंकि gmdate ('ymdHis') काफी लंबा है।

3

स्थापित करने के लिए कुछ भी कोई ज़रूरत नहीं:
जब सामग्री प्रकार को संपादित करने, प्रेस "संपादित करें"
(संपादन के मेनू पर | क्षेत्रों की व्यवस्था करें | प्रदर्शन क्षेत्रों) प्रस्तुत करने पर
क्लिक प्रपत्र सेटिंग्स

पर बॉडी फील्ड लेबल:
इसे खाली छोड़ दें, यह शरीर के क्षेत्र को हटा देगा।

0

प्रारंभिक उत्तर सभी अच्छे हैं। शीर्षक भाग के लिए एक और विचार के रूप में ... सीके नोड प्रकार के लिए एक कस्टम टेम्पलेट फ़ाइल बनाने के बारे में कैसे। आप node.tpl.php को node-TYPE.tpl.php पर कॉपी करेंगे, और फिर नई फ़ाइल संपादित करें और शीर्षक को कहां प्रदान किया जाए इसे हटा दें। (अपने कैश को साफ़ करना न भूलें)।

ऐसा करने का अर्थ यह है कि प्रत्येक नोड में अभी भी एक शीर्षक है, इसलिए सामग्री प्रबंधन के लिए आपको खाली शीर्षक या उसके जैसा कुछ भी नहीं छोड़ा गया है।

एचटीएच!

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