it-swarm-vi.com

Làm cách nào tôi có thể nhận được hơn 10 kết quả tìm kiếm trên một trang trong Drupal 7?

Theo trang tìm kiếm mặc định chỉ hiển thị 10 kết quả. Làm thế nào tôi có thể thay đổi nó để hiển thị số lượng kết quả không giới hạn?

16
mivoligo

Tôi khuyên bạn nên sử dụng lượt xem cho việc này. Lượt xem đi kèm với chế độ xem tìm kiếm (bị tắt theo mặc định). Sử dụng bộ lọc thuật ngữ tìm kiếm được hiển thị để cung cấp chức năng tìm kiếm và tùy chỉnh các khía cạnh khác của chế độ xem khi cần.

15
beeradb

Giới hạn 10 mục nói chung được mã hóa cứng thành hook_search_execute() triển khai (như node_search_execute() ): về lý thuyết, bạn có thể thực hiện hook_search_execute() và thay đổi truy vấn ->limit(10) thành một thứ khác ngoài 10.

Nhưng như beeradb đã đề cập , có thể dễ dàng hơn khi chỉ sử dụng Chế độ xem để ghi đè kết quả tìm kiếm cốt lõi.

11
user7

Drupal hiện không cung cấp cho bạn tùy chọn thay đổi số lượng kết quả tìm kiếm trên mỗi trang. Như @beeradb gợi ý, bạn có thể sử dụng mô-đun Lượt xem (hướng dẫn bằng video cho D7 tại http://lin-clark.com/blog/intro-drupal-7-intro-view-pt-1 ) .

Có một yêu cầu tính năng cho việc này đi vào Drupal 8 http://drupal.org/node/70294 .

5
Chaulky

Trong Drupal 7, tôi đã có thể sửa đổi các mục kết quả tìm kiếm cốt lõi trên mỗi trang bằng hook_query_alter trong mô-đun tùy chỉnh. Có thể sử dụng đoạn mã sau, nếu bạn quen sử dụng hook trong mã:

<?php
/**
 * Implements hook_query_alter
 */
function MY_MODULE_query_alter(&$query) {

  // This is a search result query and we want to change the
  // number of search results per page to 16.
  if ($query instanceof PagerDefault
    && ($tables = $query->getTables())
    && isset($tables['i']['table'])
    && $tables['i']['table'] === 'search_index') {
    $query->limit(16);
  }
}
4
aklump

Tôi không tìm thấy 'lượt xem tìm kiếm' trong mô-đun lượt xem. Tôi đang sử dụng lượt xem 7.x-3.7.

Để có được hơn 10 kết quả tìm kiếm trên một trang trong Drupal 7, tôi đã sử dụng mô-đun search_config . Tôi đã sử dụng phiên bản mới nhất '7.x-1.1-beta2' .

Khi mô-đun được bật, bạn có thể định cấu hình giới hạn máy nhắn tin từ Cấu hình-> Tìm kiếm và siêu dữ liệu-> Cài đặt tìm kiếm (admin/config/search/settings) trong phần 'THÊM TÌM KIẾM TÌM KIẾM TÌM KIẾM NODE'. Bạn sẽ thấy phần 'Kết quả' ở đó và bạn có thể chỉ định giới hạn máy nhắn tin để hiển thị hơn 10 kết quả tìm kiếm trên một trang.

0
amitgoyal

Chế độ xem tìm kiếm mặc định dường như đã bị xóa khỏi mô-đun Chế độ xem, vì vậy đây là chế độ xem nhanh mà tôi có thể sử dụng làm điểm bắt đầu cho các yêu cầu của riêng bạn. Sử dụng hộp thoại nhập Lượt xem và dán mã để nhập.

$view = new view();
$view->name = 'search_test';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'search test';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'search test';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'input_required';
$handler->display->display_options['exposed_form']['options']['text_input_required'] = 'Enter some search keywords.';
$handler->display->display_options['exposed_form']['options']['text_input_required_format'] = 'filtered_html';
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['items_per_page'] = '20';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'fields';
/* No results behavior: Global: Text area */
$handler->display->display_options['empty']['area']['id'] = 'area';
$handler->display->display_options['empty']['area']['table'] = 'views';
$handler->display->display_options['empty']['area']['field'] = 'area';
$handler->display->display_options['empty']['area']['empty'] = TRUE;
$handler->display->display_options['empty']['area']['content'] = 'No results found.';
$handler->display->display_options['empty']['area']['format'] = 'filtered_html';
/* Field: Content: Title */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['Word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['Ellipsis'] = FALSE;
/* Filter criterion: Content: Published */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: Search: Search Terms */
$handler->display->display_options['filters']['keys']['id'] = 'keys';
$handler->display->display_options['filters']['keys']['table'] = 'search_index';
$handler->display->display_options['filters']['keys']['field'] = 'keys';
$handler->display->display_options['filters']['keys']['operator'] = 'required';
$handler->display->display_options['filters']['keys']['exposed'] = TRUE;
$handler->display->display_options['filters']['keys']['expose']['operator_id'] = 'keys_op';
$handler->display->display_options['filters']['keys']['expose']['label'] = 'Search Terms';
$handler->display->display_options['filters']['keys']['expose']['operator'] = 'keys_op';
$handler->display->display_options['filters']['keys']['expose']['identifier'] = 'keys';

/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page');
$handler->display->display_options['path'] = 'search';
0
Alfred Armstrong