Respuestas:
Según su etiqueta, está buscando una solución D7. El Drupal 7 page.tpl.php ya no tiene la variable $ search_box. Sin embargo, puede agregarlo en una función de preproceso en su 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;
}
Entonces solo necesita imprimir la variable en su page.tpl.php:
<?php print $search_box; ?>
También podría usar module_invoke, pero no debería tener lógica php en archivos de plantilla:
<?php
$block = module_invoke('search', 'block_view', 'search');
print render($block);
?>
Hazlo de la manera correcta y usa el bloque.
Elementos de codificación dentro de page.tpl, en mi humilde opinión, es una de las cosas que todavía flota desde los "buenos viejos tiempos".
Utilice el sistema de bloques en su lugar; te da más flexibilidad más adelante. También puede consultar el módulo Blockify .
Este módulo expone una serie de elementos centrales de Drupal como bloques.
Puede usar la $search_box
variable que está disponible para el archivo page.tpl.php .
También puede usar el sistema de bloques y agregar el bloque del formulario de búsqueda a la página en
Admin> Estructura> Bloques: formulario de búsqueda
Por ejemplo, para colocar en el menú de navegación, poner el bloque en la región
"Navegación"
y luego alinear con CSS.
Por ejemplo, para poner a la derecha del menú de navegación:
#navigation #block-search-form{
position: absolute;
right: 10px;
top: 0;
}