Por defecto, la página de búsqueda muestra solo 10 resultados. ¿Cómo puedo cambiarlo para mostrar un número ilimitado de resultados?
Por defecto, la página de búsqueda muestra solo 10 resultados. ¿Cómo puedo cambiarlo para mostrar un número ilimitado de resultados?
Respuestas:
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.
El límite de 10 elementos generalmente está codificado en hook_search_execute()
implementaciones (como node_search_execute()
): en teoría, podría implementar hook_search_execute()
y cambiar la ->limit(10)
consulta a algo diferente 10
.
Pero como mencionó beeradb , probablemente sea más fácil usar Vistas para anular los resultados de búsqueda principales.
Actualmente, Drupal no le da la opción de 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/702940 .
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 el 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);
}
}
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.
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';