Jawaban:
Menurut tag Anda, Anda mencari solusi D7. The Drupal 7 page.tpl.php tidak memiliki variabel search_box $ lagi. Namun Anda dapat menambahkannya dalam fungsi preproses di template.php Anda:
<?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;
}
Maka Anda hanya perlu mencetak variabel di page.tpl.php Anda:
<?php print $search_box; ?>
Anda juga bisa menggunakan module_invoke, tetapi Anda seharusnya tidak memiliki logika php dalam file templat:
<?php
$block = module_invoke('search', 'block_view', 'search');
print render($block);
?>
Sebaliknya, lakukan dengan cara yang benar dan gunakan blok.
Elemen hardcoding di dalam page.tpl, adalah IMHO salah satu hal yang masih mengambang sejak "masa lalu yang indah."
Gunakan sistem blok sebagai gantinya; itu memberi Anda jauh lebih banyak fleksibilitas di ujung jalan. Anda mungkin juga ingin memeriksa modul Blockify .
Modul ini memperlihatkan sejumlah elemen Drupal inti sebagai blok.
Anda dapat menggunakan $search_box
variabel yang tersedia untuk file page.tpl.php .
Anda juga dapat menggunakan sistem blok dan menambahkan blok formulir pencarian ke halaman di
Admin> Struktur> Blok: Formulir pencarian
mis. untuk menempatkan di menu navigasi, letakkan blok di wilayah tersebut
"Navigasi"
lalu sejajarkan dengan CSS.
mis. untuk meletakkan di sebelah kanan menu navigasi:
#navigation #block-search-form{
position: absolute;
right: 10px;
top: 0;
}