प्लेन टेक्स्ट प्रारूप का उपयोग करते समय मुझे लाइन ब्रेक कैसे मिलते हैं?


11

मुझे ऐसा लगता है कि यह वास्तव में सरल होना चाहिए, लेकिन यह मुझे पागल कर रहा है।

मेरे पास मेरे सभी बॉडी एलिमेंट्स के लिए 'प्लेन टेक्स्ट' है। मैं नहीं चाहता कि कोई भी किसी भी HTML में सभी फॉर्म भरने के समय सक्षम हो।

हालांकि, मैं चाहता हूं कि लाइन टूटने से बच जाए। मैदान के विन्यास पृष्ठ पर वहाँ वास्तव में एक है 'इस बॉक्स को चेक लाइन को ब्रेक और पी में मोड़ने के लिए।

इसे प्राप्त करने के लिए सही कॉन्फ़िगरेशन क्या है ताकि मैं ग्रंथों में रिटर्न संरक्षित कर सकूं?


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

यह एक बग की तरह महसूस किया या जैसे कुछ जगह से थोड़ा बाहर था। मुझे जो पता चल रहा था, वह यह है कि मैं लाइन ब्रेक के लिए br और p टैग वापस कर सकता था, लेकिन फिर उन्हें 'सादे पाठ' को संरक्षित करने के लिए फ़िल्टर किया जा रहा था, आपने क्या जाँच की है और आपके फ़िल्टर का क्रम क्या है?
ब्लू 928

मेरे पास अभी भी प्लेन पाठ के साथ वह मुद्दा है। मैंने भी जोड़ा है <p> और <br> टैग लेकिन कोई किस्मत नहीं। क्या मुझे कुछ याद आ रहा है ??
सोक्रैटिस

जवाबों:



11

यह एक Drupal 7.x बग की तरह लगता है। फ़िल्टर के क्रम को बदलने से मेरे मामले में काम नहीं होता है।

मेरे अल्पकालिक समाधान मेरे विषय के template.php (अंदर इस फेंक था रेफरी ):

<?php
/**
 * Implements template_preprocess_field().
 */
function THEMENAME_preprocess_field(&$vars, $hook) {
  // Add line breaks to plain text textareas.
  if (
    // Make sure this is a text_long field type.
    $vars['element']['#field_type'] == 'text_long'
    // Check that the field's format is set to null, which equates to plain_text.
    && $vars['element']['#items'][0]['format'] == null
  ) {
    $vars['items'][0]['#markup'] = nl2br($vars['items'][0]['#markup']);
  }
}
?>

विचारों के क्षेत्र के लिए, इस विकल्प को फ़ील्ड सेटिंग्स के "परिणाम फिर से लिखना" अनुभाग में अलग से सेट करने की आवश्यकता है।


3

वास्तव में, यह "व्यवस्थापक / कॉन्फ़िगरेशन / सामग्री / प्रारूप / सादे_टेक्स्ट" पर इस फ़िल्टर ऑर्डर सेटिंग के साथ काम करना चाहिए

  1. किसी भी HTML को सादे पाठ के रूप में प्रदर्शित करें
  2. URL को लिंक में परिवर्तित करें
  3. HTML में पंक्ति विराम परिवर्तित करें (अर्थात <br> और <p>)

"किसी भी HTML को सादे पाठ के रूप में प्रदर्शित करें" को हटाकर नीचे दिए गए फ़िल्टर आज़माएं:

  1. अनुमति दी गई HTML टैग्स (अनुमत HTML टैग सूची के लिए केवल <a> और <br> सेट करें)
  2. URL को लिंक में परिवर्तित करें
  3. HTML में पंक्ति विराम परिवर्तित करें (अर्थात <br> और <p>)

2
यह काम नहीं करेगा यदि इनपुट फॉर्मेट फिल्टर्ड टेक्स्ट नहीं है।
आर्टफ्लोरोबोट

3

समाधान सरल है। बस निम्नलिखित सीएसएस के साथ सादा-पाठ सामग्री प्रदर्शित करें।

white-space: pre-line;

2
दरअसल, white-space: pre-line;जैसा कि drupal.org/node/1095838#comment-6679314 पर बताया गया है, बेहतर है।
जीरन

ऐसा सुरुचिपूर्ण समाधान।
5

यह काम करता है, लेकिन केवल यदि आप अपने प्रत्येक फ़ील्ड को मैन्युअल रूप से लक्षित करना चाहते हैं, या यदि आपके सभी लंबे-पाठ फ़ील्ड को इसकी आवश्यकता है। यदि आपने "सादे पाठ" फ़ील्ड को अन्य प्रकार के फ़ील्ड्स के साथ मिश्रित किया है, और यदि आप PDF फ़ाइल बनाने के लिए इसका उपयोग mpdf के साथ कर रहे हैं, तो केवल Druvision का समाधान काम करता है।
रिचर्ड

1

कोड के बिना इस समस्या को जल्दी से हल करने के लिए मैंने उन्नत पाठ प्रारूपक मॉड्यूल का उपयोग किया ।

  1. मॉड्यूल को स्थापित और सक्षम करें।
  2. अपने कंटेंट टाइप के 'मैनेज डिस्प्ले' पर क्लिक करें।
  3. अपने क्षेत्र के प्रारूप के 'सादा पाठ' को 'उन्नत पाठ' में बदलें
  4. दाईं ओर स्थित गियर पर क्लिक करें (या प्रारूप सेटिंग का लिंक)

    1. ट्रिम लंबाई 0 पर सेट करें
    2. फ़िल्टर को 'अनुमत HTML सीमाएँ' पर सेट करें
    3. 'अनुमत HTML टैग' से सभी आइटम निकालें
    4. 'HTML में रूपांतरण रेखा टूटती है' जांचें
    5. 'अपडेट' पर क्लिक करें और अपने फील्ड डिस्प्ले को सेव करें।

केवल पंक्ति विराम की अनुमति देने के लिए उन्नत पाठ प्रारूपक मॉड्यूल की प्रारूप सेटिंग


0

मुझे नहीं लगता कि यह इनपुट फ़िल्टरिंग है: यह संभवतः क्षेत्र के लिए प्रदर्शन सेटिंग है। यदि यह "सादा पाठ" पर सेट है, तो इसे "डिफ़ॉल्ट" में बदलें। अन्यथा इनपुट लाइन-ब्रेक के लिए उत्पन्न टैग क्षेत्र प्रदर्शित होने से पहले ही अलग हो जाते हैं।

स्पष्टता के लिए, यह प्रश्न में सामग्री प्रकार के लिए "मैनेज डिस्प्ले" पैनल पर है। प्रशासन »संरचना» सामग्री प्रकार »MyContentType» प्रदर्शन प्रबंधित करें। क्षेत्र के लिए प्रारूप कॉलम के तहत।


0

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


0

"सादा पाठ प्रारूप" के रूप में "पाठ प्रसंस्करण" -मेथोड किसी भी HTML-टैग का समर्थन नहीं करता है, इसलिए लाइन सामान्य रूप से काम नहीं करती है।

"फ़िल्टर किए गए पाठ (उपयोगकर्ता पाठ प्रारूप का चयन करता है)" के लिए "पाठ प्रारूप" बनाएं और "पाठ प्रारूप" को "सादे पाठ" पर सेट करें।


यह मेरे लिए क्या हल किया गया था कि सामग्री को फ़ील्ड में "फ़िल्टर किए गए पाठ - उपयोगकर्ता चयन" में बदलना है लेकिन फिर मैंने सुनिश्चित किया कि उपयोगकर्ता के पास केवल सादे पाठ संपादक तक पहुंच थी। किसी तरह काम हुआ। यदि उपयोगकर्ता के पास अन्य टेक्स्ट संपादकों तक पहुंच है, तो यह इतना अच्छा नहीं होगा।
क्रिस्टिया

-2

यह बेहतरीन मॉड्यूल आपको https://drupal.org/project/wysiwyg_linebreaks मदद कर सकता है

Wysiwyg Linebreaks, wysiwyg संपादकों के उपयोगकर्ताओं को अपनी वेबसाइट से मार्कअप को बचाने और खोलने की अनुमति देता है <p>और <br /> टैग के बजाय लाइनब्रीक के साथ ।

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