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.