Відповіді:
Відповідно до вашого тегу, ви шукаєте рішення D7. Drupal 7 page.tpl.php не має змінну search_box $ більше. Однак ви можете додати його у функцію попередньої обробки у template.php:
<?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;
}
Тоді вам просто потрібно буде надрукувати змінну на своїй сторінці.tpl.php:
<?php print $search_box; ?>
Ви також можете використовувати module_invoke, але у файлах шаблонів не повинно бути логіки php:
<?php
$block = module_invoke('search', 'block_view', 'search');
print render($block);
?>
Зробіть це правильно, а замість цього використовуйте блок.
Елементи жорсткого кодування всередині page.tpl - це IMHO - одна з речей, яка все ще пливе навколо ще з "старих добрих часів".
Замість цього використовуйте систему блоків; це дає вам більше гнучкості далі вниз по дорозі. Ви також можете перевірити модуль Blockify .
Цей модуль розкриває ряд основних елементів Drupal як блоки.
Ви можете використовувати $search_box
змінну, доступну для файлу page.tpl.php .
Ви також можете використовувати систему блоку та додати блок форми пошуку на сторінку в
Адміністратор> Структура> Блоки: Форма пошуку
наприклад, щоб розмістити в навігаційному меню, поставте блок у регіоні
"Навігація"
а потім вирівняйте CSS.
наприклад, щоб ввести право навігаційне меню:
#navigation #block-search-form{
position: absolute;
right: 10px;
top: 0;
}