3

Drupal のファセット検索モジュールは、新しいファセット検索環境 (現在の検索、ガイド付き検索、関連など) ごとに一連のブロックを作成します。

書籍などのファセット検索環境を作成する場合は、ベース パス browse/books開始ページを として設定できますbrowse/books/results。ファセット検索ブロックを表示するには、ブロックのページ固有の表示設定を「リストされたページのみに表示」として設定し、実際のページを次のように設定します。

browse/books
browse/books/results*

質問: 別のランディング ページで「ガイド付き検索」ブロックを再利用したいと考えています。ランディング ページには、使用可能な検索用語のリスト ( sidebar-left) が表示され、ページの残りの部分が表示されます。

これまでのところ、「リストされたページのみに表示」のリストに別のパスを追加するだけでは何の効果もありません。

4

3 に答える 3

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 によって生成されたリンクは、予想どおり、実際のファセット検索環境パスにリンクします。

于 2010-12-09T21:37:04.673 に答える
1

そこに到達する方法の 1 つは、新しいカスタム ブロックを追加してから、以下を使用して実際のブロックを表示しようとすることです。

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

はファセットxxxxx検索環境の ID です (例: ) 1_guided。問題は、見ているだけでfunction faceted_search_ui_block(...)はこれまでのところしか得られないことです。ブロックは、環境が正しい状態にある場合にのみレンダリングされます。関連付けられたパスで実行されている既知のファセット検索環境でない限り、そうではありません。

だから、それが可能であるようには見えません。

于 2010-12-08T21:05:36.213 に答える
0

うーん。これが私が探していたものかどうかはわかりません-

これが私が今使っているものです。それがまさにあなたが探しているものかどうかはわかりませんが、該当するページでファセットをレンダリングできます。(ファセットは表示されるはずです)

私にとっては、ビューによる検索結果です。

すべての検索ファセットを 1 つのブロックにまとめて、ブロックをレンダリングしています。

<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>

ブロックが表示される場所を制御するだけです。起動後にリンクをフォローアップします。

于 2014-04-27T17:06:42.287 に答える