दृश्य प्रासंगिक फ़िल्टर कैसे काम करता है?


9

मैं फिर से प्रासंगिक फिल्टर के आसपास अपना सिर लपेटने की कोशिश कर रहा हूँ! मैंने कुछ समय पहले इसका इस्तेमाल किया था लेकिन मैं फिर से पूरी तरह से लड़खड़ा गया। यहाँ मैं क्या करने की कोशिश कर रहा हूँ:

  1. इस क्लोन पेज में डाले गए वर्गीकरण शब्दों के साथ एक क्लोन सामग्री नोड पेज बनाएँ।

उदा .: EXAMPLE.com/white-shoes/blue

जब कोई उपयोगकर्ता / सफेद-जूते पृष्ठ पर पहुंचता है, तो यह मूल नोड पृष्ठ को सफेद रंग की ओर दिखाया जाएगा। अब यदि उपयोगकर्ता / सफेद-जूते / नीले रंग की भूमि पर एक ही नोड पेज दिखाएगा, लेकिन इस बार शरीर की सभी सामग्री को फिर से सफेद रंग की जगह नीले रंग से लिखा जाएगा।

में दृश्य मैं के पथ के साथ एक पृष्ठ प्रदर्शन बनाना होगा:% /%

अब मैं nid को पुनः प्राप्त करने के लिए एक प्रासंगिक फ़िल्टर बनाऊंगा। मैं सामग्री जोड़ता हूं: एक संदर्भ फ़िल्टर के रूप में nid। मैं एक निश्चित मूल्य प्रदान करता हूं और इस PHP कोड में डाल देता हूं:

$ x = drupal_lookup_path ('स्रोत', arg (0));

$ y = विस्फोट ('/', $ x);

वापसी $ y 1 ;

वह PHP कोड मूल रूप से URL के / सफेद-जूते वाले हिस्से को NID में परिवर्तित करता है। लेकिन यह काम नहीं करता है। मैंने टर्मिनल के माध्यम से ड्रश के माध्यम से कोड का परीक्षण किया और मुझे वास्तव में एक लौटा हुआ परिणाम मिला, इसलिए मुझे पता है कि यह काम करता है।

मैं टैक्सोनोमी शब्द के नाम के लिए भी ऐसा ही करता हूं और उस एशवेल के लिए एक संदर्भ फ़िल्टर जोड़ता हूं। इस बार मैं PROVIDE A DEFAULT VALUE चुनता हूं और RAW VALUE FROM URL का चयन करता हूं और 2 तर्क का चयन करता हूं ।

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

जैसा कि आप देख सकते हैं जब मैं संदर्भ फ़िल्टर के लिए एक पूर्वावलोकन दृश्य इनपुट: AAA / BBB / CCC। मेरे डिफ़ॉल्ट मान को अनदेखा कर दिया जाता है। यह 2 तर्क को हथियाने वाला माना जाता है, लेकिन यह केवल 1 ही प्राप्त कर रहा है। SQL स्टेटमेंट को देखें और आप देखेंगे कि यह एएए हो रहा है जब इसे बीबीबी होना चाहिए।

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

तो सवाल यह है कि मैं क्या गलत कर रहा हूं या क्या मैं जो पूरा करना चाहता हूं उसका बेहतर समाधान है?


यह बेवकूफ लगता है, लेकिन क्या आप थोड़ा और विस्तार दे सकते हैं? मुझे यह समझने में थोड़ा समय हो रहा है कि आप क्या कर रहे हैं, अधिक यह जानने की कोशिश कर रहे हैं कि आप इसे कैसे करना चाहते हैं। कच्चे मान या डिफ़ॉल्ट प्रदान करने के बजाय, URL से सामग्री आईडी का उपयोग करें। वह एनआईडी प्रदान करेगा।
kyletaylored

हाय काइल, आपके url पर उतरने के बाद से कोई भी कंटेंट ID नहीं है: / white-shoes / blue .... / ब्लू url doesnt मौजूद नहीं है क्योंकि इसके विचार प्रस्तुत हैं। इसलिए वहाँ कोई सामग्री आईडी हड़पने के लिए नहीं है ... यह यूआरएल के 1 तर्क को पार्स करने के लिए है तो उस यूआरएल को एक एनआईडी पथ में परिवर्तित करें।
पटोशी at ト パ

जवाबों:


2

यहां एक वीडियो और इसके संबंधित लेख है जो आपको बताएंगे कि उन्हें कैसे उपयोग करना है, उदाहरण पालतू जानवर (कुत्ते, बिल्लियां) का उपयोग करता है जो एक सरल पर्याप्त उदाहरण हो सकता है यह समझने में मदद करने के लिए कि कैसे दृश्य फ़िल्टर का उपयोग किया जाए।

VIDEO: https://www.youtube.com/watch?v=lJFMTDuaxy8 (YouTube वीडियो शॉर्ट-url: lJFMTDuaxy8)

लेख: http://www.metaltoad.com/blog/use-drupal-contextual-filters-views


5

प्रासंगिक फ़िल्टर को फ़िल्टर करने के लिए उपयोग किया जाता है, URL तर्कों द्वारा दृश्य का आउटपुट, यू इस तर्क को मैन्युअल रूप से इस प्रारूप में पास कर सकता है:

<?php print views_embed_view($name,$display_id,$arg1,$arg2,$arg3); ?>

जहाँ "$ name" आपके दृश्य का नाम है (उदा। example_view ') और' $ display_id 'आपके विचार का प्रदर्शन प्रकार (उदा।' डिफ़ॉल्ट ') और "$ arg1, $ arg2, $ arg3" तर्क हैं। जैसे URL में है।

URL तर्कों में निम्नलिखित संरचना है:

http://example.com/arg_1/arg_2/arg_3 (arg_2 में पथ घटक 2 (दृश्य सेटिंग पृष्ठ में) है)।

जब फ़िल्टर मान उपलब्ध नहीं है:

इसका मतलब है कि ड्रुपल को कोई फ़िल्टर नहीं मिल सकता है।

डिफ़ॉल्ट मान प्रदान करें:

जब फ़िल्टर मान उपलब्ध नहीं होता है, तो आप इस विकल्प का उपयोग व्यू आउटपुट के लिए एक फ़िल्टर बनाने के लिए कर सकते हैं, यह फ़िल्टर PHP कोड (यदि PHP फ़िल्टर मॉड्यूल सक्षम है) हो सकता है या इसे URL तर्क से मान प्राप्त हो सकता है -> (रॉ मान url से)। अपवाद टेक्स्टबॉक्स आपको मूल्य को धोखा देने और सभी परिणामों को प्रदर्शित करने की अनुमति देता है।

जब फ़िल्टर मान उपलब्ध होता है

इस मामले में आप अपनी आवश्यकताओं और कुछ अन्य विकल्पों के रूप में एक सत्यापन करते हैं, जब ड्रुपल फ़िल्टर मान पा सकते हैं।


दिए गए विचार_embed_view () फ़ंक्शन। मैं अपने सफेद / जूते / नीले रंग के उप मार्ग में कैसे लोड करूंगा? ध्यान रखें कि / नीले रंग के विचार से उत्पन्न के रूप में मौजूद नहीं है। जब कोई उपयोगकर्ता / नीले रास्ते पर पहुंचता है, तो उसे 1 तर्क को पार्स करना चाहिए और उस उपनाम का एनआईडी प्राप्त करना चाहिए और फिर उसकी सामग्री को लोड करना चाहिए। प्रासंगिक फ़िल्टर के साथ समस्या यह है कि फिल्टर वेल्यू के लिए PHP मूल्य उपलब्ध कराने का कोई तरीका नहीं है।
पटोशी at ト パ

@duckx, फ़िल्टर उपलब्ध होने पर PHP मान प्रदान करने के लिए एक उत्कृष्ट विकल्प है - VALIDATION (type: PHP Code)। इस विकल्प के साथ आप दृश्य वस्तु का उपयोग कर सकते हैं और अपनी जरूरत का हर काम कर सकते हैं। आपके मामले में /blueविचारों द्वारा उत्पन्न पथ का उपयोग उस उपनाम की नोड आईडी को लाने के लिए भी किया जाएगा।
जैक-पीएल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.