Wie kann ich programmgesteuert ein Suchfeld (Suchblock) in mein Design einfügen?
27
Je nach Tag suchen Sie nach einer D7-Lösung. Die Drupal 7 page.tpl.php hat nicht mehr die Variable $ search_box. Sie können es jedoch in einer Vorverarbeitungsfunktion in Ihrer template.php hinzufügen:
<?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;
}
Dann müssen Sie nur noch die Variable in Ihrer page.tpl.php ausdrucken:
<?php print $search_box; ?>
Sie könnten auch module_invoke verwenden, aber Sie sollten keine PHP-Logik in den Vorlagendateien haben:
<?php
$block = module_invoke('search', 'block_view', 'search');
print render($block);
?>
Mach es stattdessen richtig und benutze den Block.
Hardcoding-Elemente innerhalb der page.tpl, ist meiner Meinung nach eines der Dinge, die noch seit den "guten alten Tagen" herumschweben.
Verwenden Sie stattdessen das Blocksystem. Es gibt Ihnen viel mehr Flexibilität auf der Straße. Möglicherweise möchten Sie auch das Blockify- Modul auschecken .
quelle
Sie können die
$search_box
Variable verwenden, die für die Datei page.tpl.php verfügbar ist .quelle
Sie können auch das Blocksystem verwenden und den Suchformularblock zur Seite in hinzufügen
Admin> Struktur> Blöcke: Suchformular
Um zB in das Navigationsmenü zu gelangen, setzen Sie den Block in die Region
"Navigation"
und dann mit CSS ausrichten.
zB um rechts vom Navigationsmenü zu setzen:
quelle