2011-07-12 63 views
1

我想在我的「主鏈接」菜單中輸出內置的Drupal「搜索」塊,它由template.php中的主題函數framework_primary_links()構建。菜單最終應該看起來像StackOverflow菜單:[chat | meta |關於| faq | __search__],因此「搜索」字段位於菜單<ul>本身內。如何以編程方式構建,主題並顯示Drupal塊?

所以,我不只是在正常的區域內打印搜索塊。

目前我正在做:

$search_block = (object) module_invoke('search', 'block', 'view', 0); 
$output .= '<li id="searchContainer">' . theme('block', $search_block) . '</li>'; 

但Drupal是採用「block.tpl.php」模板而不是「塊search.tpl.php」模板像我想它。

如何讓Drupal將「block-search.tpl.php」模板文件應用於我的編程渲染塊?

+0

這屬於http://drupal.stackexchange.com/ –

回答

0

我找到了一個解決方案—手動設置塊對象上的「模塊」和「增量」:

$search_block = (object) module_invoke('search', 'block', 'view', 0); 
$search_block->module = 'search'; 
$search_block->delta = 0; 
$output .= '<li id="searchContainer">' . theme('block', $search_block) . '</li>'; 
2

drupal_get_form('search_block_form')將返回爲核心的搜索形式的標記,它會通過搜索塊的形式已經走了模板,以便您可以更改您的代碼:

<?php 
$output .= '<li id="searchContainer">' . drupal_get_form('search_block_form') . '</li>'; 
相關問題