it-swarm-id.com

Bagaimana saya bisa mendapatkan lebih dari 10 hasil pencarian pada satu halaman di Drupal 7?

Secara default halaman pencarian hanya menunjukkan 10 hasil. Bagaimana saya bisa mengubahnya untuk menampilkan hasil yang tidak terbatas?

16
mivoligo

Saya sarankan menggunakan tampilan untuk ini. Tampilan dilengkapi dengan tampilan pencarian yang disertakan (dinonaktifkan secara default). Gunakan filter istilah pencarian yang terbuka untuk menyediakan fungsionalitas pencarian, dan sesuaikan aspek tampilan lainnya sesuai kebutuhan.

15
beeradb

Batas 10 item umumnya hard-coded menjadi hook_search_execute() implementasi (seperti node_search_execute() ): dalam teori, Anda bisa mengimplementasikan hook_search_execute() dan ubah ->limit(10) query ke sesuatu selain 10.

Tetapi sebagai sebutan beeradb , mungkin lebih mudah menggunakan Tampilan untuk mengganti hasil pencarian inti.

11
user7

Drupal saat ini tidak memberi Anda opsi untuk mengubah jumlah hasil pencarian per halaman. Seperti yang disarankan @beeradb, Anda dapat menggunakan modul Views (tutorial video untuk D7 di http://lin-clark.com/blog/intro-drupal-7-intro-views-pt-1 ) .

Ada permintaan fitur untuk ini masuk ke Drupal 8 http://drupal.org/node/70294 .

5
Chaulky

Di Drupal 7, saya telah dapat memodifikasi item hasil pencarian inti per halaman menggunakan hook_query_alter dalam modul khusus. Cuplikan kode berikut dapat digunakan, jika Anda terbiasa menggunakan kait di kode:

<?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

Saya tidak menemukan 'tampilan pencarian' di modul tampilan. Saya menggunakan tampilan 7.x-3.7.

Untuk mendapatkan lebih dari 10 hasil pencarian pada satu halaman di Drupal 7, saya telah menggunakan modul search_config . Saya menggunakan versi terbaru '7.x-1.1-beta2' .

Setelah modul diaktifkan, Anda dapat mengonfigurasi batas pager dari Konfigurasi-> Pencarian dan metadata-> Pengaturan pencarian (admin/config/pencarian/pengaturan) di bawah bagian 'KONFIGURASI PENCARIAN NODE PENAMBAHAN'. Anda akan melihat bagian 'Hasil' di sana dan Anda dapat menentukan batas pager untuk menampilkan lebih dari 10 hasil pencarian pada satu halaman.

0
amitgoyal

Tampilan pencarian default tampaknya telah dihapus dari modul Views, jadi inilah yang saya cepat-cepat mengetuk yang dapat Anda gunakan sebagai titik awal untuk kebutuhan Anda sendiri. Gunakan dialog impor Tampilan dan tempel dalam kode untuk mengimpornya.

$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