मैं खोज परिणाम पृष्ठ को कैसे अनुकूलित करूं?


39

मैंने अपनी सामग्री के प्रकार और पृष्ठ दृश्य के टीज़र दृश्य को अनुकूलित किया है। अब मुझे खोज परिणाम पृष्ठ के लिए टीज़र दृश्य का उपयोग करने की आवश्यकता है। डिफ़ॉल्ट रूप से, Drupal प्रत्येक परिणाम के लिए एक पूर्ण टेक्स्ट जंबल मेस प्रदर्शित करता है, मुझे प्रत्येक सामग्री प्रकार के रूप को अनुकूलित करने में सक्षम होना चाहिए। मैं यह नहीं बदलना चाहता कि HOW ड्रुपल को परिणाम कैसे मिलते हैं, बस यह उन्हें कैसे प्रदर्शित करता है।

जवाबों:


28

आप theme_search_results (), या theme_search_result () को ओवरराइड कर सकते हैं।

पहला विषय फ़ंक्शन है जिसे खोज परिणाम पृष्ठ के लिए आमंत्रित किया गया है, जबकि दूसरा विषय फ़ंक्शन है जिसे एकल परिणाम प्रस्तुत करने के लिए आमंत्रित किया गया है। दोनों थीम फ़ंक्शन एक टेम्पलेट फ़ाइल का उपयोग करते हैं ( पहले मामले में खोज-परिणाम. tpl.php , दूसरे मामले में खोज-result.tpl.php )।

खोज-परिणाम.tpl.php $info_split['type']ड्रुपल 6 में उपयोग करेगा , जिसमें नोड प्रकार होता है। नवीनतम Drupal 7 संस्करण में, $info_split['type']अब पारित नहीं किया गया है, लेकिन खोज-परिणाम.tpl.php अभी भी हो जाता है $result['node'], इस मामले में नोड्स के लिए खोज की जाती है; $result['node']->typeफिर नोड का सामग्री प्रकार है।

यह देखने के लिए कि ड्रुपल 7, और उच्चतर, मॉड्यूल हुक_सर्च_पेज () को लागू करने की अनुमति देता है , लेकिन यह एक मॉड्यूल द्वारा उपयोग किया जाने वाला एक हुक है जो खोज मॉड्यूल के साथ एकीकृत होता है, उस मॉड्यूल से नहीं जो परिणाम पृष्ठ को दूसरे के लिए लौटाए जाने वाले परिणाम पृष्ठ को बदलना चाहता है। मॉड्यूल।
इसके अलावा, Drupal 7 पर, प्रत्येक थीम फ़ंक्शन एक प्रीप्रोसेस फ़ंक्शन का उपयोग करता है, जो इस स्थिति में हुक_परप्रोसेस_search_results () और hook_preprocess_search_result () होगा । वे उस स्थिति में सहायक होते हैं, जब आपको केवल टेम्पलेट फ़ाइल में दिए गए मान को संपादित करने की आवश्यकता होती है।


क्या विचारों या पैनलों का उपयोग करके खोज परिणामों को थीम करने का कोई तरीका है?
जन

@jan आप खोज किए गए फ़िल्टर का उपयोग करके खोज पृष्ठ को बदल सकते हैं।
kiamlaluno

@kiamlaluno, मुझे उम्मीद थी कि मैं विचारों का उपयोग करके ड्रुपल के लिए डिफ़ॉल्ट खोज विकल्प को थीम कर सकता हूं। क्योंकि मैं उजागर फ़िल्टर का उपयोग नहीं करूंगा और बस डिफ़ॉल्ट खोज विकल्प का उपयोग करूंगा।
जं।

@ भजन यदि आप एक दृश्य का उपयोग करते हैं, तो संपूर्ण खोज पृष्ठ को दृश्य से बदल दिया जाता है। यही कारण है कि आपको कम से कम एक दृश्य फ़िल्टर को उजागर करने की आवश्यकता है: यह वही है जो उपयोगकर्ता खोज शब्दों को दर्ज करने के लिए उपयोग करेंगे। एक दृश्य केवल नोड्स की एक सूची है, और पृष्ठ में दिखाए जाने वाले नोड्स को फ़िल्टर करने के लिए फ़िल्टर का उपयोग किया जाता है।
kiamlaluno

@kiamlaluno तुम सही हो। मैंने इसके बारे में क्यों नहीं सोचा !! साभार
जान

18

Drupal 7 में आप उपयोग करते हैं ...

... परिणामों में प्रदर्शित जानकारी के साथ छेड़छाड़ करना।

और आप उपयोग करें ...

... परिणामों के मार्कअप को अनुकूलित करने के लिए।

उदाहरण

यह खोज परिणाम के रूप में सामग्री प्रकार के टीज़र का उपयोग करने के तरीके का एक उदाहरण है। अगला स्निपेट थीम के टेम्प्लेट में जाता है

/**
 * Implements template_preprocess_search_result
 * @param type $vars
 */
function MYTHEME_preprocess_search_result(&$vars) {
  $node = $vars['result']['node'];
  if ($node->nid) { // if the result is a node we can load the teaser
    $vars['teaser'] = node_view($node, 'teaser'); 
  }
}

यह स्निपेट खोज-result.tpl.php फ़ाइल है:

<article>
  <?php if ($teaser) : // for nodes we can use the teaser as search result ?>
    <?php print drupal_render($teaser); ?>
  <?php else : // for other results we use the default from core search module ?>  
    <?php print render($title_prefix); ?>
    <h3><a href="<?php print $url; ?>"><?php print $title; ?></a></h3>
    <?php print render($title_suffix); ?>
    <?php if ($snippet) : ?>
      <p><?php print $snippet; ?></p>
    <?php endif; ?>
  <?php endif; ?>
  <?php if ($info): ?>
    <footer><?php print $info; ?></footer>
  <?php endif; ?>
</article>

1
इस सूत्र पर सर्वश्रेष्ठ व्याख्या।
डिजिटोफर

9

मैंने हाल ही में एक Drupal 7 वास्तुकला वेबसाइट पर खोज परिणामों के साथ काम करने में अच्छा समय बिताया, और डिस्प्ले सूट मॉड्यूल का उपयोग करने पर बस गया ।

डिस्प्ले सूट मॉड्यूल में खोज परिणामों को नियंत्रित करने के लिए एक शानदार तरीका है: यह आपको खोज परिणामों में अपने टीज़र का आसानी से उपयोग करने की अनुमति देगा। यह मॉड्यूल के अनुचर द्वारा एक ट्यूटोरियल है जो खोज परिणामों के लिए इसका उपयोग करने पर ध्यान केंद्रित करता है।

द्रुपाल के साथ हमेशा की तरह, एक ही काम करने के कई तरीके होते हैं। मुझे यह तरीका पसंद आया क्योंकि इसने मुझे सामग्री प्रकार से परिणाम तोड़ने की अनुमति दी।


1
मुझे पता है कि यह उत्तर 2012 से है, लेकिन मुझे लगता है कि मॉड्यूल पृष्ठ पर यह कहता है कि खोज कार्यक्षमता अब Drupal 8 में शामिल नहीं है। जो यह बताता है कि Drupal 7 को अपनाने के लिए यह सबसे अच्छी बात नहीं हो सकती है, यह मानते हुए कि आप भविष्य में किसी तरह का सबूत चाहते हैं। । यह अपने आप से परीक्षण नहीं है, हालांकि, सिर्फ एक सिर।
ja_him
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.