Câu trả lời:
Theo thẻ của bạn, bạn đang tìm kiếm một giải pháp D7. Các Drupal 7 page.tpl.php không có search_box biến $ nữa. Tuy nhiên, bạn có thể thêm nó trong một hàm tiền xử lý trong 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;
}
Sau đó, bạn chỉ cần in biến trong page.tpl.php của bạn:
<?php print $search_box; ?>
Bạn cũng có thể sử dụng module_invoke, nhưng bạn không nên có logic php trong các tệp mẫu:
<?php
$block = module_invoke('search', 'block_view', 'search');
print render($block);
?>
Làm điều đó đúng cách thay vào đó và sử dụng khối.
Các yếu tố mã hóa bên trong page.tpl, là IMHO một trong những điều vẫn còn nổi xung quanh kể từ "ngày xưa tốt đẹp".
Sử dụng hệ thống khối thay thế; nó cho phép bạn linh hoạt hơn nữa trên đường. Bạn cũng có thể muốn kiểm tra mô-đun Blockify .
Mô-đun này cho thấy một số yếu tố Drupal cốt lõi là các khối.
Bạn có thể sử dụng $search_box
biến có sẵn cho tệp page.tpl.php .
Bạn cũng có thể sử dụng hệ thống khối và thêm khối biểu mẫu tìm kiếm vào trang trong
Quản trị> Cấu trúc> Khối: Biểu mẫu tìm kiếm
ví dụ: để đặt trong menu điều hướng, đặt khối trong khu vực
"Dẫn đường"
và sau đó căn chỉnh với CSS.
ví dụ: để đặt bên phải menu điều hướng:
#navigation #block-search-form{
position: absolute;
right: 10px;
top: 0;
}