Trong chế độ xem và tôi đã thêm bộ lọc được hiển thị: Tìm kiếm: Bộ lọc Điều khoản tìm kiếm
Nó hoạt động tốt, nhưng tôi muốn làm nổi bật từ khóa tìm kiếm trong kết quả.
Tôi làm nó như thế nào?
Trong chế độ xem và tôi đã thêm bộ lọc được hiển thị: Tìm kiếm: Bộ lọc Điều khoản tìm kiếm
Nó hoạt động tốt, nhưng tôi muốn làm nổi bật từ khóa tìm kiếm trong kết quả.
Tôi làm nó như thế nào?
Câu trả lời:
Bạn có thể sử dụng một cái gì đó như tô sáng tìm và thêm một lớp cho tất cả các trường hợp của một từ trên trang và thay vì cho nó một từ tĩnh, bạn sẽ sử dụng nội dung của hộp tìm kiếm.
Bạn có thể tìm thêm thông tin và liên kết đến các phiên bản khác trong câu hỏi StackOverflow, Đánh dấu một từ bằng jQuery .
Sử dụng chức năng search_excerpt, bạn có thể đánh dấu từ khóa tìm kiếm. Nó hiển thị các từ khóa in đậm.
Trả về các đoạn từ một đoạn văn bản, với các từ khóa nhất định được tô sáng. Được sử dụng để định dạng kết quả tìm kiếm.
Một ví dụ đã được biểu diễn ở dưới,
ví dụ: // một trường cơ thể được hiển thị ở đây
trong tập tin tpl của bạn, thêm đoạn mã sau
<?php foreach ($rows as $id => $row):
$keys = $_GET['body_value'];
$row = search_excerpt($keys, $row);
?>
nó sẽ làm nổi bật từ được tìm kiếm, xem ảnh chụp màn hình bên dưới
Nếu bạn đang sử dụng các khung nhìn với Apache Solr với http://drupal.org/project/search_api và http://drupal.org/project/search_api_solr
Bạn có thể bật đánh dấu trên từ.
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);
}
}
}
Ví dụ cho trường cơ thể . Vào mô-đun tùy chỉnh của bạn.