it-swarm-eu.dev

Jak mohu získat více než 10 výsledků vyhledávání na jedné stránce v Drupal 7?

Ve výchozím nastavení vyhledávací stránka zobrazuje pouze 10 výsledků. Jak lze změnit zobrazení neomezeného počtu výsledků?

17
mivoligo

Doporučuji k tomu použít zobrazení. Pohledy jsou dodávány s pohledem vyhledávání (ve výchozím nastavení zakázáno). Použijte filtr vystaveného vyhledávacího dotazu k zajištění funkčnosti vyhledávání a podle potřeby přizpůsobte další aspekty pohledu.

15
beeradb

Limit 10 položek je obecně pevně zakódován do implementací hook_search_execute() (jako node_search_execute() ): teoreticky můžete implementovat hook_search_execute() a změňte dotaz ->limit(10) na něco jiného než 10.

Ale jak zmínil se o Beeradb , je pravděpodobně jednodušší použít pouze Zobrazení k přepsání základních výsledků vyhledávání.

11
user7

Drupal vám v současné době nedává možnost změnit počet výsledků vyhledávání na stránce. Jak navrhuje @beeradb, můžete použít modul Views (video tutoriál pro D7 na http://lin-clark.com/blog/intro-drupal-7-intro-views-pt-1 ) .

Existuje požadavek na funkci, který má jít do Drupal 8 http://drupal.org/node/70294 .

5
Chaulky

V Drupal 7, byl jsem schopen upravit základní položky výsledků vyhledávání na stránce pomocí hook_query_alter ve vlastním modulu. Následující fragment kódu lze použít, pokud jste obeznámeni s používáním háčků v kód:

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

Nenalezl jsem „pohled vyhledávání“ v modulu zobrazení. Používám názory 7.x-3.7.

Pro získání více než 10 výsledků vyhledávání na jedné stránce v Drupal 7, použil jsem modul search_config . Použil jsem nejnovější verzi '7.x-1.1-beta2' .

Jakmile je modul povolen, můžete nakonfigurovat limit pageru v sekci Konfigurace-> Hledat a metadata-> Nastavení vyhledávání (admin/config/search/settings) v části „KONFIGURACE DALŠÍHO VYHLEDÁVÁNÍ NODE“. Uvidíte tam sekci Výsledky a můžete zadat limit pageru tak, aby se na jedné stránce zobrazilo více než 10 výsledků vyhledávání.

0
amitgoyal

Zdá se, že výchozí pohled na vyhledávání byl z modulu Pohledy odstraněn, takže jsem zde rychle narazil, takže ho můžete použít jako výchozí bod pro své vlastní požadavky. Použijte dialogové okno Import pohledů a importujte jej do kódu.

$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