उजागर फ़िल्टर विचारों का उपयोग करते हुए खोजा गया कीवर्ड हाइलाइट करें?


12

एक दृश्य में और मैंने एक उजागर फ़िल्टर जोड़ा: खोज: खोज शब्द फ़िल्टर

यह ठीक काम करता है, लेकिन मैं परिणामों में खोजा गया कीवर्ड उजागर करना चाहूंगा।

मैं यह कैसे कर सकता हूं?


आप इसके लिए tpl फ़ाइल का उपयोग कर सकते हैं ..
सुमित मदन

हां, मुझे लगता है कि मुझे खोजे गए कीवर्ड को बदलने के लिए फ़ंक्शन का उपयोग करना चाहिए। लेकिन मैं खोजे गए कीवर्ड को कैसे लाऊं, और क्या होगा अगर एक से अधिक कीवर्ड हैं?
शेफेलोन

यदि आप jQuery का उपयोग कर सकते हैं तो यह करने के लिए एक छोटा मुश्किल तरीका है।
निकमासैक

हाँ, इसके बारे में सोचें कि कैसे प्राप्त करें .. आप jquery का उपयोग कर सकते हैं जैसा कि निखिल ने कहा: .. D
सुमित मदन

जवाबों:


7

आप कुछ ऐसा उपयोग कर सकते हैं जैसे कि हाइलाइट करें जो पेज पर किसी शब्द के सभी उदाहरणों को एक कक्षा में जोड़ता है और इसे एक स्थिर शब्द खिलाने के बजाय, आप खोज बॉक्स की सामग्री का उपयोग करेंगे।

आप StackOverflow सवाल में अन्य संस्करणों के लिए अधिक जानकारी और लिंक पा सकते हैं, jQuery के साथ एक शब्द हाइलाइट करें


मैं इसे काम करवाता हूं। जावास्क्रिप्ट है, लेकिन यह ठीक है। धन्यवाद।
शेफेलोन

11

Search_excerpt फ़ंक्शन का उपयोग करके आप खोजे गए कीवर्ड को हाइलाइट कर सकते हैं। यह कीवर्ड को बोल्ड दिखाता है।

पाठ के एक टुकड़े से स्निपेट्स लौटाता है, जिसमें कुछ विशेष कीवर्ड हाइलाइट किए जाते हैं। खोज परिणामों को स्वरूपित करने के लिए उपयोग किया जाता है।

एक उदाहरण नीचे दिया गया है,

उदाहरण के लिए: // यहाँ एक निकाय क्षेत्र दिखाया गया है

अपने विचारों में tpl फ़ाइल निम्नलिखित कोड जोड़ें

 <?php foreach ($rows as $id => $row): 

      $keys = $_GET['body_value'];
      $row = search_excerpt($keys, $row);
 ?>

यह खोज शब्द को उजागर करेगा, नीचे स्क्रीनशॉट देखें

यहाँ छवि विवरण दर्ज करें


यह काम करता है लेकिन यह दृश्य पंक्ति की संरचना को हटा देता है। दृश्य टीज़र के रूप में सामग्री (फ़ील्ड नहीं) दिखा रहा है। एक बार सर्च करने के बाद रिजल्ट का टीज़र नहीं बल्कि सिर्फ कच्चा डेटा दिखाई देता है। क्या इसे हल किया जा सकता है।
शेफलाइन

मैं देखता हूं कि search_excerpt फ़ंक्शन सभी मार्कअप को हटा देता है। क्या इसे किसी तरह से बदला जा सकता है?
शेफेलोन

मुझे लगता है कि यह सबसे अच्छा विकल्प है यदि विचारों को खेतों को दिखाने के लिए स्टाइल किया गया है, लेकिन उपयोगी नहीं है यदि दृश्य सामग्री दिखा रहा है (पूर्ण, टीज़र, ..)
शेफेलोन 10


0
function custom_views_pre_render(&$view) {
  if ($view->name == 'article') {
    $result = $view->result;
    foreach ($result as $i => $row) {
      $body = $view->result[$i]->field_body[0]['rendered']['#markup'];
      $strong = $view->exposed_data['body_value'];
      $view->result[$i]->field_body[0]['rendered']['#markup'] = str_replace($strong, '<strong>' . $strong . '</strong>', $body);
    }
  }
}

बॉडी फील्ड के लिए उदाहरण । अपने कस्टम मॉड्यूल में।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.