Risposte:
Secondo il tuo tag, stai cercando una soluzione D7. Il page.tpl.php Drupal 7 non ha più la variabile $ search_box. Tuttavia puoi aggiungerlo in una funzione di preelaborazione nel tuo 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;
}
Quindi devi solo stampare la variabile nel tuo page.tpl.php:
<?php print $search_box; ?>
Puoi anche usare module_invoke, ma non dovresti avere la logica php nei file template:
<?php
$block = module_invoke('search', 'block_view', 'search');
print render($block);
?>
Fallo nel modo giusto invece e usa il blocco.
Elementi hardcoding all'interno di page.tpl, IMHO è una delle cose che galleggia ancora dai "bei vecchi tempi".
Utilizzare invece il sistema a blocchi; ti dà molta più flessibilità lungo la strada. Potresti anche voler dare un'occhiata al modulo Blockify .
Questo modulo espone un numero di elementi Drupal core come blocchi.
È possibile utilizzare la $search_box
variabile disponibile per il file page.tpl.php .
È inoltre possibile utilizzare il sistema a blocchi e aggiungere il blocco del modulo di ricerca alla pagina in
Ammin.> Struttura> Blocchi: modulo di ricerca
ad es. per posizionarlo nel menu di navigazione, posizionare il blocco nella regione
"Navigazione"
e quindi allineare con CSS.
ad es. per mettere a destra del menu di navigazione:
#navigation #block-search-form{
position: absolute;
right: 10px;
top: 0;
}