Drupal:重复搜索块?

时间:2010-02-12 02:46:58

标签: php drupal

我想复制默认搜索框并将其放在左侧边栏上的某些块之间:因此它会在每个页面上显示两次(顶部已经存在并位于左侧中间栏上)。

是否有一种简单的方法可以克隆它,然后确保ID不重复?

4 个答案:

答案 0 :(得分:6)

使用php过滤器添加块:

print drupal_get_form('search_block_form');


或在page.tpl.php中打印,例如Zen主题:

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

答案 1 :(得分:3)

对于Drupal 7,请使用:

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

答案 2 :(得分:0)

我必须使用另一个模块并启用它。

答案 3 :(得分:-1)

编辑模块模块/ search / search.module功能搜索块。 只需添加你想要的搜索块: 代替:

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;
    return $blocks;
  }
  else if ($op == 'view' && user_access('search content')) {
    $block['content'] = drupal_get_form('search_block_form');
    $block['subject'] = t('Search');
    return $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;
  }
}