मैं शरीर को बंद करने के टैग से ठीक पहले HTML कैसे डालूं?


8

मैं बॉडी टैग बंद करने से पहले एक पृष्ठ में मनमाने ढंग से HTML सामग्री डालने का सबसे अच्छा तरीका ढूंढ रहा हूं, इसी तरह से drupal_add_js()एक पृष्ठ के नीचे जावास्क्रिप्ट जोड़ता है।

मैं एक Wordpress बैकग्राउंड से आ रहा हूं, और Wordpress में यह wp_footer()हुक का उपयोग करके पूरा किया जा सकता है ।

मैंने उपयोग करने पर ध्यान दिया है hook_page_alter(), लेकिन मैं सोच रहा था कि क्या यह ऐसा करने का सही तरीका है या यदि इस कार्य को पूरा करने का एक बेहतर तरीका है।


1
इसी तरह के प्रश्न हर एक और बाद में पॉप अप करते हैं, और मुझे हमेशा आश्चर्य होता है कि , "बॉडी टैग से ठीक पहले HTML सम्मिलित करना आवश्यक है"। यह मुझे ऐसा लगता है जैसे आप जो कुछ भी गलत तरीके से कर रहे हैं उससे संपर्क कर रहे हैं?
१ion:३३ बजे ion लेटेरियन

1
मैं यह नहीं बोल सकता कि अन्य लोग ऐसा क्यों करना चाहते हैं, लेकिन मेरे मामले में मैं उन ब्लॉक के लिए पृष्ठ पर अंडरस्कोर जेएस टेम्पलेट जोड़ रहा हूं जिनकी उन्हें आवश्यकता है। हालाँकि, कई ब्लॉक एक टेम्पलेट का उपयोग कर सकते हैं इसलिए मैं सभी टेम्प्लेट को पेज के नीचे जोड़ना चाहता था ताकि मैं आसानी से देख सकूं कि वे लोड किए गए हैं या नहीं। मेरे लिए यह मूल रूप से एक सौंदर्यशास्त्र / सुविधा की चीज है।
drebabels

क्षमा करें यदि मैं धीमा हो रहा हूं, लेकिन इससे मुझे कोई मतलब नहीं है? #Attached के कैश / एकत्रीकरण / आदि लाभों के साथ , जिसका उपयोग रूपों से अधिक पर किया जा सकता है, मुझे अभी भी समझ में नहीं आता कि क्यों।
सुस्ती

मुझे # सट्टा की बहुमुखी प्रतिभा के बारे में पता नहीं था, इसलिए मुझे इसे पेश करने के लिए धन्यवाद। हालाँकि मेरे मामले में मैं उन टेम्प्लेट फ़ाइलों की सामग्री को पेज पर लिख रहा हूं (न कि केवल फाइलों को लिंक करने के लिए), इसलिए मुझे गलत होने पर सही करें लेकिन मुझे नहीं लगता कि इस मामले में #attached मामले के कैश / एकत्रीकरण लाभ हैं क्योंकि वास्तविक पृष्ठ कैशिंग इसका ध्यान रखेगा।
drebabels

जवाबों:


23

के बराबर hook_footer () कि Drupal 6 में इस्तेमाल किया गया था लागू करने के लिए है hook_page_build () , और की सामग्री को बदलने $page['page_bottom']के लिए, निम्न के समान कोड का उपयोग कर:

function mymodule_page_build(&$page) {
  $page['page_bottom']['devel'] = array(
    '#weight' => 25, 
    '#markup' => '<div style="clear:both;">' . devel_query_table() . '</div>',
  );
}

निम्नलिखित कोड का उपयोग करके html.tpl.php$page['page_bottom'] से आउटपुट की सामग्री है :

  <?php print $page_top; ?>
  <?php print $page; ?>
  <?php print $page_bottom; ?>
</body>
</html>

निम्न कोड का उपयोग करके template_process_html ()$page_bottom से मूल्य का आरंभ किया जाता है :

  // Render page_top and page_bottom into top level variables.
  $variables['page_top'] = drupal_render($variables['page']['page_top']);
  $variables['page_bottom'] = drupal_render($variables['page']['page_bottom']);
  // Place the rendered HTML for the page body into a top level variable.
  $variables['page'] = $variables['page']['#children'];
  $variables['page_bottom'] .= drupal_get_js('footer');

के बीच अंतर hook_page_alter () और hook_page_build()वह यह है कि hook_page_alter()के बाद मार डाला जाता है hook_page_build()और परिवर्तन करने के लिए इस्तेमाल किया जाना चाहिए, या जब सामग्री निकालें, एक और मॉड्यूल से जोड़ा hook_page_build()पेज पर नई सामग्री जोड़ने के लिए इस्तेमाल किया जाना चाहिए।


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