Как я могу вставить окно поиска в page.tpl?

Как я могу автоматически вставить окно поиска (поисковый блок) в свою тему?

27 голосов | спросил Nick.h 31 AM000000110000003631 2011, 11:12:36

4 ответа


39

Согласно вашему тегу, вы ищете решение D7. Drupal 7 page.tpl.php не имеет переменной $ search_box. Однако вы можете добавить его в функцию препроцесса в файле template.php:

  & л;? PHP
/*
 * Preprocess page.tpl.php, чтобы ввести переменную $ search_box обратно в D7.
 * /
функция MYTHEME_preprocess_page (& amp; $ variables) {
  $ search_box = drupal_render (drupal_get_form ('search_form'));
  $ variables ['search_box'] = $ search_box;
}
 

Затем вам просто нужно напечатать переменную в вашем page.tpl.php:

  & lt;? php print $ search_box; ? & GT;
 

Вы также можете использовать module_invoke, но вы не должны иметь php-логику в файлах шаблонов:

  & л;? PHP
  $ block = module_invoke ('поиск', 'block_view', 'search');
  print render ($ block);
? & GT;
 
ответил ipwa 31 PM000000120000002631 2011, 12:11:26
7

Сделайте это правильно и используйте блок.
Элементы жесткого кодирования внутри page.tpl - это ИМХО, одна из вещей, которые все еще всплывают со времен «старых добрых дней».

Используйте блок-систему; это дает вам больше гибкости в будущем. Вы также можете проверить модуль Blockify .

  

Этот модуль предоставляет несколько базовых элементов Drupal в виде блоков.

ответил mortendk 31 PM00000010000002731 2011, 13:43:27
2

Вы можете использовать переменную $ search_box , которая доступна для page.tpl.php .

ответил Nikola Kotur 31 AM000000110000004831 2011, 11:43:48
1

Вы также можете использовать систему блоков и добавить блок формы поиска на страницу в

Admin> Структура> Блоки: форма поиска

например, чтобы разместить в навигационном меню, поместите блок в область

"Навигация"

, а затем совместим с CSS.

например, чтобы вставить вправо меню навигации:

  #navigation # block-search-form {
  позиция: абсолютная;
  право: 10 пикселей;
  top: 0;
}
 
ответил David Thomas 3 Jam1000000amFri, 03 Jan 2014 08:54:47 +040014 2014, 08:54:47

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132