Evidenziare la parola chiave cercata utilizzando le viste filtro esposte?


12

In una vista e ho aggiunto un filtro esposto: Cerca: Filtro termini di ricerca

Funziona bene, ma vorrei evidenziare la parola chiave cercata nei risultati.

Come posso farlo?


È possibile utilizzare il file tpl per questo ..
Sumit Madan

sì, suppongo che dovrei usare una funzione per sostituire la parola chiave cercata. Ma come posso recuperare la parola chiave cercata e cosa succede se ci sono più parole chiave?
Chefnelone,

Se puoi usare jQuery c'è un piccolo modo complicato per farlo.
Niksmac,

sì, pensaci come arrivare .. puoi usare jquery come ha detto nikhil ..: D
Sumit Madan

Risposte:


7

Potresti usare qualcosa come l' evidenziazione che trova e aggiunge una classe a tutte le istanze di una parola nella pagina e invece di dargli una parola statica, useresti il ​​contenuto della casella di ricerca.

Puoi trovare maggiori informazioni e collegamenti ad altre versioni nella domanda StackOverflow, Evidenzia una parola con jQuery .


Lo faccio funzionare. È javascript ma va bene. Grazie.
Chefnelone,

11

Utilizzando la funzione search_excerpt è possibile evidenziare la parola chiave cercata. Mostra la parola chiave in grassetto.

Restituisce frammenti da un pezzo di testo, con determinate parole chiave evidenziate. Utilizzato per la formattazione dei risultati della ricerca.

Di seguito è mostrato un esempio,

per esempio: // qui viene esposto un campo del corpo

nel tuo punto di vista file tpl aggiungi il seguente codice

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

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

evidenzierà la parola cercata, vedi lo screenshot qui sotto

inserisci qui la descrizione dell'immagine


Fa il lavoro ma rimuove la struttura della riga della vista. La vista mostra il contenuto (non i campi) come teaser. Una volta effettuata la ricerca, il risultato non mostra il teaser ma solo i dati non elaborati. Questo può essere risolto.
Chefnelone,

Vedo che la funzione search_excerpt rimuove tutto il markup. Questo può essere cambiato in qualche modo?
Chefnelone,

Penso che questa sia l'opzione migliore se le viste sono in stile per mostrare i campi, ma non è utile se la vista mostra contenuti (completo, teaser, ..)
chefnelone,


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);
    }
  }
}

Esempio per il campo corporeo . Nel tuo modulo personalizzato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.