मैं दृश्य 3 के साथ शब्दों और नोड्स के साथ एक नेस्टेड पेड़ कैसे बनाऊं?


22

मुझे ऐसा ही कुछ बनाने की जरूरत है:

रंग (शब्दावली)

  • लाल (शब्द)
    • डार्क (शब्द)
      • नोड १
      • नोड २
    • प्रकाश (शब्द)
      • नोड ३
      • नोड 4
  • नीला (शब्द)
    • नोड ५
    • नोड 6
  • हरा (शब्द)
    • नोड 7
    • नोड 8

(बुलेट पॉइंट्स इंडेंट हैं।)
क्या ड्रुपल 7 और व्यू 3 के साथ ऐसा करने का कोई तरीका है? यदि नहीं, तो क्या ऐसा करने का एक और तरीका है?


स्पष्ट करने के लिए - जैसा कि शायद मैंने आपके सवाल को गलत समझा - आप एक पृष्ठ पर इस तरह की संरचना प्रदर्शित करना चाहते हैं?
बजे Maciej Zgadzaj

हां केवल 1 पेज पर
iStryker

जवाबों:


15

Refino के लिए धन्यवाद, मुझे निम्नलिखित मॉड्यूल का उपयोग करके एक अच्छा समाधान मिला:

नीचे आप स्पष्टीकरण पाते हैं:

  1. पहले एक नया वर्गीकरण बनाएं (इसे "फ़ोल्डर" कहते हैं)
  2. फिर, एक नया संदर्भ प्रकार बनाएं (इसे "तत्व" कहते हैं) "फ़ोल्डर" टैक्सोनॉमी शब्द के संदर्भ क्षेत्र के साथ
  3. एक नया "कंटेंट" दृश्य बनाएं (इसे "एलिमेंट व्यू" कहें)
  4. फ़ील्ड प्रदर्शन चुनें
  5. अपने संदर्भ क्षेत्र में प्रासंगिक फ़िल्टर जोड़ें
  6. एक नया "वर्गीकरण" दृश्य बनाएं (इसे "फ़ोल्डर ट्री" कहें)
  7. 2 फ़ील्ड (शब्द का नाम और शब्द आईडी) जोड़ें। दूसरे क्षेत्र को प्रदर्शन से बाहर रखा जा सकता है
  8. संबंध में: एक "मूल शब्द" जोड़ें
  9. एक तीसरा फ़ील्ड (शब्द आईडी) जोड़ें और इसे अपने मूल संबंध में असाइन करें। इस क्षेत्र को प्रदर्शन से बाहर रखा जा सकता है
  10. प्रारूप "ट्री (आसन्न मॉडल)" चुनें और मापदंडों में चुनें: ऑर्डर की गई सूची + मुख्य फ़ील्ड (आपका पहला tid), पैरेंट फ़ील्ड (पैरेंट संबंध के लिए असाइन किया गया आपका tid)। अब आपके पास अपने सभी शर्तों के साथ एक अच्छा पेड़ होना चाहिए
  11. एक 4 फ़ील्ड जोड़ें "ग्लोबल: व्यू" (यह व्यू फील्ड व्यू के साथ आता है) और अपना "एलिमेंट व्यू" चुनें, आर्ग्युमेंट्स टेक्स्टफील्ड में मास्टर ऐड [tid] को प्रदर्शित करें

उममीद है कि इससे मदद मिलेगी

चियर्स

IStryker द्वारा संपादित करें : यह वही है जो मुझे मिला है। केवल एक चीज जो मैंने बदली, वह थी एलीमेंट व्यू को टेबल व्यू बनाना , और डिफॉल्ट (पंक्ति और स्ट्रिप) क्लासेस को हटा दिया।

IStryker द्वारा अंतिम उत्पाद की छवि


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

यह जवाब मुझे वहां 90% मिला। मुझे प्रत्येक क्षेत्र पर डिफ़ॉल्ट कक्षाओं को हटाने की आवश्यकता थी; 'एलीमेंट व्यू' दृश्य पर तालिका कक्षाएं निकालें; थीम थोड़ा
iStryker 19

मैंने सामग्री दृश्य में डुप्लिकेट को कम करने के लिए एक कदम जोड़ा है। इसके अलावा, ग्लोबल में "तर्क" क्षेत्र: दृश्य को अब "प्रासंगिक फ़िल्टर" लेबल किया गया है और उपयोग करने के लिए टोकन "[! Tid]" है।
othermachines

क्या ऐसा करना संभव है लेकिन टैक्सोनॉमी के बजाय ऑर्गेनिक समूहों के साथ?
IAMOnStage

14

मैंने ड्रुपल 7.8 और व्यूज़ 3 + व्यू फील्ड में तीन दृश्य बनाए, एक दृश्य को शामिल करते हुए दूसरे दृश्य में घोंसला बनाया और मुझे ऐसा परिणाम मिला (संलग्न)। यहां छवि विवरण दर्ज करें

चरण-दर-चरण यह कैसे करें:

  1. शब्दावली बनाएं "रंग" और इसे टैग के साथ भरें।

  2. टैक्सोनॉमी नोड्स कलर्स का एक नया दृश्य बनाएं - मैं इसे "रंगों का नोड्स" कहता हूं

2.1 प्रारूप तालिका, सेटिंग्स: समूहीकरण क्षेत्र: वर्गीकरण शब्द: नाम

2.2 उन्नत प्रासंगिक फिल्टर: वर्गीकरण शब्द: मूल शब्द

2.3 उन्नत संबंध: वर्गीकरण शब्द: रंग का उपयोग करने वाली सामग्री

2.4 सेट फ़ील्ड: वर्गीकरण शब्द: शब्द आईडी, वर्गीकरण शब्द: नाम, (फ़ील्ड_ रंग) सामग्री: शीर्षक

2.5 फ़िल्टर मानदंड: वर्गीकरण शब्द: शब्दावली (= रंग)

2.6 यदि आप चाहते हैं कि आप टर्म आईडी, टैक्सोनॉमी शब्द: नाम के लिए "प्रदर्शन से बाहर निकालें" भी सेट कर सकते हैं

2.7 सेट पथ: / नोड्स के रंग /%

2.8 कोई परिणाम नहीं व्यवहार सेट करें: वैश्विक: क्षेत्र देखें (हम इसके बाद वापस आएंगे) 2.9 बचाएं

3. टैक्सोनॉमी नोड्स कलर्स का एक नया दृश्य बनाएं - मैं इसे "कलर्स 2 के नोड्स" कहता हूं

3.1 प्रारूप तालिका, सेटिंग्स: समूहीकरण क्षेत्र: कोई नहीं

3.2 उन्नत प्रासंगिक फिल्टर: वर्गीकरण शब्द: टर्म आईडी

3.3 उन्नत संबंध: वर्गीकरण शब्द: रंग का उपयोग करने वाली सामग्री

३.४ सेट फ़ील्ड्स: टैक्सोनॉमी शब्द: शब्द आईडी, टैक्सोनॉमी शब्द: नाम, (फ़ील्ड_ रंग) सामग्री: शीर्षक

3.5 फ़िल्टर मानदंड: वर्गीकरण शब्द: शब्दावली (= रंग)

3.6 अगर आप चाहते हैं कि आप टर्म आईडी, टैक्सोनॉमी शब्द: नाम के लिए "प्रदर्शन से बाहर निकालें" भी सेट कर सकते हैं

3.7 सेट पथ: / nodes-of-colours-2 /%

3.8 कोई परिणाम नहीं व्यवहार सेट करें: वैश्विक: कोई नहीं

३.९ बचाओ

वापस जाएं और "कलर्स के नोड्स" को फिर से संपादित करें

4.1 सेट पर जाएं कोई परिणाम नहीं व्यवहार: वैश्विक: क्षेत्र देखें

4.2 सम्मिलित करने के लिए दृश्य सेट करें: देखें: nodes_of_colors2 प्रदर्शन: पृष्ठ

4.3 सेट इनहेरिट प्रासंगिक फिल्टर

4.4 बचा

5 फिर से दृश्य पर वापस जाएं (टाइप टर्म)

5.1 टैक्सोनॉमी नोड्स कलर्स का एक नया दृश्य बनाएं - मैं इसे "कलर्स ट्री" कहता हूं

5.1 प्रारूप तालिका, सेटिंग्स: समूहीकरण क्षेत्र: कोई नहीं

5.2 उन्नत प्रासंगिक फिल्टर: कोई नहीं

5.3 उन्नत संबंध: वर्गीकरण शब्द: जनक शब्द

5.4 सेट फ़ील्ड: वर्गीकरण शब्द: शब्द आईडी, वर्गीकरण शब्द: शब्द आईडी, वर्गीकरण शब्द: नाम, दृश्य: शामिल देखें (देखें शामिल करें)

5.5 फ़िल्टर मानदंड (1): वर्गीकरण शब्द: शब्दावली (= रंग)

5.6 फ़िल्टर मानदंड (2): (अभिभावक) वर्गीकरण शब्द: अवधि

5.7 यदि आप चाहते हैं कि आप टर्म आईडी के लिए "प्रदर्शन से बाहर निकालें" और शामिल दृश्य का एक लेबल भी सेट कर सकते हैं

5.8 सेट पथ: / रंग-पेड़

5.9 कोई परिणाम नहीं व्यवहार सेट करें: कोई नहीं

5.10 बचाएं

... और यह होना चाहिए, आखिरकार।


क्या आप "5.4 सेट फ़ील्ड ... दृश्य: शामिल दृश्य" को थोड़ा और स्पष्ट कर सकते हैं। मुझे उसके लिए कहीं भी विकल्प नहीं दिखता। धन्यवाद
उवे

मुझे खेद है कि मैंने ऐसा नहीं लिखा है कि मैंने 7.x-3.0-rc1 + व्यू फील्ड 7.x-1.0-rc1
Refineo

ठीक है धन्यवाद। मैंने उनके मुद्दे पर कुछ निर्देशों का पालन किया साथ ही drupal.org/node/1171604
uwe

वाह, इस जवाब ने पास के 7 दिनों में बड़े पैमाने पर उठाव किया है। क्या किसी ने इसका परीक्षण किया है, या आपने / उन्होंने सिर्फ इसलिए upvoting किया क्योंकि @Refineo ने सबसे विस्तृत उत्तर दिया?
१।

मैंने इस वॉकथ्रू को फिर से आज़माया, और काम नहीं किया। मैं आप सभी से नफरत करता हूं जिन्होंने इस प्रश्न को बिना परीक्षण के अंतिम सप्ताह कहा है
iStryker

4

मैंने स्वयं इस के D6 या D7 संस्करण की कोशिश नहीं की है, लेकिन मुझे लगा कि मैं इसका उल्लेख करूँगा कि आप क्या देख रहे हैं: दृश्य ट्री मॉड्यूल - D7 प्रगति

संपादित करें : अब एक D7 संस्करण है, मॉड्यूल होमपेज व्यू ट्री चेकआउट करें


3

यदि आप URL से vid प्राप्त करना चाहते हैं तो निम्न कोड का उपयोग करें।

$vid = $_GET['vid'];
$tid = 0;
$level = 0;
print taxonomy_tree($vid, $tid, $level);
function taxonomy_tree($vid, $tid = 0, $level) {
  $children = taxonomy_get_children($tid, $vid);
  $output = '';
  if ($children) {
    $output .= '<ul>'; 
    foreach ($children as $child) {
      $level++;
      $output .= '<li class="taxonomy-tree-lvl' . $level . ' ">'; 
print $level;
      $output .= l($child->name, 'taxonomy/term/'. $child->tid) . '(' . taxonomy_term_count_nodes($child->tid) . ')'; 
      $output .= taxonomy_tree($vid, $child->tid, $level);
      $output .= '</li>';

      $level--; 
    }
    $output .= '</ul>'; 
  }

  return $output;

}

या निम्न कोड का उपयोग करें।

$vocabulary = taxonomy_vocabulary_load(2);//Here pass the vid
print $vocabulary->name;
$vid1 = $_GET['vid'];
if(!$vid1) {
$vid1 = 2;
print 'empty';
}
$vid = 2;
$parent = 0;
print get_child_terms($parent, $vid1);
 function get_child_terms($parent, $vid) {
      $sql = "SELECT td.tid, td.vid, td.name"
         . "  FROM {term_data} td"
         . "  JOIN {term_hierarchy} th on th.tid = td.tid"
         . " WHERE th.parent = %d"
         . "   AND td.vid = %d"
         . " ORDER BY td.weight, td.name";
    $terms = db_query($sql, $parent, $vid);
    $output = "";
    while ($aterm = db_fetch_object($terms)) {
        $output .= "<li>";
        $output .= l("$aterm->name", "taxonomy/term/$aterm->tid/all") . " ("
                .  taxonomy_term_count_nodes($aterm->tid) . ")</li>\n"
                .  get_child_terms($aterm->tid, $vid);
    }
    return ($output != "") ? "<ul style='list-style-type: none;
  margin: 0px 0px 0px 20px;
  padding: 0px;'>\n". $output ."</ul>\n" : "";
  }

2

बेशक है:

  1. अपनी पदानुक्रम शब्दावली सेट करें,
  2. इसे किसी भी चयनित सामग्री प्रकार में जोड़ें,
  3. संदर्भ फ़िल्टर के साथ उस सामग्री प्रकार से दृश्य सूची नोड बनाएं :

    • या तो "सामग्री: क्या वर्गीकरण शब्द आईडी है" - यदि आप केवल विशिष्ट अवधि के लिए सौंपे गए नोड्स को सूचीबद्ध करना चाहते हैं,
    • या "सामग्री: क्या टैक्सोनॉमी टर्म आईडी (गहराई के साथ)" है - यदि आप किसी विशिष्ट शब्द के साथ-साथ उसके बच्चे की शर्तों के लिए निर्दिष्ट नोड्स को सूचीबद्ध करना चाहते हैं।

      इस स्थिति में, फ़िल्टर कॉन्फ़िगरेशन में आपको गहराई सेट करने की आवश्यकता होती है - आप कितने स्तर नीचे (या ऊपर) चाहते हैं कि आप इस फ़िल्टर को काम करना चाहते हैं।

फिर, आपके विचार का URL http://mysite.com/myview और 'Red' tid = 1 है, यदि आप http://mysite.com/myview/1 पर जाते हैं, तो यह आपको उन सभी नोड्स को सूचीबद्ध करेगा जो किसी एक को सौंपा गया है शब्द 'लाल', 'डार्क' और / या 'लाइट'।


मैं एक विशिष्ट शब्द के लिए उत्तर की तलाश में नहीं हूं। मैं पूरी शब्दावली के लिए एक दृश्य की तलाश कर रहा हूँ
iStryker

और यही मैंने वर्णित किया है।
मकीज ज़गदजज

2

आप टैक्सोनॉमी मेनू मॉड्यूल का उपयोग कर सकते हैं । यहाँ इसके बारे में एक उद्धरण है (मॉड्यूल के परियोजना पृष्ठ से):

आसानी से मेनू में अपने वर्गीकरण स्वायत्तता बदल देता है!

विशेषताएं:

  • कस्टम मेनू प्रति शब्दावली
  • डिफ़ॉल्ट टैक्सोनॉमी टर्म पथ या कस्टम पथ का उपयोग करता है
  • दृश्य के साथ एकीकृत
  • पथौतो के साथ एकीकृत करें: URL / पाथ अलायसेस का उपयोग करें
  • अन्य मेनू मॉड्यूल के साथ हस्तक्षेप नहीं करता है

Drupal SE में आपका स्वागत है! taxonomy_menu एक अच्छा प्रोजेक्ट है और यह इसे अच्छी तरह से कर सकता है। ओ पी हालांकि यह दृश्य में करना चाहता है।
आयुष

0

मैं उसी को पूरा करने की कोशिश कर रहा हूं, लेकिन डी 7 में उपलब्ध नहीं है। वर्गीकरण ब्लॉक मॉड्यूल इसे ब्लॉक में करता है - विचार नहीं।


0

मेरा मानना ​​है कि मुझे इस समस्या को हल करने का एक और तरीका मिल गया है, और मुझे लगता है कि यह बाकी समाधानों की तुलना में सरल है। इसमें कोई अतिरिक्त मॉड्यूल शामिल नहीं है और आपको केवल एक दृश्य की आवश्यकता है।

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

  1. "वर्गीकरण शब्दावली: मशीन का नाम (= रंग)" द्वारा एक नया दृश्य और फ़िल्टर बनाएं
  2. रिश्ते जोड़ें: (1) Taxonomy term: Content using Colorऔर (2)Taxonomy term: Parent term
  3. फ़ील्ड्स को दृश्य में जोड़ें: (1) Title( field_color"संबंध" में चुनें और इस संबंध की आवश्यकता है ), (2) Taxonomy term name(संबंध का उपयोग न करें और प्रदर्शन से बाहर रखें) (3) Taxonomy term name(हां, फिर से, इस बार Parentसंबंध चुनें और बहिष्कृत करें प्रदर्शन से)।
  4. अब इसे फॉर्मेट की सेटिंग्स पर क्लिक करके ग्रुप करें: (1) ग्रुपिंग 1:, (Parent) Taxonomy term: Name(2)Taxonomy term: Name

किया हुआ। यदि आपके पास दो से अधिक स्तर हैं, तो माता-पिता के रिश्ते के रूप में माता-पिता का उपयोग करके एक और संबंध जोड़ें।

संपादित करें: यदि आपको उस संबंध की आवश्यकता नहीं है, जिसे आप समाप्त कर देंगे। माता-पिता को दो बार सूचीबद्ध किया जाएगा यदि उनके पास बच्चे की शर्तें हैं जो नोड्स द्वारा संदर्भित हैं। तो यह उत्तर को शीर्ष स्तर के शब्दों में नोड्स के बिना थोड़ा सीमित करता है जो संदर्भ को प्रदर्शित नहीं करेगा। इसके अलावा, क्योंकि छांटना संभवतः महत्वपूर्ण है, किसी भी सामग्री को एक शीर्ष स्तर के संदर्भ में रखने से संभवतः आपके लिए प्रदर्शन आवश्यकताओं के आधार पर समस्याएं पैदा होंगी।


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