it-swarm.it

Come posso ottenere più di 10 risultati di ricerca su una pagina in Drupal 7?

Per impostazione predefinita, la pagina di ricerca mostra solo 10 risultati. Come posso cambiarlo per visualizzare un numero illimitato di risultati?

16
mivoligo

Consiglio di usare le viste per questo. Le viste includono una vista di ricerca inclusa (disabilitata per impostazione predefinita). Utilizzare un filtro dei termini di ricerca esposto per fornire la funzionalità di ricerca e personalizzare altri aspetti della vista in base alle esigenze.

15
beeradb

Il limite di 10 elementi è generalmente codificato in hook_search_execute() implementazioni (come node_search_execute() ): in teoria, potresti implementare hook_search_execute() e modifica la query ->limit(10) in qualcosa di diverso da 10.

Ma poiché menzionato da beeradb , è probabilmente più semplice utilizzare semplicemente Views per sovrascrivere i risultati di ricerca principali.

11
user7

Drupal non ti offre attualmente un'opzione per modificare il numero di risultati della ricerca per pagina. Come suggerisce @beeradb, puoi usare il modulo Views (tutorial video per D7 su http://lin-clark.com/blog/intro-drupal-7-intro-views-pt-1 ) .

C'è una richiesta di funzionalità per questo andare in Drupal 8 http://drupal.org/node/70294 .

5
Chaulky

In Drupal 7, sono stato in grado di modificare gli elementi del risultato della ricerca principale per pagina utilizzando hook_query_alter in un modulo personalizzato. È possibile utilizzare il seguente frammento di codice, se si ha familiarità con l'utilizzo di hook in codice:

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

Non ho trovato la "vista di ricerca" nel modulo viste. Sto usando le visualizzazioni 7.x-3.7.

Per ottenere più di 10 risultati di ricerca su una pagina in Drupal 7, ho usato il modulo search_config . Ho usato l'ultima versione '7.x-1.1-beta2' .

Una volta abilitato il modulo, è possibile configurare il limite del cercapersone da Configurazione-> Cerca e metadati-> Cerca impostazioni (admin/config/search/settings) nella sezione 'CONFIGURAZIONE RICERCA DI NODO AGGIUNTIVO'. Lì vedrai la sezione 'Risultati' e puoi specificare il limite del cercapersone per mostrare più di 10 risultati di ricerca su una pagina.

0
amitgoyal

La vista di ricerca predefinita sembra essere stata rimossa dal modulo Viste, quindi eccone una che ho messo a punto rapidamente che puoi usare come punto di partenza per le tue esigenze. Utilizzare la finestra di dialogo di importazione Viste e incollare il codice per 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