Drupal:重新使用分面搜索块

时间:2010-12-08 19:04:44

标签: drupal drupal-6 faceted-search

Drupal中的分面搜索模块为每个新的分面搜索环境创建一组块(当前搜索,引导搜索,相关等)。

如果您要为例如创建分面搜索环境您可以使用基本路径 browse/books起始页将其设置为browse/books/results。要显示分面搜索块,您可以将块的页面特定可见性设置设置为“仅在列出的页面上显示”,将实际页面设置为

browse/books
browse/books/results*

问题:我想在不同的目标网页上重复使用“引导式搜索”功能块。着陆页应显示可用搜索字词列表(sidebar-left),并在页面的其余部分显示视图。

到目前为止,只是在“仅在列出的页面上显示”列表中添加不同的路径无效。

3 个答案:

答案 0 :(得分:1)

几乎到达那里的一种方法是添加一个新的自定义块,然后尝试使用以下内容显示实际块:

<?php
   $block = module_invoke('faceted_search_ui', 'block', 'view', 'xxxxx');
   print $block['content'];
?>

其中xxxxx是分面搜索环境的ID,例如1_guided。问题是看function faceted_search_ui_block(...)只会让你到目前为止。只有在环境处于正确状态时才会呈现该块,除非它是一个假定在相关路径下运行的已知分面搜索环境,否则它不会。

所以,看起来不可能。

答案 1 :(得分:1)

Drupal退伍军人可能会提供更好,更清洁,更正确的解决方案,但以下内容对我有用:

我添加了一个运行以下PHP的新块:

$env = faceted_search_env_load ( $fs_env_id );
if (!$env->ready()) 
{
    $env->prepare();
    $env->execute();
}
faceted_search_ui_add_css();
$env->ui_state['stage'] = 'results';
print faceted_search_ui_guided_block($env);

$fs_env_id取决于您的设置。 API生成的链接将按预期链接到实际的分面搜索环境路径。

答案 2 :(得分:0)

嗯。我不确定这是否是我要找的 -

这是我现在正在使用的内容。我不知道它是否正是您所寻找的,但您可以在任何适用的页面上呈现构面。 (小平面应该显示)

对我来说,这是通过视图搜索结果。

我正在渲染一个块,我的所有搜索方面都在一个块中。

<div class="xfacet">
Something here
<?php
$block = module_invoke('facetapi', 'block_view', 'xxxx');
print render($block['content']);
?>
</div>
<div class="xfacet">
Something there
<?php
$block = module_invoke('facetapi', 'block_view', 'xxxx');
print render($block['content']);
?>
</div>

我只是控制了块显示的位置。我会在启动后跟进一个链接。