3.5.3. Views Arguments (Contextual Filters) — Views में संदर्भात्मक फ़िल्टर।
अक्सर हमें किसी विशेष यूज़र या नोड से संबंधित ब्लॉक दिखाने की आवश्यकता होती है — उदाहरण के लिए, किसी यूज़र के लेख या विज्ञापन दिखाना, या किसी नोड के पेज पर उस नोड के लेखक की जानकारी दिखाना।
लेकिन हर यूज़र के पास अपने स्वयं के विज्ञापनों की सूची होती है, हर नोड का अपना लेखक होता है, इसलिए इन ब्लॉक्स का डेटा हर नोड और यूज़र के लिए अलग-अलग होगा। ऐसे ब्लॉक्स के लिए हम Contextual Filters (संदर्भात्मक फ़िल्टर) का उपयोग करते हैं।
अब हम एक फ़िल्टर जोड़ेंगे ताकि केवल उसी विज्ञापन से संबंधित डेटा दिखाया जाए। इसके लिए हम nid (Node ID) फ़ील्ड द्वारा फ़िल्टर करेंगे।
Drupal में नोड का URL कुछ इस प्रकार होता है:
/node/13
जहाँ “13” उस नोड का nid है।
हम Views को यह बताएंगे कि “Contextual Filter” के माध्यम से nid द्वारा नोड्स को फ़िल्टर करे, ताकि प्रत्येक नोड पेज पर केवल संबंधित नोड का डेटा दिखाया जाए। इसके लिए nid फ़िल्टर जोड़ें:
अब हमें Default actions में यह सेट करना होगा कि फ़िल्टर को डिफ़ॉल्ट वैल्यू कहाँ से लेनी है। इस स्थिति में हम चुनेंगे:
Provide default value → Content ID from URL
अब आप Views के Preview फ़ॉर्म में इस फ़िल्टर का परीक्षण कर सकते हैं।
उदाहरण के लिए, यदि आपके पास nid = 7 वाला विज्ञापन है, तो प्रीव्यू फ़ील्ड में “7” दर्ज करें और “Preview” बटन पर क्लिक करें:
अब View केवल उसी नोड का डेटा प्रदर्शित करेगा जिसका nid दिया गया है। इस तरह Contextual Filters का उपयोग करके हम एक ही View को विभिन्न पेजों पर डायनामिक रूप से अलग-अलग डेटा दिखाने के लिए उपयोग कर सकते हैं।