Gesuchtes Keyword mit sichtbaren Filteransichten hervorheben?


12

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?


Sie können tpl-Datei für diese verwenden ..
Sumit Madan

Ja, ich denke, ich sollte eine Funktion verwenden, um das gesuchte Schlüsselwort zu ersetzen. Aber wie rufe ich das gesuchte Schlüsselwort ab und was ist, wenn es mehr als ein Schlüsselwort gibt?
Chefnelone

Wenn Sie jQuery verwenden können, gibt es einen kleinen kniffligen Weg, dies zu tun.
Niksmac

ja darüber nachdenken , wie man .. Sie jquery verwenden können als nikhil sagte ..: D
Sumit Madan

Antworten:


7

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 .


Ich bekomme es zum Laufen. Ist Javascript aber ok. Vielen Dank.
Chefnelone

11

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)

Bildbeschreibung hier eingeben


Es erledigt die Aufgabe, entfernt jedoch die Struktur der Ansichtszeile. In der Ansicht werden Inhalte (keine Felder) als Teaser angezeigt. Sobald die Suche abgeschlossen ist, zeigt das Ergebnis nicht den Teaser, sondern nur die Rohdaten. Kann das gelöst werden?
Chefnelone

Ich sehe, dass die Funktion search_excerpt alle Markups entfernt. Kann sich das irgendwie ändern?
Chefnelone

Ich denke, dies ist die beste Option, wenn die Ansichten so gestaltet sind, dass Felder
angezeigt werden. Sie


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.