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


17

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


1
Bagi mereka yang tertarik pada cerita belakang mengapa hal ini saat ini tidak mungkin dilakukan dengan mudah, lihat: drupal.org/node/33809
coderintherye

Saya perlu melakukan hal yang sama di Drupal 8 dan saya tidak dapat mengubah batas halaman hasil pencarian. dapatkah Anda membantu dalam hal ini?
Naveen Kumar

Jawaban:


15

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.


Terima kasih untuk rekomendasinya. Sepertinya cara termudah, tetapi dalam Drupal 7, saya tidak melihat tampilan pencarian apa pun.
mivoligo

Anda dapat mengonfigurasi tampilan secara pasti dalam tampilan yang menampilkan hasil pencarian seperti pencarian inti. Modul
Daniel Wehner



4

Di Drupal 7, saya bisa memodifikasi item hasil pencarian inti per halaman menggunakan hook_query_alter dalam modul khusus. Cuplikan kode berikut dapat digunakan, jika Anda terbiasa menggunakan kait dalam 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);
  }
}

0

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 search_config modul . 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 halaman untuk menampilkan lebih dari 10 hasil pencarian pada satu halaman.


Ini sepertinya tidak berfungsi dengan Apache Solr.
Jack Ryan

0

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 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';

-2

Anda dapat menggunakan modul batas pencarian juga atau menggunakan kode berikut di template.php

if(arg(0) == "search" && arg(1) == "site") {

$variables['quantity'] = 5; 

}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.