Como posso inserir caixa de pesquisa (bloco de pesquisa) no meu tema programaticamente?
27
De acordo com a sua etiqueta, você está procurando uma solução D7. O Drupal 7 page.tpl.php não possui mais a variável $ search_box. No entanto, você pode adicioná-lo em uma função de pré-processo no seu 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;
}
Então você só precisa imprimir a variável em seu page.tpl.php:
<?php print $search_box; ?>
Você também pode usar module_invoke, mas não deve ter lógica php nos arquivos de modelo:
<?php
$block = module_invoke('search', 'block_view', 'search');
print render($block);
?>
Faça da maneira certa e use o bloco.
A codificação dos elementos dentro do page.tpl é IMHO uma das coisas que ainda flutuam desde os "bons velhos tempos".
Use o sistema de blocos; Isso lhe dá mais flexibilidade ainda mais adiante. Você também pode querer verificar o módulo Blockify .
fonte
Você pode usar a
$search_box
variável disponível para o arquivo page.tpl.php .fonte
Você também pode usar o sistema de blocos e adicionar o bloco de formulário de pesquisa à página em
Admin> Estrutura> Blocos: formulário de pesquisa
por exemplo, para colocar no menu de navegação, coloque o bloco na região
"Navegação"
e depois alinhe com CSS.
por exemplo, para colocar no menu de navegação à direita:
fonte