Wie kann ich in Drupal 7 mehr als 10 Suchergebnisse auf einer Seite erhalten?


17

Standardmäßig werden auf der Suchseite nur 10 Ergebnisse angezeigt. Wie kann ich es ändern, um eine unbegrenzte Anzahl von Ergebnissen anzuzeigen?


1
Für diejenigen, die sich für eine Hintergrundgeschichte interessieren, warum dies derzeit nicht einfach möglich ist, siehe: drupal.org/node/33809
coderintherye

Ich musste dasselbe in Drupal 8 tun und kann die Paginierungsgrenze der Suchergebnisse nicht ändern. kannst du dabei helfen?
Naveen Kumar

Antworten:


15

Ich empfehle dazu Views zu verwenden. Ansichten werden mit einer Suchansicht geliefert (standardmäßig deaktiviert). Verwenden Sie einen exponierten Suchbegriffsfilter, um die Suchfunktion bereitzustellen, und passen Sie andere Aspekte der Ansicht nach Bedarf an.


Danke für die Empfehlung. Es sieht nach dem einfachsten Weg aus, aber in Drupal 7 wird keine Suchansicht angezeigt.
mivoligo

Sie können Ansichten in einer Ansicht endgültig konfigurieren, in der die Suchergebnisse angezeigt werden, z. B. core search.module
Daniel Wehner,



4

In Drupal 7 konnte ich die wichtigsten Suchergebniselemente pro Seite mithilfe von hook_query_alter in einem benutzerdefinierten Modul ändern. Das folgende Code-Snippet kann verwendet werden, wenn Sie mit der Verwendung von Hooks im Code vertraut sind:

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

Ich habe die Suchansicht im Ansichtsmodul nicht gefunden. Ich benutze Ansichten 7.x-3.7.

Um in Drupal 7 mehr als 10 Suchergebnisse auf einer Seite zu erhalten, habe ich das Modul search_config verwendet . Ich habe die neueste Version '7.x-1.1-beta2' verwendet.

Sobald das Modul aktiviert ist, können Sie das Pager-Limit unter Konfiguration-> Suche und Metadaten-> Sucheinstellungen (admin / config / search / settings) im Abschnitt 'ADDITIONAL NODE SEARCH CONFIGURATION' konfigurieren. Dort wird der Abschnitt "Ergebnisse" angezeigt. Sie können ein Pager-Limit festlegen, um mehr als 10 Suchergebnisse auf einer Seite anzuzeigen.


Dies scheint mit Apache Solr nicht zu funktionieren.
Jack Ryan

0

Die Standardsuchansicht scheint aus dem Modul "Ansichten" entfernt worden zu sein. Deshalb habe ich hier eine kurze Zusammenfassung für Sie zusammengestellt, die Sie als Ausgangspunkt für Ihre eigenen Anforderungen verwenden können. Verwenden Sie den Importdialog für Ansichten und fügen Sie den Code ein, um ihn zu importieren.

$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

Sie können auch das Suchlimit-Modul oder den folgenden Code in template.php verwenden

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

$variables['quantity'] = 5; 

}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.