जवाबों:
अपने टैग के अनुसार, आप एक D7 समाधान की तलाश कर रहे हैं। Drupal 7 page.tpl.php $ search_box चर अब और नहीं है। हालाँकि आप इसे अपने टेम्पलेट में प्रीप्रोसेस फ़ंक्शन में जोड़ सकते हैं।
<?php
/*
* Preprocess page.tpl.php to inject the $search_box variable back into D7.
*/
function MYTHEME_preprocess_page(&$variables){
$search_box = drupal_render(drupal_get_form('search_form'));
$variables['search_box'] = $search_box;
}
फिर आपको बस अपने page.tpl.php में वैरिएबल प्रिंट करना होगा:
<?php print $search_box; ?>
आप मॉड्यूल_invoke का भी उपयोग कर सकते हैं, लेकिन आपको टेम्पलेट फ़ाइलों में php तर्क नहीं होना चाहिए:
<?php
$block = module_invoke('search', 'block_view', 'search');
print render($block);
?>
इसके बजाय इसे सही तरीके से करें और ब्लॉक का उपयोग करें।
Page.tpl के अंदर हार्डकोडिंग तत्व, IMHO चीजों में से एक है जो अभी भी "अच्छे पुराने दिनों" के बाद से चारों ओर तैरता है।
इसके बजाय ब्लॉक सिस्टम का उपयोग करें; यह आपको सड़क के और लचीलेपन का रास्ता देता है। आप चाहें तो Blockify मॉड्यूल को भी देख सकते हैं ।
यह मॉड्यूल कई मुख्य Drupal तत्वों को ब्लॉक के रूप में उजागर करता है।
आप पृष्ठ .pl.php फ़ाइल के $search_box
लिए उपलब्ध चर का उपयोग कर सकते हैं ।
आप ब्लॉक सिस्टम का भी उपयोग कर सकते हैं और पेज में सर्च फॉर्म ब्लॉक को जोड़ सकते हैं
व्यवस्थापक> संरचना> ब्लॉक: खोज फ़ॉर्म
नेविगेशन मेनू में जगह के लिए, ब्लॉक को क्षेत्र में रखें
"पथ प्रदर्शन"
और फिर CSS के साथ संरेखित करें।
नेविगेशन मेनू के अधिकार में रखना पसंद है:
#navigation #block-search-form{
position: absolute;
right: 10px;
top: 0;
}