it-swarm.com.de

Wie kann ich ein Suchfeld in page.tpl einfügen?

Wie kann ich ein Suchfeld (Suchblock) programmgesteuert in mein Thema einfügen?

27
Nick.h

Entsprechend Ihrem Tag suchen Sie nach einer D7-Lösung. Das Drupal 7 page.tpl.php hat die Variable $ search_box nicht mehr. 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 drucken:

<?php print $search_box; ?>

Sie könnten auch module_invoke verwenden, aber Sie sollten keine PHP-Logik in Vorlagendateien haben:

<?php
  $block = module_invoke('search', 'block_view', 'search');
  print render($block); 
?>
39
ipwa

Mach es stattdessen richtig und benutze den Block.
Das Hardcodieren von Elementen in page.tpl ist meiner Meinung nach eines der Dinge, die seit den "guten alten Zeiten" immer noch im Umlauf sind.

Verwenden Sie stattdessen das Blocksystem. Es gibt Ihnen viel mehr Flexibilität auf der Straße. Möglicherweise möchten Sie auch das Modul Blockify überprüfen.

Dieses Modul macht eine Reihe von Core Drupal -Elementen als Blöcke verfügbar.

7
mortendk

Du kannst den ... benutzen $search_box Variable, die für die Datei page.tpl.php verfügbar ist.

2
Nikola Kotur

Sie können auch das Blocksystem verwenden und den Suchformularblock zur Seite in hinzufügen

Admin> Struktur> Blöcke: Suchformular

um beispielsweise im Navigationsmenü zu platzieren, platzieren Sie den Block in der Region

"Navigation"

und dann mit CSS ausrichten.

z. B. um rechts neben das Navigationsmenü zu setzen:

#navigation #block-search-form{
  position: absolute;
  right: 10px;
  top: 0;
}
1
David Thomas