Como posso obter mais de 10 resultados de pesquisa em uma página no Drupal 7?


17

Por padrão, a página de pesquisa mostra apenas 10 resultados. Como posso alterá-lo para exibir um número ilimitado de resultados?


1
Para os interessados em história por trás de por que isso não é possível no momento de fazer ver facilmente: drupal.org/node/33809
— coderintherye

Eu precisava fazer o mesmo no Drupal 8 e não consigo alterar o limite de paginação dos resultados da pesquisa. você pode ajudar nisso?
— Naveen Kumar

Respostas:


15

Eu recomendo usar visualizações para isso. As visualizações são fornecidas com uma visualização de pesquisa (desativada por padrão). Use um filtro de termo de pesquisa exposto para fornecer a funcionalidade de pesquisa e personalize outros aspectos da exibição, conforme necessário.


Obrigado pela recomendação. Parece a maneira mais fácil, mas no Drupal 7, não vejo nenhuma visualização de pesquisa incluída.
— Mvoligo

Você pode vistas do configure definitivas em uma exibição que exibe os resultados da pesquisa como search.module núcleo
— Daniel Wehner



4

No Drupal 7, consegui modificar os itens principais de resultados de pesquisa por página usando hook_query_alter em um módulo personalizado. O seguinte snippet de código pode ser usado, se você estiver familiarizado com o uso de ganchos no código:

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

Não encontrei 'visualização de pesquisa' no módulo de visualizações. Estou usando as visualizações 7.x-3.7.

Para obter mais de 10 resultados de pesquisa em uma página no Drupal 7, usei o módulo search_config . Eu usei a versão mais recente '7.x-1.1-beta2'.

Depois que o módulo estiver ativado, você poderá configurar o limite do pager em Configuração-> Pesquisa e metadados-> Configurações de pesquisa (admin / config / search / settings) na seção 'CONFIGURAÇÃO DE PESQUISA DE NÓS ADICIONAIS'. Você verá a seção 'Resultados' e poderá especificar o limite de pager para mostrar mais de 10 resultados de pesquisa em uma página.


Isso não parece funcionar com o Apache Solr.
— Jack Ryan

0

A exibição de pesquisa padrão parece ter sido removida do módulo Exibições, então, aqui, eu encerrei rapidamente que você pode usar como ponto de partida para seus próprios requisitos. Use o diálogo de importação de Views e cole o código para importá-lo.

$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

Você também pode usar o módulo de limite de pesquisa ou o código a seguir em template.php

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

$variables['quantity'] = 5; 

}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.