एक टहनी क्षेत्र टेम्पलेट के लिए एक चर कैसे जोड़ें?


9

नोड पृष्ठ पर मैं नोड शीर्षक को दूसरे क्षेत्र (उदाहरण क्षेत्र) के साथ आउटपुट में जोड़ना चाहूंगा।

मैंने एक नया बनाया है, field--field-example.html.twigलेकिन नोड शीर्षक चर का उपयोग करने में असमर्थ हूं क्योंकि यह फ़ील्ड टेम्पलेट में उपलब्ध नहीं है।

मैं विषय preprocess में चर जोड़ने की जरूरत है: themename.theme

मैं चर को कैसे जोड़ूं themename.themeऔर इसमें क्या प्रविष्टि होगी field--field-example.html.twig?


टेम्प्लेट में जिस फ़ील्ड का आप उपयोग करना चाहते हैं, उससे मूल्य निकालने के लिए हुक_परप्रोसेसर_नोड का उपयोग करें।

@ इवानराज, मैंने अब सवाल अपडेट किया है।
टेलर टैफ

जवाबों:


15

चूंकि आपने .theme फ़ाइल के माध्यम से नोड शीर्षक को एक चर के रूप में पारित करने के बारे में पूछा था, आप कुछ ऐसा करने के लिए template_preprocess_field का उपयोग कर सकते हैं :

  function themename_preprocess_field(&$variables, $hook) {
    if ($variables['element']['#field_name'] == 'field_example') {
      $variables['node_title'] = $variables['element']['#object']->getTitle();
    }
  }

तो field--field-example.html.twigआप में आप बस {{node_title}}नोड शीर्षक प्रदान करने के लिए उपयोग कर सकते हैं ।

नीचे 4k4 का उत्तर भी देखें।


मैंने आपके उत्तर को संपादित करने की कोशिश की 4k4 द्वारा प्रदान किए गए एक को शामिल करने के लिए क्योंकि यह सही है लेकिन मेरे संपादन को अस्वीकार कर दिया गया क्योंकि इसे प्रासंगिक नहीं माना गया था ...
टेलर टैफ

@TaylorTaff कौन संपादन को मंजूरी देता है? मैंने इसे कभी नहीं देखा। नीचे उत्तर शामिल करने के लिए संपादित करने का प्रयास करेंगे।
Janey

@Jeyey काफी बैज वाले कई उपयोगकर्ता इस तरह के संपादन की समीक्षा कर सकते हैं। मैंने आपके उत्तरों को भविष्य की समीक्षा के लिए बुकमार्क कर लिया है। एक और सवाल: क्या आप लोगों को यकीन है कि $variables['element']['#object']->getTitle();इसमें कैटबेक है preprocess_field? क्योंकि यह वास्तव में यहाँ पर मेरे सवाल का जवाब देगा: drupal.stackexchange.com/questions/197497/…
nilsun

11

फ़ील्ड टेम्पलेट के चर में एक नोड ऑब्जेक्ट उपलब्ध है, इसलिए आपको प्रीप्रोसेस फ़ंक्शन की आवश्यकता नहीं है।

फ़ील्ड टेम्पलेट में नोड से शीर्षक प्राप्त करने के लिए:

{{ element['#object'].label }}

यह प्रश्न का उत्तर देता है लेकिन जैसा कि जने द्वारा किया गया अन्य उत्तर अधिक उपयोगी होगा, मैंने इसे उस उत्तर में जोड़ दिया और स्वीकार कर लिया।
टेलर टैफ

1
लेकिन आपका प्रश्न गलत धारणा के तहत था: "लेकिन नोड शीर्षक चर तक पहुंचने में असमर्थ हूं क्योंकि यह फ़ील्ड टेम्पलेट में उपलब्ध नहीं है।"
4k4

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