it-swarm-es.com

¿Cómo puedo obtener más de 10 resultados de búsqueda en una página en Drupal 7?

Por defecto, la página de búsqueda muestra solo 10 resultados. ¿Cómo puedo cambiarlo para mostrar un número ilimitado de resultados?

16
mivoligo

Recomiendo usar vistas para esto. Las vistas vienen con una vista de búsqueda incluida (deshabilitada por defecto). Utilice un filtro de término de búsqueda expuesto para proporcionar la funcionalidad de búsqueda y personalice otros aspectos de la vista según sea necesario.

15
beeradb

El límite de 10 elementos generalmente está codificado en implementaciones hook_search_execute() (como node_search_execute() ): en teoría, podría implementar hook_search_execute() y cambia la consulta ->limit(10) a otra que no sea 10.

Pero como se menciona beeradb , probablemente sea más fácil usar Vistas para anular los resultados de búsqueda principales.

11
user7

Drupal no le ofrece actualmente una opción para cambiar el número de resultados de búsqueda por página. Como sugiere @beeradb, puede usar el módulo Vistas (video tutorial para D7 en http://lin-clark.com/blog/intro-drupal-7-intro-views-pt-1 ) .

Hay una solicitud de función para que esto entre en Drupal 8 http://drupal.org/node/70294 .

5
Chaulky

En Drupal 7), he podido modificar los elementos principales de resultados de búsqueda por página usando hook_query_alter en un módulo personalizado. Se puede usar el siguiente fragmento de código, si está familiarizado con el uso de ganchos en 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);
  }
}
4
aklump

No encontré 'vista de búsqueda' en el módulo de vistas. Estoy usando las vistas 7.x-3.7.

Para obtener más de 10 resultados de búsqueda en una página en Drupal 7, he usado el módulo search_config . Usé su última versión '7.x-1.1-beta2' .

Una vez que el módulo está habilitado, puede configurar el límite del buscapersonas desde Configuración-> Búsqueda y metadatos-> Configuración de búsqueda (admin/config/search/settings) en la sección 'CONFIGURACIÓN DE BÚSQUEDA DE NODOS ADICIONALES'. Verá la sección 'Resultados' allí y puede especificar el límite de buscapersonas para mostrar más de 10 resultados de búsqueda en una página.

0
amitgoyal

La vista de búsqueda predeterminada parece haberse eliminado del módulo Vistas, por lo que aquí hay una que eliminé rápidamente que puede usar como punto de partida para sus propios requisitos. Use el cuadro de diálogo Importar vistas y pegue el código para importarlo.

$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