2010-02-12 130 views
0

我想复制的默认的搜索框,并把它放在我的左侧边栏的一些块之间:所以它会在每个页面上出现两次(上它已经是和左边中间边栏)。Drupal:重复搜索块?

有一种简单的方法来复制它,然后确保这些ID的arent重复?

回答

6

加挡用PHP过滤器:

print drupal_get_form('search_block_form'); 


或打印它在page.tpl.php中,例如,从禅宗主题:

<?php if ($search_box): ?> 
    <div id="search-box"> 
    <?php print $search_box; ?> 
    </div> <!-- /#search-box --> 
<?php endif; ?> 
+0

如果我已经有'echo $ left;'生成的现有块,我将如何实现这一点?如前所述,我希望它在块之间。据我所知,我不能在服务器端嵌入块。 – 2010-02-12 05:47:10

+0

创建(添加)新块!并插入代码... – Nikit 2010-02-12 06:06:59

+0

好吧,它似乎并没有生成它,因为它可能没有定义在那个时间点。 – 2010-02-12 09:36:31

-1

编辑模块的模块/搜索/ search.module的funcion search_block。 只需添加你想要尽可能多的搜索块: 代替:

​​

我认为这会工作:

function search_block($op = 'list', $delta = 0) { 
    if ($op == 'list') { 
    $blocks[0]['info'] = t('Search form'); 
    // Not worth caching. 
    $blocks[0]['cache'] = BLOCK_NO_CACHE; 
    $blocks[1]['info'] = t('Search form'); 
    $blocks[1]['cache'] = BLOCK_NO_CACHE; 
    return $blocks; 
    } 
    else if ($op == 'view' && user_access('search content')) { 
    $block['content'] = drupal_get_form('search_block_form'); 
    $block['subject'] = t('Search'); 
    return $block; 
    } 
} 
+2

从不编辑模块,使用钩子,主题等......如果没有办法解决,请上传到drupal.org补丁 - 这是建议的,但不是在当前的问题。 – Nikit 2010-02-12 03:40:32

0

我不得不为另一个模块使用它并启用它。

+0

这是什么模块? – 2015-10-20 16:59:15

3

为Drupal 7,使用方法:

<?php print render(drupal_get_form('search_block_form')); ?> 
0

这种方法是不是很安全,但速度非常快

  • 接通 “PHP过滤器” 上的 “所有模块” 页面
  • 在管理面板中创建块。
  • 插入正文模块。

    $ form_search = drupal_get_form( 'search_block_form');
    print render($ form_search);

更正确的方法:

1)中的template.php

<?php 
function MYTHEME_preprocess_page(&$vars){ 
    $search_form = drupal_get_form('search_form'); 
    $search_form_box = drupal_render($search_form); 
    $vars['search_box'] = $search_form_box; 
} ?> 

2)编辑page.tpl在你的主题初始化的变量。添加:

<?php if ($search_box): ?> 
    <div id="search-box"> 
    <?php print $search_box; ?> 
    </div> <!-- /#search-box --> 
<?php endif; ?>