डिफ़ॉल्ट रूप से खोज पृष्ठ केवल 10 परिणाम दिखाता है। असीमित संख्या में परिणाम प्रदर्शित करने के लिए मैं इसे कैसे बदल सकता हूं?
डिफ़ॉल्ट रूप से खोज पृष्ठ केवल 10 परिणाम दिखाता है। असीमित संख्या में परिणाम प्रदर्शित करने के लिए मैं इसे कैसे बदल सकता हूं?
जवाबों:
मैं इसके लिए विचारों का उपयोग करने की सलाह देता हूं। दृश्य शामिल खोज दृश्य के साथ आता है (डिफ़ॉल्ट रूप से अक्षम)। खोज की कार्यक्षमता प्रदान करने के लिए एक उजागर खोज शब्द फ़िल्टर का उपयोग करें, और आवश्यकतानुसार अन्य पहलुओं को अनुकूलित करें।
10 आइटम सीमा आमतौर पर hook_search_execute()
कार्यान्वयन (जैसे node_search_execute()
) में कठिन-कोडित होती है : सिद्धांत रूप में, आप क्वेरी को लागू कर सकते हैं hook_search_execute()
और ->limit(10)
इसके अलावा किसी अन्य चीज़ को बदल सकते हैं 10
।
जैसा कि बियर्डडब ने उल्लेख किया है , कोर खोज परिणामों को ओवरराइड करने के लिए व्यूज़ का उपयोग करना शायद आसान है।
Drupal वर्तमान में आपको प्रति पृष्ठ खोज परिणामों की संख्या बदलने का विकल्प नहीं देता है। जैसा कि @beeradb सुझाव देता है, आप व्यू मॉड्यूल (D7 के लिए वीडियो ट्यूटोरियल http://lin-clark.com/blog/intro-drupal-7-intro-views-pt-1 ) का उपयोग कर सकते हैं ।
Drupal 8 http://drupal.org/node/702940 पर जाने के लिए इसके लिए एक सुविधा अनुरोध है ।
Drupal 7 में, मैं एक कस्टम मॉड्यूल में hook_query_alter का उपयोग करके प्रति पृष्ठ कोर खोज परिणाम आइटम को संशोधित करने में सक्षम रहा हूं। यदि आप कोड में हुक का उपयोग करने से परिचित हैं, तो निम्नलिखित कोड स्निपेट का उपयोग किया जा सकता है:
<?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);
}
}
मुझे दृश्य मॉड्यूल में 'खोज दृश्य' नहीं मिला। मैं 7.x-3.7 का उपयोग कर रहा हूं।
Drupal 7 में एक पृष्ठ पर 10 से अधिक खोज परिणाम प्राप्त करने के लिए, मैंने search_config मॉड्यूल का उपयोग किया है । मैंने इसका नवीनतम संस्करण '7.x-1.1-beta2' इस्तेमाल किया।
मॉड्यूल सक्षम होने के बाद, आप 'ADDITIONAL NODE SEARCH CONFIGURATION' सेक्शन के तहत पेजर लिमिट को कॉन्फ़िगरेशन-> सर्च और मेटाडेटा-> सर्च सेटिंग्स (एडमिन / कॉन्फ़िगरेशन / सर्च / सेटिंग्स) से कॉन्फ़िगर कर सकते हैं। आपको वहां 'परिणाम' अनुभाग दिखाई देगा और आप एक पृष्ठ पर 10 से अधिक खोज परिणाम दिखाने के लिए पेजर सीमा निर्दिष्ट कर सकते हैं।
डिफ़ॉल्ट खोज दृश्य को दृश्य मॉड्यूल से हटा दिया गया लगता है, इसलिए यहां एक मैंने जल्दी से दस्तक दी है जिसे आप अपनी आवश्यकताओं के लिए शुरुआती बिंदु के रूप में उपयोग कर सकते हैं। आयात करने के लिए कोड में दृश्य आयात संवाद और पेस्ट का उपयोग करें।
$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';