web-dev-qa-db-ja.com

公開されたフィルタービューを使用して検索キーワードを強調表示しますか?

ビューで、公開されたフィルターを追加しました:検索:検索用語フィルター

正常に機能しますが、検索結果のキーワードを強調表示したいと思います。

どうすればできますか?

12
chefnelone

ページ上のWordのすべてのインスタンスにクラスを検索して追加する highlight のようなものを使用できます。静的なWordをフィードする代わりに、検索ボックスのコンテンツを使用します。

StackOverflowの質問 WordをjQueryで強調表示 で、詳細情報と他のバージョンへのリンクを見つけることができます。

7
beth

search_excerpt 関数を使用すると、検索したキーワードを強調表示できます。キーワードを太字で示しています。

特定のキーワードが強調表示されたテキストの断片からスニペットを返します。検索結果のフォーマットに使用されます。

以下に例を示します。

例://ここに本文フィールドが公開されます

ビューのtplファイルに次のコードを追加します

 <?php foreach ($rows as $id => $row): 

      $keys = $_GET['body_value'];
      $row = search_excerpt($keys, $row);
 ?>

検索された単語が強調表示されます。下のスクリーンショットを参照してください

enter image description here

11
Anoop Joseph

http://drupal.org/project/search_api および http://drupal.org/project/search_api_solr を使用してApache Solrでビューを使用している場合

Wordの強調表示を有効にすることができます。

1
gmclelland
function custom_views_pre_render(&$view) {
  if ($view->name == 'article') {
    $result = $view->result;
    foreach ($result as $i => $row) {
      $body = $view->result[$i]->field_body[0]['rendered']['#markup'];
      $strong = $view->exposed_data['body_value'];
      $view->result[$i]->field_body[0]['rendered']['#markup'] = str_replace($strong, '<strong>' . $strong . '</strong>', $body);
    }
  }
}

bodyフィールドの例。カスタムモジュールに。

0