दृश्य के लिए संदर्भ फ़िल्टर के रूप में वर्गीकरण नाम


18

D7 में मैं एक वर्गीकरण अवधि के अनुसार एक दृश्य को फ़िल्टर करने में सक्षम था नाम URL से लिया गया। एक उदाहरण यह URL होगा

http://www.gbyte.co/tags/drupal-planet/rss.xml

"ड्रुपल-प्लैनेट" को टैक्सोनॉमी टर्म आईडी में बदल दिया जाएगा, जो तब दृश्य परिणामों को तदनुसार फ़िल्टर करेगा।

अब मैंने एक प्रासंगिक D8 दृश्य को एक प्रासंगिक फिल्टर "कंटेंट: टैग (फ़ील्ड_टैग्स)" के साथ सेट किया है, फ़ील्ड_टैग्स टैक्सोनॉमी फ़ील्ड है। हालाँकि, D8 दृश्य केवल परिणाम दिखाएगा जब मैं URL में वास्तविक शब्द आईडी इस तरह से पास करूंगा:

http://www.gbyte.co/tags/9/rss.xml

मैं चाहूंगा कि यह D7 जैसे शब्द के नाम के साथ भी काम करे । क्या कार्यक्षमता गायब है, या क्या मुझे दृश्य को अलग तरीके से कॉन्फ़िगर करने की आवश्यकता है?


इस पर कोई भी समाचार? मेरी एक ही समस्या है
२१

जवाबों:


20

टर्म अवधि आईडी के लिए परिवर्तित नाम फिल्टर दिखता लापता होने के लिए के लिए D8 दृश्य।

एक साइट-बिल्डर वर्कअराउंड, एक संबंध जोड़ने के लिए है , नोड पर टैक्सोनॉमी शब्द और फिर एक टेक्नोनॉमी शब्द जोड़ने के लिए : उपरोक्त फ़िल्टर का उपयोग करके प्रासंगिक फ़िल्टर के लिए नाम फ़िल्टर । सत्यापन मानदंड निर्दिष्ट करें चेकबॉक्स की जाँच करते हुए , अपने मान्यकर्ता को टैक्सोनॉमी शब्द के नाम पर सेट करें और फ़िल्टर करने के लिए उपयुक्त टैक्सोनॉमी की जांच करें ।


12
डी -8 में साइट-बिल्डर पॉटफ़ॉल, प्रासंगिक फ़िल्टर UI जोड़ते हैं: संदर्भ फ़िल्टर का शीर्षक 'नाम' है, और श्रेणी 'वर्गीकरण शब्द' है। 'वर्गीकरण' की खोज इस फ़िल्टर को सूचीबद्ध करने में विफल होगी, क्योंकि शीर्षक और विवरण केवल खोजे जाते हैं, श्रेणी नहीं।
कीथ

1
इसके अतिरिक्त आप कर सकते हैं शीर्षक के ऊपर लिख साथ {{ arguments.name }}प्रासंगिक फिल्टर की सेटिंग में।
cptstarling


3

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

यहाँ विचार हुक के लिए कोड है:

/**
 * Implements hook_views_pre_view().
 */
function my_module_views_pre_view(\Drupal\views\ViewExecutable $view, $display_id, array &$args) {
  if ($view->id() == 'blog' && $display_id == 'feed') {
    if (isset($args[0])) {
      $term = taxonomy_term_load_multiple_by_name($args[0], 'tags');
      if (empty($term)) {
        $term = taxonomy_term_load_multiple_by_name(str_replace("-", " ", $args[0]), 'tags');
      }
      if (!empty($term)) {
        $tid = key($term);
        $args[0] = $tid;
      }
    }
  }
}

2

शॉन कॉन के जवाब पर विस्तार करने के लिए:

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

उम्मीद है की वो मदद करदे!


1

मुझे नहीं पता कि क्या आपको अभी भी यह समस्या है, लेकिन मैं वांछित टैक्सोनॉमी शब्दावली का उपयोग करते हुए "टैक्सोनॉमी शर्तों पर नोड" के लिए एक संबंध बनाने में सक्षम था और फिर "टैक्सोनॉमी शब्द: नाम" के लिए उस संबंध का उपयोग करके एक प्रासंगिक फ़िल्टर बनाएं जो आपको अनुमति देता है TID के बजाय नाम के आधार पर सत्यापन करने के लिए


2
मुझे इस प्रश्न में वर्णित एक ही समस्या है, क्या आप अधिक स्पष्ट हो सकते हैं। मैं पहले से ही एक संबंध स्थापित करता हूं लेकिन संदर्भ फ़िल्टर केवल नाम के बजाय tid के साथ काम करता है। निश्चित रूप से हम डी 8 के बारे में बात कर रहे हैं। अग्रिम में धन्यवाद।
वैगनर

1

@kiethm ने इसे एप्रोच करने का सही तरीका प्रदान किया है - प्रासंगिक फ़िल्टर के तहत आपको 'नाम' का चयन करने की आवश्यकता है न कि 'टैक्सोनॉमी टर्म आईडी' की और फिर 'टैक्सोनॉमी टर्म नेम' का उपयोग करने के लिए अपना सत्यापन मानदंड निर्धारित करें ।


1

अरे मैं कुछ समय से इस जवाब की तलाश में था। मेरे जैसे किसी और के लिए यह कैसे काम करना है इसकी तलाश में, मैंने अपनी सफलता का रास्ता आंशिक रूप से यहाँ से और drupal.org के परिणामों में डाला और फिर निम्नलिखित में से भी: http://redcrackle.com/blog/adding-contextual-filter -View-Drupal-8

मैं Drupal 8 और Zircon का उपयोग कर रहा हूं। मैं बिल्कुल नया हूं इसलिए मैं गलत शब्दों का इस्तेमाल कर सकता हूं। मैं उस पृष्ठ की श्रेणी के आधार पर "पैनल फर्स्ट कॉल 1" में प्रासंगिक छवि लिंक बनाना चाहता था जो किसी पर है। मैंने जो किया वह संरचना> दृश्य> हिंडोला (उस ब्लॉक क्षेत्र में चित्र है) देखने के लिए> उन्नत> प्रासंगिक फ़िल्टर द्वारा जोड़ें> में वर्गीकरण शब्द आईडी है> डिफ़ॉल्ट मूल्य प्रदान करें में चयन करें: URL के लिए वर्गीकरण शब्द आईडी (जो बनाया गया था) मेरे लिए कोई मतलब नहीं है लेकिन जो भी हो)> फिर मैंने सभी तीन बक्से की जाँच की: शब्द पृष्ठ से डिफ़ॉल्ट फ़िल्टर लोड करें, नोड पृष्ठ से डिफ़ॉल्ट फ़िल्टर लोड करें, यह संबंधित टैक्सोनॉमी ब्लॉकों के लिए अच्छा है, शब्दावली द्वारा सीमाएं। फिर वोकैबुलरीज़ के लिए मैंने श्रेणियों की जाँच की।

ओफ़्फ़! आखिरकार! मुझे सही दिशा में इंगित करने के लिए आप सभी का यहाँ धन्यवाद! मैं यह नहीं समझा सका कि यह क्यों काम करता है, पूरी तरह से, लेकिन जो कुछ भी, यह करता है और मैं नियोजित रहूंगा।


1

मैंने लापता कार्यक्षमता को बहाल करने और फिर से ठीक से काम करने के लिए एक छोटा मॉड्यूल लिखा:

https://www.drupal.org/project/views_taxonomy_term_name_into_id

यह दृश्य में 'संदर्भ फ़िल्टरों' में उपयोग की जाने वाली टैक्सोनॉमी शर्तों के लिए 'शब्द को नाम में परिवर्तित करें' तर्क सत्यापनकर्ता को फिर से जोड़ता है। अधिक जानकारी और निर्देशों के लिए प्रोजेक्ट पेज देखें।

आनंद लें, डेरेक (dww)


0

आप इसे सामग्री जोड़कर कर सकते हैं : प्रासंगिक फ़िल्टर में वर्गीकरण शब्द आईडी है तो आप फ़िल्टर मानदंड समायोजित करके प्रासंगिक में वर्गीकरण का उपयोग कर सकते हैं

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


आपने D7 इंस्टॉलेशन से स्क्रीनशॉट लिया है। D8 में, कोई "Taxonomy Term" सत्यापनकर्ता नहीं है। इसके बजाय, "टैक्सोनॉमी टर्म आईडी", या "टैक्सोनॉमी टर्म नाम" दोनों हैं, जो URL से टैक्सोनॉमी नाम को स्वीकार नहीं करते हैं। वे केवल आईडी स्वीकार करते हैं।
gbyte.co

0

मैंने ड्रुपल -8 में इसे प्रासंगिक फ़िल्टर: "करोनॉमी टर्म: नाम" के नाम से हासिल किया है।

फिर Url से डिफ़ॉल्ट मान टाइप करें वर्गीकरण अवधि आईडी प्रदान करें

फिर निम्नलिखित सत्यापन मानदंडों को निर्दिष्ट करना:

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

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