In einer Ansicht habe ich einen exponierten Filter hinzugefügt: Suche: Suchbegriffsfilter
Es funktioniert einwandfrei, aber ich möchte das gesuchte Schlüsselwort in den Ergebnissen hervorheben.
Wie kann ich es tun?
In einer Ansicht habe ich einen exponierten Filter hinzugefügt: Suche: Suchbegriffsfilter
Es funktioniert einwandfrei, aber ich möchte das gesuchte Schlüsselwort in den Ergebnissen hervorheben.
Wie kann ich es tun?
Antworten:
Sie könnten so etwas wie Hervorheben verwenden , um eine Klasse zu allen Instanzen eines Wortes auf der Seite zu finden und hinzuzufügen. Anstatt ein statisches Wort einzugeben, würden Sie den Inhalt des Suchfelds verwenden.
Weitere Informationen und Links zu anderen Versionen finden Sie in der Frage StackOverflow. Markieren Sie ein Wort mit jQuery .
Mit der Funktion search_excerpt können Sie das gesuchte Schlüsselwort markieren. Es zeigt das Schlüsselwort in Fettdruck.
Gibt Ausschnitte aus einem Textabschnitt mit bestimmten hervorgehobenen Schlüsselwörtern zurück. Wird zum Formatieren von Suchergebnissen verwendet.
Ein Beispiel ist unten gezeigt,
Zum Beispiel: // hier wird ein Körperfeld freigelegt
Fügen Sie in Ihrer Ansicht tpl-Datei den folgenden Code hinzu
<?php foreach ($rows as $id => $row):
$keys = $_GET['body_value'];
$row = search_excerpt($keys, $row);
?>
Das gesuchte Wort wird hervorgehoben (siehe Abbildung unten)
Wenn Sie Ansichten mit Apache Solr mit http://drupal.org/project/search_api und http://drupal.org/project/search_api_solr verwenden
Sie können die Hervorhebung des Wortes aktivieren.
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);
}
}
}
Beispiel für ein Körperfeld . In Ihr benutzerdefiniertes Modul.