web-gelistirme-sc.com

Page.tpl dosyasına nasıl arama kutusu ekleyebilirim?

Temama arama kutusunu (arama bloğu) programlı olarak nasıl ekleyebilirim?

27
Nick.h

Etiketinize göre, bir D7 çözümü arıyorsunuz. Drupal 7 page.tpl.php artık $ search_box değişkenine sahip değil. Ancak bunu template.php dosyasındaki bir önişleme işlevine ekleyebilirsiniz:

<?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;
}

Ardından değişkeni sayfanızda yazdırmanız yeterlidir. Tpl.php:

<?php print $search_box; ?>

Ayrıca module_invoke kullanabilirsiniz, ancak şablon dosyalarında php mantığı olmamalıdır:

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

Bunun yerine doğru yolu yapın ve bloğu kullanın.
Page.tpl içindeki sabit kodlama öğeleri, IMHO'nun "eski güzel günlerden" beri hala yüzen şeylerden biri.

Bunun yerine blok sistemini kullanın; size yolda daha fazla esneklik sağlar. Ayrıca Blockify modülüne de bakmak isteyebilirsiniz.

Bu modül bir dizi çekirdek Drupal elemanı blok olarak gösterir.

7
mortendk

$search_box değişkeni page.tpl.php dosyası için kullanılabilir.

2
Nikola Kotur

Ayrıca blok sistemini kullanabilir ve arama formu bloğunu

Yönetici> Yapı> Bloklar: Arama form

örneğin navigasyon menüsüne yerleştirmek için bloğu bölgeye yerleştirin

"Navigasyon"

ve sonra CSS ile hizalayın.

örneğin navigasyon menüsünün sağına koymak için:

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