पूर्ण सामग्री दृश्य में शरीर पर सारांश (टीज़र) कैसे प्रदर्शित करें


11

मैं शीर्षक के तहत प्रत्येक लेख के शीर्ष पर एक टीज़र प्रदर्शित करना चाहता हूं, जैसा कि "पूर्ण सामग्री" लेआउट के बाद:

  1. शीर्षक
  2. टीज़र (लेख सारांश)
  3. छवि
  4. तन

इसके अलावा टीज़र का अपना स्वरूपण होना चाहिए (उदाहरण के लिए इटैलिक और एक बड़ा फ़ॉन्ट)

मुझे ऐसा करने का कोई तरीका नहीं मिला जो बिना tpl फाइलों या कोर फाइलों को एडिट किए हुए हो।

एक समाधान मेरे सामग्री प्रकार में एक नया फ़ील्ड "article_teaser" जोड़ना होगा, फिर "पूर्ण सामग्री" दृश्य में मेरा लेआउट प्राप्त करने के लिए प्रदर्शन को प्रबंधित करें। यह काम करता है, लेकिन मुझे अपने इनपुट सामग्री फॉर्म में दो टीज़र-फ़ील्ड रखना पसंद नहीं है, क्योंकि मुझे एक ही टेक्स्ट को दो बार लिखना चाहिए।

ऐसा लगता है कि मैं अपने "टेक्स्ट" और "सारांश" भागों में फ़ील्ड बॉडी को विभाजित नहीं कर सकता, लेकिन मैं केवल एक या दूसरे को प्रदर्शित कर सकता हूं, लेकिन दोनों को!

क्या ऐसा करने का कोई तरीका (एक मॉड्यूल?) है?

(मेरा वातावरण: ज़ेन सब थीम के साथ ड्रुपल 7।)

जवाबों:


10

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

संदर्भ के लिए: दृश्य का उपयोग करने पर वीडियो स्क्रेंकोस्ट की नोड वन श्रृंखला


आपका बहुत बहुत धन्यवाद। लिंक बहुत उपयोगी है, और मैं विचारों के बारे में बहुत कुछ सीख रहा हूं: मुझे एक ऐसा दृश्य मिला जिसने सामान किया। लेकिन दृश्य नोड्स की सूची दिखाते हैं, जबकि मेरी सामग्री प्रकार (एक पुस्तक पृष्ठ) एक एकल पृष्ठ है: मैं नोड्स की सूची (मेरे द्वारा बनाया गया दृश्य) के साथ एक एकल पुस्तक पृष्ठ (नोड) को कैसे ओवरराइड कर सकता हूं? मैं शायद विचारों के बारे में कुछ याद कर रहा हूं, हो सकता है कि अपने स्वयं के साथ डिफ़ॉल्ट पुस्तक पृष्ठ को कैसे ओवरराइड किया जाए।
गिंगो

@gingo सभी पुस्तक पृष्ठों को ओवरराइड करने के लिए, आपको एक विशेष तरीके से दृश्य पथ को कॉन्फ़िगर करना होगा। एक उदाहरण के लिए, टैक्सोनॉमी शब्द देखें, जो डिफ़ॉल्ट रूप से (अक्षम) द्वारा प्रदान किया गया है। रास्ता तय है /taxonomy/term/%; यदि आप उस दृश्य को संपादित करते हैं, तो आप देख सकते हैं कि कैसे तर्कों (प्रासंगिक फिल्टर) को खींच कर आपको करणीय शर्तों के लिए प्रदर्शन को संपादित करने की अनुमति मिलती है। आप अपनी साइट पर पुस्तक पृष्ठों के लिए कुछ समान सेट कर सकते हैं।
पैट्रिक केनी

ठीक है, मुझे संदर्भ फिल्टरों में गहराई से देखना होगा लेकिन मुझे लगता है कि मैं सही रास्ते पर हूं। धन्यवाद।
गिंगो

3

दृश्य निश्चित रूप से काम कर सकते हैं। लेकिन मुझे लगता है कि इस आवश्यकता के लिए यह थोड़ा अधिक ओवरकिल है।

इसे प्राप्त करने का एक और तरीका है अपने कस्टम मॉड्यूल में हुक_फ़ील्ड_एक्सफ़्रा_फील्ड्स () और हुक_नोड_व्यू () लागू करना।

/**
 * Implements hook_field_extra_fields().
 */
function mymodule_field_extra_fields() {
  // Put the content type you want to display summary field here.
  $content_type = 'page';

  $extra['node'][$content_type]['display']['body_summary'] = array(
    'label' => t('Body summary'),
    'description' => t('Display body summary.'),
    'weight' => 0,
  );

  return $extra;
}

/**
 * Implements hook_node_view().
 */
function mymodule_node_view($node, $view_mode, $langcode) {
  // Put the content type you want to display summary field here.
  $content_type = 'page';

  if ($node->type == $content_type) {
    $summary = field_view_field('node', $node, 'body', array(
      'type' => 'text_summary_or_trimmed',
    ));

    $node->content['body_summary'] = array(
      '#markup' => $summary,
      '#weight' => 0,  
    );
  }
}

कैश को साफ़ करें और आप "बॉडी समरी" फ़ील्ड को रखने के लिए ड्रैग और ड्रॉप करने के लिए कंटेंट टाइप "मैनेज डिस्प्ले" सेटिंग्स में जा सकते हैं। उदाहरण के लिए admin/structure/types/manage/page/display


हम्म मुझे लगता है कि यह करीब है, लेकिन क्षेत्र की सामग्री प्रदर्शित नहीं होती है, बस Array
अर्जन

अरे @ अर्जन, क्या आपने एरे डेटा की जाँच की है और इसे यहाँ कॉपी करें, कृपया?
eric.chenchao

एक चर बनाने वाली बात क्या है, इसका उपयोग किए जाने वाले एकमात्र स्थान के ऊपर 1 रेखा, बस अगर स्टेटमेंट में स्ट्रिंग
डालते हैं

हाय @Kiee, तुम सही हो। लेकिन यह स्निपेट टिप्पणी के साथ उदाहरण के रूप में प्रयोग किया जाता है;)
eric.chenchao

3

ड्रुपल 7 पर:

फ़ील्ड बॉडी में आप 'रिजल्ट रिजल्ट' का उपयोग कर सकते हैं और 'प्रतिस्थापन पैटर्न' में इसका उपयोग कर सकते हैं:

[body-summary]

और यह पूर्ण सारांश प्रदर्शित करेगा।


आप एक जीनियर जेवियर हैं, जो सभी ओवरकिल स्पष्टीकरण हैं, आपका वह है जो सबसे दूर तक सबसे अच्छा काम करता है और सरल sooooooooooooo!
ब्रूनो विन्सेंट

0

सामग्री प्रकार के पुनर्परिभाषित के लिए आपको पैनलों को देखने की आवश्यकता है क्योंकि पैनलों का एक कार्य कुछ सामग्री प्रकारों (या अन्य चयन मानदंडों के आधार पर जानकारी) के मूल स्वरूप को बिल्कुल पुनर्परिभाषित कर रहा है Csaba


0

जैसा कि अर्जन ने देखा कि सिटीरीडर का स्निपेट परिणाम उत्पन्न करता है, लेकिन यह ठीक से प्रस्तुत नहीं करता है।

इस भिन्नता ने मेरे लिए काम किया:

 /**
 * Implements hook_field_extra_fields().
 */
function mymodule_field_extra_fields() {
  // Put the content type you want to display summary field here.
  $content_type = 'page';

  $extra['node'][$content_type]['display']['body_summary'] = array(
    'label' => t('Body summary'),
    'description' => t('Display body summary.'),
    'weight' => 0,
  );

  return $extra;
}

/**
 * Implements hook_node_view().
 */
function mymodule_node_view($node, $view_mode, $langcode) {
  // Put the content type you want to display summary field here.
  $content_type = 'page';

  if ($node->type == $content_type) {
    $summary = field_view_field('node', $node, 'body', array(
      'type' => 'text_summary_or_trimmed',
    ));

    $node->content['body_summary'] = array(
      '#markup' => $summary['#items'][0]['safe_summary'],
      '#weight' => 0,  
    );
  }
}

0

यदि आप दृश्य और प्रदर्शन सूट मॉड्यूल का उपयोग करके नो-कोड समाधान में रुचि रखते हैं:

  1. उस पर सारांश फ़ील्ड के साथ व्यू ब्लॉक बनाएं। उन्नत सेटिंग्स में प्रासंगिक फ़िल्टर विकल्प के तहत आप URL से टाइप आईडी के साथ "डिफ़ॉल्ट मान प्रदान करें" विकल्प सेट कर सकते हैं।

  2. सामग्री प्रकार के तहत -> [अपनी सामग्री प्रकार] -> प्रदर्शन का चयन करें कस्टम फ़ील्ड विकल्प (नीचे स्थित मेनू) का चयन करें और चरण 1 में आपके द्वारा बनाए गए दृश्य से कस्टम ब्लॉक फ़ील्ड बनाएं।

  3. सहेजें पर कस्टम फ़ील्ड नोड प्रकार फ़ील्ड सूची में दिखाई देगी जहां आप चुन सकते हैं कि यह किस क्षेत्र में दिखाई देगा।

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