ビューで、公開されたフィルターを追加しました:検索:検索用語フィルター
正常に機能しますが、検索結果のキーワードを強調表示したいと思います。
どうすればできますか?
ページ上のWordのすべてのインスタンスにクラスを検索して追加する highlight のようなものを使用できます。静的なWordをフィードする代わりに、検索ボックスのコンテンツを使用します。
StackOverflowの質問 WordをjQueryで強調表示 で、詳細情報と他のバージョンへのリンクを見つけることができます。
search_excerpt 関数を使用すると、検索したキーワードを強調表示できます。キーワードを太字で示しています。
特定のキーワードが強調表示されたテキストの断片からスニペットを返します。検索結果のフォーマットに使用されます。
以下に例を示します。
例://ここに本文フィールドが公開されます
ビューのtplファイルに次のコードを追加します
<?php foreach ($rows as $id => $row):
$keys = $_GET['body_value'];
$row = search_excerpt($keys, $row);
?>
検索された単語が強調表示されます。下のスクリーンショットを参照してください
http://drupal.org/project/search_api および http://drupal.org/project/search_api_solr を使用してApache Solrでビューを使用している場合
Wordの強調表示を有効にすることができます。
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フィールドの例。カスタムモジュールに。