Dans une vue et j'ai ajouté un filtre exposé: Recherche: Filtre des termes de recherche
Cela fonctionne bien, mais je voudrais mettre en évidence le mot clé recherché dans les résultats.
Comment puis-je le faire?
Dans une vue et j'ai ajouté un filtre exposé: Recherche: Filtre des termes de recherche
Cela fonctionne bien, mais je voudrais mettre en évidence le mot clé recherché dans les résultats.
Comment puis-je le faire?
Réponses:
Vous pouvez utiliser quelque chose comme surbrillance qui trouve et ajoute une classe à toutes les instances d'un mot sur la page, et au lieu de lui donner un mot statique, vous utiliseriez le contenu de la zone de recherche.
Vous pouvez trouver plus d'informations et des liens vers d'autres versions dans la question StackOverflow, Mettez un mot en surbrillance avec jQuery .
En utilisant la fonction search_excerpt , vous pouvez mettre en surbrillance le mot-clé recherché. Il affiche le mot-clé en gras.
Renvoie des extraits d'un texte, certains mots clés étant mis en évidence. Utilisé pour formater les résultats de la recherche.
Un exemple est montré ci-dessous,
par exemple: // un champ corporel est exposé ici
dans votre fichier vues tpl ajoutez le code suivant
<?php foreach ($rows as $id => $row):
$keys = $_GET['body_value'];
$row = search_excerpt($keys, $row);
?>
il mettra en évidence le mot recherché, voir la capture d'écran ci-dessous
Si vous utilisez des vues avec Apache Solr avec http://drupal.org/project/search_api et http://drupal.org/project/search_api_solr
Vous pouvez activer la surbrillance sur le mot.
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);
}
}
}
Exemple pour le champ corporel . Dans votre module personnalisé.