Drupal 7'de bir sayfada 10'dan fazla arama sonucunu nasıl alabilirim?


17

Varsayılan olarak arama sayfasında yalnızca 10 sonuç gösterilir. Sınırsız sayıda sonuç göstermek için bunu nasıl değiştirebilirim?


1
Bunun neden şu anda kolayca yapılmasının mümkün olmadığı konusunda hikayeyle ilgilenenler için: drupal.org/node/33809
coderintherye

Drupal 8'de de aynısını yapmam gerekiyordu ve arama sonuçlarının sayfalandırma sınırını değiştiremiyorum. bu konuda yardım edebilir misin?
Naveen Kumar

Yanıtlar:


15

Bunun için görünümleri kullanmanızı öneririm. Görünümler, bir arama görünümü eklenmiştir (varsayılan olarak devre dışıdır). Arama işlevini sağlamak için açık bir arama terimi filtresi kullanın ve görünümün diğer yönlerini gerektiği gibi özelleştirin.


Tavsiye için teşekkürler. En kolay yol gibi görünüyor, ancak Drupal 7'de herhangi bir arama görünümü göremiyorum.
mivoligo

Temel arama gibi arama sonuçlarını görüntülediği bir görünümde kesin yapılandırma görünümleri yapabilirsiniz. Modül
Daniel Wehner



4

Drupal 7'de, özel bir modülde hook_query_alter kullanarak sayfa başına temel arama sonucu öğelerini değiştirebildim. Koddaki kancaları kullanmayı biliyorsanız, aşağıdaki kod snippet'i kullanılabilir:

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

Görünümler modülünde 'arama görünümü'nü bulamadım. 7.x-3.7 görünümlerini kullanıyorum.

Drupal 7'de bir sayfada 10'dan fazla arama sonucu almak için search_config kullandım modülünü . En son sürümü '7.x-1.1-beta2' kullandım.

Modül etkinleştirildikten sonra, çağrı cihazı sınırını 'EK EKLEME ARAMA YAPILANDIRMASI' bölümündeki Yapılandırma-> Arama ve meta veriler-> Arama ayarları (admin / config / arama / ayarlar) bölümünden yapılandırabilirsiniz. Orada 'Sonuçlar' bölümünü göreceksiniz ve bir sayfada 10'dan fazla arama sonucunu göstermek için çağrı cihazı sınırı belirleyebilirsiniz.


Bu Apache Solr ile çalışmıyor gibi görünüyor.
Jack Ryan

0

Varsayılan arama görünümü Views modülünden kaldırılmış gibi görünüyor, bu yüzden kendi gereksinimleriniz için bir başlangıç ​​noktası olarak kullanabileceğiniz hızlı bir şekilde ele aldım. Views içe aktarma iletişim kutusunu kullanın ve içe aktarmak için koda yapıştırın.

$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

Arama sınırlama modülünü de kullanabilir veya template.php dosyasında aşağıdaki kodu kullanabilirsiniz

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

$variables['quantity'] = 5; 

}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.