मनमानी गहराई के सरल टैक्सोनॉमी ब्राउज़र के निर्माण का स्वच्छ तरीका


23

मैंने निम्नलिखित कार्य करने के लिए एक स्वच्छ तरीका निर्धारित करने में दिन बिताए हैं:

  1. एक शब्दावली में सभी शीर्ष-स्तरीय शब्दों की एक सूची को उनके बाल शब्दों के लिंक के साथ प्रदर्शित करें
  2. एक लिंक पर क्लिक करने पर, उन शर्तों के बच्चों की सूची में ले जाएं ।
  3. विज्ञापन सबसे कम-स्तरीय अवधि तक का इन्फिनिटम, जिसके लिए उस शब्द के साथ टैग किए गए नोड्स की एक सूची प्रदर्शित की जाएगी।

ऐसा लगता है कि यह बहुत ही सामान्य रूप से आवश्यक कार्यक्षमता होगी, लेकिन मुझे कोई भी समाधान नहीं मिल सकता है जो मनमानी गहराई को संभाल सकता है, खासकर यदि सभी पेड़ एक ही गहराई तक नहीं उतरते हैं।

एक आदर्श समाधान वह होगा जो व्यू 3, कॉन्टेक्ट्स, एंटिटीफिल्डक्वायरीज, या ड्रुपल 7 में अच्छी तरह से समर्थित किसी भी चीज का उपयोग करता है।

मैं तीन नोड्स के साथ एक सरल दृश्य बनाकर लगभग वही कर सकता हूं जो मैं चाहता हूं: टर्म रिलेशनशिप (टर्म, टर्म पैरेंट, और टर्म पेरेंट्स पेरेंट्स) और उपयोगकर्ता जो क्रमिक संदर्भ फिल्टर के लिए हैं। इसके साथ एकमात्र समस्या यह है कि यदि बहुत कम गहराई वाले शब्द के साथ एक नोड है, तो इसे "अनियंत्रित" के रूप में सूचीबद्ध किया जाता है और एक मृत लिंक उत्पन्न करता है। ऐसा करने के बजाय मैं चाहूंगा कि यह अगले बच्चे के लिए उपलब्ध लिंक से जुड़ा हो।

जवाबों:


23

मुझे केवल व्यू मॉड्यूल के साथ ऐसा करने का एक तरीका सूझा। यह सही नहीं है - यह टैक्सोनॉमी वंश के साथ एक अच्छा यूआरएल और ब्रेडक्रंब उत्पन्न नहीं करता है जिस तरह से एक एकल गहराई के टैक्सोनॉमी के लिए मेरा समाधान करेगा।

स्थैतिक गहराई ब्राउज़र

स्थैतिक गहराई की एक वर्गीकरण के लिए (जहां सभी शब्दों में बच्चे की शर्तों की समान गहराई है), आप निम्नलिखित कार्य करेंगे:

  1. नोड्स का एक दृश्य बनाएँ
  2. टैक्सोनॉमी टर्म (टर्म) से संबंध जोड़ें
  3. टर्म (जनक) के माध्यम से सुलभ, टैक्सोनॉमी टर्म पैरेंट से संबंध जोड़ें
  4. माता-पिता (अभिभावक माता-पिता) के माध्यम से सुलभ, टैक्सोनॉमी टर्म पेरेंट से संबंध जोड़ें
  5. चरण 4 को अपनी वर्गीकरण की गहराई के लिए आवश्यक के रूप में कई बार दोहराएं।
  6. प्रत्येक के लिए प्रासंगिक फ़िल्टर जोड़ें और सुनिश्चित करें कि वे उचित क्रम में हैं। जब URL URL में न हो तो सारांश प्रदर्शित करने के लिए सेट करें।
  7. आप शायद प्रत्येक फ़िल्टर के लिए ब्रेडक्रंब और शीर्षक को ओवरराइड करना चाहते हैं।
  8. ???
  9. फायदा

चर गहराई ब्राउज़र

चर गहराई की एक वर्गीकरण के लिए (जहां कुछ पेड़ों में दूसरों की तुलना में घोंसले के गहरे स्तर होते हैं), यह थोड़ा अधिक जटिल है:

  1. अपनी शब्दावली में एक नया शीर्ष-स्तरीय शब्द (फू) जोड़ें और इसके तहत अन्य सभी शर्तें रखें।
  2. एक ऐसे शब्द के साथ शब्दों का एक दृश्य बनाएँ, जो शब्द नाम प्रदर्शित करता है
  3. प्रासंगिक फ़िल्टर जोड़ें: वर्गीकरण शब्द: मूल शब्द
  4. जब डिफ़ॉल्ट मान URL में नहीं है, तो डिफ़ॉल्ट मान प्रदान करें
  5. अपने शीर्ष-स्तरीय शब्द (फू) के लिए डिफ़ॉल्ट मान सेट करें
  6. सत्यापन मानदंड निर्दिष्ट करें
    • मान्यकार: वर्गीकरण शब्द
    • मानदंड: आपकी शब्दावली का नाम
    • फ़िल्टर मान प्रकार: शब्द का नाम परिवर्तित शब्द ID के लिए
  7. दृश्य में अनुलग्नक जोड़ने के लिए व्यू पैनल के शीर्ष पर "+ जोड़ें" बटन पर क्लिक करें।
  8. केवल इस अनुलग्नक में जोड़ें (ओवरराइड करें) संबंध: वर्गीकरण शब्द: अवधि वाली सामग्री
  9. केवल इस अनुलग्नक में जोड़ें (ओवरराइड) प्रदर्शन: फ़ील्ड: नोड शीर्षक नोड्स से जुड़ा हुआ है, और इसे (केवल इस अनुलग्नक से हटा दें) प्रदर्शन: फ़ील्ड: शब्द का नाम!
  10. केवल इस अनुलग्नक में जोड़ें (ओवरराइड) संदर्भ फ़िल्टर: वर्गीकरण शब्द: नाम
  11. जब फ़िल्टर मान उपलब्ध नहीं होता है, तो डिफ़ॉल्ट मान प्रदान करें: URL से रॉ मान: पथ घटक: 2 (या अधिक अगर आपके पृष्ठ पथ में 1% है)
  12. अनुलग्नक सेटिंग: संलग्न करें: [आपके द्वारा अभी बनाए गए पृष्ठ प्रदर्शन का नाम]
  13. ???
  14. फायदा

संदर्भ के लिए दृश्य 'UI का स्क्रीनशॉट: यहाँ छवि विवरण दर्ज करें


अच्छी तरह से किया! प्रश्न और आपके उत्तर दोनों को अपवित्र करना - ऐसा लगता है कि करने की आवश्यकता के लिए काफी सामान्य बात है और आपका समाधान मेरे द्वारा शुरू की गई किसी भी चीज़ से बेहतर है, जबकि शुरू में उत्तर देने की कोशिश कर रहा था।
aendrew

8
  1. टैक्सोनॉमी के प्रकार का एक दृश्य बनाएँ
  2. टैक्सोनॉमी शब्द के प्रकार का एक संदर्भ फ़िल्टर जोड़ें : मूल शब्द
  3. सेट डिफ़ॉल्ट मान प्रदान करें और निर्धारित के रूप में रखना। शीर्ष जनक शब्द की शब्द आईडी दें
  4. फ़ील्ड के रूप में टैक्सोनॉमी शब्द आईडी जोड़ें और इसे प्रदर्शन से बाहर निकालें
  5. एक वर्गीकरण शब्द जोड़ें नाम पर क्लिक करें इस क्षेत्र को एक कड़ी के रूप में रखें; लिंक को "पाथ-यू-सेट-इन-व्यू / [tid]" के रूप में
    दें: नोट: आपको "इस क्षेत्र को इसके करबद्ध शब्द पृष्ठ से लिंक" अनचेक करना चाहिए

जब आप दृश्य पृष्ठ पर जाते हैं, तो आप शीर्ष माता-पिता के बच्चों को देखेंगे; उदाहरण के अनुसार आपको मिलेगा:

  • term1
  • TERM2

जब आप term1 पर क्लिक करते हैं तो आपको बच्चे मिल जाते हैं। जब तक आप टर्म १.१.१ तक नहीं पहुँचते। यदि आप अभी तक टर्म 1.1.1 पर क्लिक करते हैं तो आपको कोई परिणाम नहीं मिलेगा। यह प्राप्त करने के लिए कि हमें उपरोक्त दृश्य में एक और व्यू ब्लॉक बनाने की आवश्यकता है।

  1. एक ब्लॉक जोड़ें
  2. निकालें मौजूदा प्रासंगिक फिल्टर और क्षेत्र
    नोट: जब आप को दूर उन्हें सुनिश्चित करें कि आप का चयन इस पृष्ठ (अधिक सवारी) शीर्ष पर ड्रॉप डाउन से करने के लिए अगले के लिए अन्य बुद्धिमान क्षेत्रों और प्रासंगिक फिल्टर आप पृष्ठ में बनाया भी गया होगा ।
  3. एक नया संदर्भ फ़िल्टर जोड़ें टैक्सोनॉमी शब्द: टर्म आईडी
  4. एक रिश्ता जोड़ें वर्गीकरण शब्द: अवधि के साथ सामग्री
  5. सामग्री शीर्षक जोड़ें और आप शीर्ष पर ड्रॉप डाउन से संबंध का उपयोग करते हैं।
  6. दृश्य सहेजें और हमारे द्वारा बनाए गए पृष्ठ पर वापस जाएं (यह महत्वपूर्ण अन्य बुद्धिमान है जिसे आप अगला चरण पूरा नहीं कर पाएंगे
  7. FOOTER OR HEADER में एक फ़ील्ड जोड़ें
  8. सूची से "ग्लोबल: व्यू एरिया" का चयन करें और ड्रॉप डाउन से हमने जो ब्लॉक बनाया है उसका चयन करें सम्मिलित करने के लिए देखें जब आप वहां हैं तो इन्हेरिट रेफ़रल फ़िल्टर की जाँच करें ताकि हम इस दृश्य से मान को ब्लॉक तक भी पास कर सकें
  9. डिस्प्ले को चेक करें भले ही दृश्य का कोई परिणाम न हो, ताकि जब यह दृश्य दिखाई न दे तो परिणाम तब भी दिखाई देगा

दृश्य सहेजें, और आप कर रहे हैं।


मैंने मोहम्मद शमीम की स्पष्ट व्याख्या का अनुसरण किया। धन्यवाद, सही काम करता है !!
स्टीवन

3

मुझे लगता है कि आप जो चाह रहे हैं वह व्यू ट्री है , एक कंट्रिब्यूल मॉड्यूल है जो टैक्सोनॉमी शर्तों के पेड़ के निर्माण के लिए व्यू का उपयोग करता है ।

(मुझे एक सेकंड दें और मैं इसे टैक्स फ़ील्ड देखने के उपयोग के बारे में एक त्वरित लिखूंगा)

जाहिरा तौर पर उस मॉड्यूल के पास एक मुद्दा है जो इसे वर्गीकरण की शर्तों के साथ काम करने से रोकता है। बू।

उस ने कहा, मुझे निम्नलिखित कोड मिला जो ऐसा लगता है जो आप चाहते हैं (आप इसे कुछ सुंदर अल्पविकसित jQuery कोड के माध्यम से प्रदर्शित / छिपा सकते हैं):

<?php

// The ID of the taxonomy vocabulary for which you'd like to create a nested list
$vid = 10;

$depth = 0;
$num_at_depth = 0;
$tree = taxonomy_get_tree($vid);

print "<ul class=\"menu\">\n<li>";
foreach ($tree as $term) {
  $diffdepth = 0;
  if ($term->depth > $depth) {
    print "\n<ul>\n<li>";
    $depth = $term->depth;
    $num_at_depth = 0;
  }
  if ($term->depth < $depth) {
    $diffdepth = $depth - $term->depth;
    while ($diffdepth > 0) {
      print "</li>\n</ul>\n";
      $diffdepth--;
    }
    $depth = $term->depth;
  }
  if (($term->depth == $depth) && ($num_at_depth > 0)) {
    print "</li>\n<li>";
  }
  print l($term->name, 'taxonomy/term/' . $term->tid);
  $num_at_depth++;
}
print "</li>\n</ul>\n";

" पृष्ठों के लिंक के साथ नेस्टेड श्रेणी सूची "।


मैंने उस मॉड्यूल को सक्षम किया है और उसके साथ प्रयोग करने की कोशिश की है और मुझे दो समस्याएं हैं: 1. मुझे संदेह है कि यह आपको केवल एक फ्लैट सूची देता है, न कि एक बहु-पृष्ठ ब्राउज़िंग अनुभव और 2. मुझे यह काम करने के लिए नहीं मिल सकता है। एक कैसे सबसे उपयोगी होगा।
बाजी

अद्यतन उत्तर। माफी, जाहिर तौर पर व्यू ट्री में एक खुला मुद्दा फिर से है: टैक्सोनॉमी शब्दों का उपयोग करना। वैकल्पिक उत्तर पोस्ट किया गया।
जूल

यह क्रमिक रूप से पृष्ठांकित ब्राउज़र के बजाय एक सरल नेस्टेड सूची देने के लिए प्रतीत होता है।
बाज़

@beth - अगर मैं कुछ jQuery लिखता / लिखती हूँ जो माता-पिता / बच्चे की वस्तुओं को क्लिक करने पर उस सूची के तत्वों को छुपाता है तो क्या यह पर्याप्त होगा?
aendrew

मैं नहीं चाहता कि यह जावास्क्रिप्ट पर निर्भर हो।
शर्त

0

यदि आप केवल गतिशील टैक्सोनॉमी-ब्राउज़िंग पृष्ठों का एक सेट रखना चाहते हैं, तो मैं निम्नलिखित तरीके से जाऊँगा, जिसमें 3 व्यूज़ + टैक्सोनॉमी डिस्प्ले मॉड्यूल की आवश्यकता होगी जो आपको taxonomy/term/%पृष्ठों की सामग्री प्रदर्शित करने के लिए व्यूज़ का उपयोग करने की अनुमति देता है :

  1. शीर्ष स्तर की शर्तें - सूची के शब्द जिनके माता-पिता अशक्त हैं
  2. मध्य स्तर की शर्तें - सूची शब्द जिनके माता-पिता शून्य नहीं हैं। कोई परिणाम नहीं: प्रदर्शन # 3 देखें
  3. शर्तों के साथ नोड्स - शब्दों के साथ टैग की गई सूची नोड्स।

जैसा कि दृश्य 1 और 2 शायद इसी तरह से थीम पर आधारित होंगे, आप उन्हें एक दृश्य में प्रदर्शित करने के रूप में विलय करने पर विचार कर सकते हैं - यह अधिक आसानी से प्रबंधनीय होगा।

मैंने अपनी टैक्सोनॉमी के लिए उस दृष्टिकोण का सफलतापूर्वक उपयोग किया है। यह सौभाग्य से प्रत्येक स्तर पर समरूप था - एक दी गई शाखा या तो पत्तियों (नोड्स) या शाखाओं (शब्दों) के साथ समाप्त हो गई, लेकिन दोनों नहीं। यदि यह एक सीमा होगी, तो पहले इसका परीक्षण करें।

बेशक यह एक "छद्म कोड" है। आप संरचना को प्रतिबिंबित करने के लिए सत्यापन और फ़िल्टर, और एक अच्छा, तार्किक रूप से दिखने वाला पैथातो पैटर्न सेट करना चाहते हैं।

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