मैं अपने फ़ील्ड लेबल से कॉलन कैसे निकालूं?


10

मैं उदाहरण के लिए अपने रेंडर फील्ड लेबल से कोलन को हटाने में सक्षम होना चाहता हूं:

होटल का नाम: होटल के नाम पर

मैंने field.tpl.php की प्रतिलिपि बनाई और वहाँ बृहदान्त्र को हटा दिया, लेकिन कोई बात नहीं क्या Drupal इसे स्वीकार करने से इनकार करता है और बृहदान्त्र को कहीं और से खींच रहा है।

मैं इसे template.php फ़ंक्शन के साथ कैसे कर सकता हूं?


क्या आपने कैश साफ़ किया?
अजित

हाँ, कई बार। नो गो
ब्लू 928


@ blue928 डुप्लिकेट पोस्ट देखें, तो आप ओवरराइड करने के लिए की जरूरत है theme_form_element()यह करने के लिए
क्लाइव

जब किसी संपादन / इनपुटिंग सामग्री को ऊपर नोड / फिक्स ने केवल कॉलोनों को फॉर्म से हटा दिया। नोड में रेंडर होने के बाद मुझे लेबल हटाने होंगे। .. तो, यह ऊपर के एक डुप्लिकेट नहीं होगा। मैंने वास्तव में उस परिणाम को प्राप्त करने के लिए उस समाधान को लागू किया।
नीले 928

जवाबों:


16

इसका जवाब निश्चित रूप से field.tpl.php का उपयोग करना है । यदि आप उस फ़ाइल के स्रोत को देखते हैं तो आप अपमानजनक लाइनें देख सकते हैं:

<?php if (!$label_hidden): ?>
  <div class="field-label"<?php print $title_attributes; ?>>
    <?php print $label ?>:&nbsp;
  </div>
<?php endif; ?>

(स्पष्टता के लिए रिक्ति और इंडेंटेशन खान)।

बृहदान्त्र को निकालना उतना ही सरल है जितना ऊपर की पंक्तियों को बदलना:

<?php if (!$label_hidden): ?>
  <div class="field-label"<?php print $title_attributes; ?>>
    <?php print $label ?>&nbsp;
  </div>
<?php endif; ?>

मैंने अभी-अभी परीक्षण किया है कि एक रिक्त Drupal स्थापना पर और यह पूरी तरह से काम करता है; फ़ील्ड लेबल के बाद और अधिक कॉलोन नहीं।

यदि आप पहले से ही एक ही काम कर रहे हैं, लेकिन सही परिणाम नहीं मिल रहे हैं, तो मैं एक या दो चीजों के बारे में सोच सकता हूं जो भड़क सकती हैं:

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

आप टेम्प्लेट प्रीप्रोसेस फ़ंक्शन के साथ परिवर्तन नहीं कर पाएंगे, क्योंकि टेम्प्लेट फ़ाइल में कोलन हार्ड-कोडेड है।


आह, वास्तव में टेम्पलेट फ़ाइल को सही तरीके से काम करने से रोकने वाला एक और मॉड्यूल था। कुछ उपयोगी डिबगिंग दिशाओं को इंगित करने के लिए धन्यवाद।
ब्लू 928

9

मैंने सिर्फ एक मॉड्यूल बनाया है जो वास्तव में ऐसा करता है, आउटपुट पर फील्ड लेबल से कॉलन (प्रति फ़ील्ड आधार पर) निकालता है: Colectomy


पुष्टि कर सकते हैं। यह मॉड्यूल उत्कृष्ट रूप से काम करता है और इस मुद्दे का एक सरल, सुरुचिपूर्ण समाधान है।
मार्क

2

यदि यह फ़ील्ड्स के साथ दृश्य है, तो केवल फ़ील्ड पर क्लिक करें और "लेबल बनाएं" के तहत "लेबल के बाद एक कॉलन रखें" को अनचेक करें।


2

डिस्प्ले सूट समान कार्यक्षमता प्रदान करता है:

यदि आप प्रदर्शन सूट एक्स्ट्रा कलाकार को सक्षम करते हैं तो लेबल से पहले कॉलोन हटाने का एक विकल्प है:

उस के लिए रास्ता है: /admin/structure/ds/list/extras/

यहाँ छवि विवरण दर्ज करें


1
यह बृहदान्त्र को हटाने से अधिक एक बहुत कुछ करता है। यदि आपने कस्टम CSS लागू किया है तो यह उसे मार देगा।
मार्क

0

मेरे मामले में इसने पूरे कार्य को मेरी फ़ाइल में कॉपी करके और पढ़ी गई पंक्ति को बदलकर theme_field()( ओवरराइड field.moduleकरके) काम कियाtemplate.php

$output .= '<div class="field-label"' . $variables['title_attributes'] . '>' . $variables['label'] . '&nbsp;</div>';

कोशिश करने से पहले साफ़ करें।


0

मुझे Drupal 8 के लिए कहीं भी इस सवाल का जवाब नहीं मिला। Drupal 8 के साथ बृहदान्त्र को सीरी कोर थीम में CSS फ़ाइल (field.css) के साथ जोड़ा जाता है यदि आप इसे अपने बेस थीम के रूप में उपयोग कर रहे हैं। आपको बस इतना करना है कि इसे अपने विषय में अपने सीएसएस फ़ाइल में ओवरराइड करें।

तो मूल field.css फ़ाइल से:

.field--label-inline .field__label::after {
    content: ':';
}

बृहदान्त्र को हटाने के लिए मेरी थीम CSS फ़ाइल में:

.field--label-inline .field__label::after {
    content: '';
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.