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?
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?
Yanıtlar:
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.
10 madde sınırı genellikle hook_search_execute()
uygulamalara (örneğin node_search_execute()
) sabit olarak kodlanmıştır : teoride, sorguyu başka bir şeye uygulayabilir hook_search_execute()
ve değiştirebilirsiniz .->limit(10)
10
Ancak beeradb'ın belirttiği gibi , temel arama sonuçlarını geçersiz kılmak için Görünümleri kullanmak daha kolaydır.
Drupal şu anda size sayfa başına arama sonucu sayısını değiştirme seçeneği sunmuyor. @Beeradb'nin önerdiği gibi Views modülünü kullanabilirsiniz ( http://lin-clark.com/blog/intro-drupal-7-intro-views-pt-1 adresindeki D7 için video eğitimi ).
Bunun Drupal 8'e girmesi için bir özellik isteği var http://drupal.org/node/702940 .
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);
}
}
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.
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';