В представлении я добавил открытый фильтр: Поиск: Фильтр условий поиска
Работает нормально, но я бы хотел выделить искомое ключевое слово в результатах.
Как мне это сделать?
В представлении я добавил открытый фильтр: Поиск: Фильтр условий поиска
Работает нормально, но я бы хотел выделить искомое ключевое слово в результатах.
Как мне это сделать?
Ответы:
Вы можете использовать что-то вроде выделения, которое находит и добавляет класс ко всем экземплярам слова на странице, и вместо подачи статического слова вы используете содержимое поля поиска.
Вы можете найти дополнительную информацию и ссылки на другие версии в вопросе StackOverflow. Выделите слово с помощью jQuery .
Используя функцию search_excerpt, вы можете выделить искомое ключевое слово. Он показывает ключевое слово жирным шрифтом.
Возвращает фрагменты текста с выделенными определенными ключевыми словами. Используется для форматирования результатов поиска.
Пример показан ниже,
например: // здесь выставлено поле тела
В вашем представлении TPL файл добавить следующий код
<?php foreach ($rows as $id => $row):
$keys = $_GET['body_value'];
$row = search_excerpt($keys, $row);
?>
оно выделит искомое слово, см. скриншот ниже
Если вы используете представления с Apache Solr с http://drupal.org/project/search_api и http://drupal.org/project/search_api_solr
Вы можете включить подсветку на слове.
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);
}
}
}
Пример для поля тела . В ваш пользовательский модуль.