it-swarm.asia

كيف يمكنني الحصول على أكثر من 10 نتائج بحث على صفحة واحدة في Drupal 7؟

تعرض صفحة البحث افتراضيًا 10 نتائج فقط. كيف يمكنني تغييره لعرض عدد غير محدود من النتائج؟

16
mivoligo

أوصي باستخدام وجهات النظر لهذا. تأتي طرق العرض مع طريقة عرض بحث مضمنة (يتم تعطيلها افتراضيًا). استخدم عامل تصفية مصطلح بحث مكشوف لتوفير وظيفة البحث ، وتخصيص جوانب أخرى من العرض حسب الحاجة.

15
beeradb

بشكل عام ، يتم تحديد الحد الأقصى للعنصر المكون من 10 عناصر [hook_search_execute() عمليات التنفيذ (مثل node_search_execute() ): نظريًا ، يمكنك تنفيذ hook_search_execute() وتغيير الاستعلام ->limit(10) إلى شيء آخر غير 10.

ولكن نظرًا لأن Beeradb المذكور ، ربما يكون من الأسهل استخدام طرق العرض لتجاوز نتائج البحث الأساسية.

11
user7

لا يمنحك Drupal حاليًا خيارًا لتغيير عدد نتائج البحث لكل صفحة. كما يقترحbeeradb ، يمكنك استخدام وحدة المشاهدات (فيديو تعليمي لـ D7 على http://lin-clark.com/blog/intro-drupal-7-intro-views-pt-1 ) .

هناك طلب ميزة لهذا للذهاب إلى Drupal 8 http://drupal.org/node/70294 .

5
Chaulky

في 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);
  }
}
4
aklump

لم أجد "عرض البحث" في وحدة المشاهدات. أنا أستخدم المشاهدات 7.x-3.7.

للحصول على أكثر من 10 نتائج بحث على صفحة واحدة في Drupal 7 ، لقد استخدمت search_config . لقد استخدمت أحدث إصدار '7.x-1.1-beta2' .

بمجرد تمكين الوحدة ، يمكنك تكوين حد جهاز النداء من التكوين-> البحث والبيانات الوصفية-> إعدادات البحث (المشرف/التكوين/البحث/الإعدادات) ضمن قسم "تكوين بحث العقدة الإضافي". سترى قسم "النتائج" هناك ويمكنك تحديد حد النداء لعرض أكثر من 10 نتائج بحث في صفحة واحدة.

0
amitgoyal

يبدو أن طريقة عرض البحث الافتراضية قد تمت إزالتها من وحدة طرق العرض ، لذلك إليك طريقة العرض التي قمت باستعمالها بسرعة والتي يمكنك استخدامها كنقطة بداية لمتطلباتك الخاصة. استخدم مربع الحوار "استيراد المشاهدات" والصق الرمز لاستيراده.

$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