Drupal 7 - Taxonomy Pages पर नोड्स का आउटपुट दबाएं


10

वहाँ एक मॉड्यूल स्थापित करने के लिए बिना (यानी सिर्फ template.pp में) नोड्स के उत्पादन को दबाने के लिए एक तरीका है?

एक वर्गीकरण शब्द के साथ टैग किए गए नोड्स "टैक्सोनॉमी इंडेक्स पेज" पर दिखाई देते हैं (उदाहरण के लिए yourite.com/taxonomy/term/ ईद])।

Drupal 7 में नया, Taxonomy Index पृष्ठ उनके साथ जुड़े फ़ील्ड हो सकते हैं। हालाँकि, यदि आप दृश्य (उदाहरण के लिए, नोड्स कैसे प्रदर्शित होते हैं, यह नियंत्रित करने के लिए) के साथ वर्गीकरण पृष्ठ की सवारी करने का प्रयास करते हैं, तो टैक्सोनॉमी इंडेक्स पृष्ठों पर फ़ील्ड दिखाई नहीं देंगे।

इसलिए मैंने अपने वर्गीकरण को टैक्सोनॉमी इंडेक्स पेज पर ब्लॉक के रूप में रखा है। इस तरह, मैं नियंत्रित कर सकता हूं कि नोड्स कैसे दिखाई देते हैं और अभी भी टैक्सोनॉमी इंडेक्स पेज फ़ील्ड हैं।

इस वजह से, टैक्सोनॉमी पेज अभी भी अपने नोड्स का उत्पादन कर रहा है। मैं उन्हें छिपाए गए नोड्स का टीज़र सेट करके छिपा सकता हूं, लेकिन यह अभी भी नोड्स को लोड करता है (और इसलिए नोड्स से जुड़े किसी भी CSS / Jquery को नोड्स प्रदर्शित नहीं होने के बावजूद)। मैं आदर्श रूप से अंदर से आदर्श रूप से नोड्स को कैसे दबा सकता हूं?


आप एक मॉड्यूल क्यों नहीं स्थापित करना चाहते हैं? मॉड्यूल के साथ कुछ चीजें हासिल करना आसान है।
मार्टिन श्लागनिटवित

जवाबों:


5

मुझे पता है, कि एक नो-मॉड्यूल समाधान चाहते थे, लेकिन Drupal 7 में, एक ऐसा मॉड्यूल है जो वास्तव में आपकी आवश्यकता है: शब्द नोड सूची को अक्षम करें

यदि आप शब्द सूची के आउटपुट को अक्षम करना चाहते हैं तो यह आपको शब्दावली के अनुसार चुनने देता है।


यह भी देखें: drupal.stackexchange.com/questions/3165/...
Benj

8

Http://www.wardontheweb.com/remove-node-lists-from-taxonomy-pages-in-drupal-7/ से समाधान मेरे लिए अच्छा है:

function THEMENAME_preprocess_page(&$vars){
   if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))){
     unset($vars['page']['content']['system_main']['nodes']);
     unset($vars['page']['content']['system_main']['pager']);
     unset($vars['page']['content']['system_main']['no_content']);
   }
}

नोट: आपको अपनी साइट का कैश रीसेट करना चाहिए।


नोट: यह साइट पर किसी भी टैक्सोनॉमी टर्म पेज के लिए नोड लिस्टिंग को अक्षम कर देगा ।
डंकनमो नोव

@Peter Lozovitskiy मैं ऐसा करता हूं और "नोटिस: अपरिभाषित स्थिर 'वर्गीकरण" का उपयोग त्रुटि के साथ हुआ!
Shekoufeh

@shekoufeh, मैंने कोड को ठीक कर दिया है (प्रतिस्थापित कॉमा) अब इस कोड को आज़माएं।
पीटर लोज़ोवित्स्की

2

आपको $ पृष्ठ चर से नोड्स को निकालना होगा।

में template.php आप इसे इस प्रकार कर सकते हैं:

function MY_THEME_preprocess_page(&$variables) {
  if(arg(0) == "taxonomy" && arg(1) == "term") {
    $variables['page']['content']['system_main']['nodes'] = null;
  }
}

अपने पेज में। इस कोड का उपयोग करें:

if(arg(0) == "taxonomy" && arg(1) == "term"){
  $page['content']['system_main']['nodes'] = null;
}

यह सभी वोकैबुलरीज़ और टर्म्स से नोड्स को हटा देता है । यदि आप उन्हें केवल कुछ शब्दों या शब्दावली के उपयोग से सभी शर्तों को हटाना चाहते हैं arg(2), जिसमें tidशब्द को लोड करना है और फिर यदि कथन को अद्यतन करना है।


यह काम करता है लेकिन फिर भी पेजर को छोड़ देता है। इसका मतलब है कि नोड्स लोड हो रहे हैं और सर्वर रिसोर्स को बर्बाद करते हैं। वैसे भी, टिप के लिए धन्यवाद, मैं पहले से ही आपके तरीके का उपयोग कर रहा हूं :) लेकिन सैद्धांतिक रूप से एक बेहतर अभी भी मौजूद है।
int_ua

0

आप टेम्प्लेट में कुछ भी कर सकते हैं। पीएचपी, लेकिन यह अनुशंसित नहीं है। CMS का उपयोग करने की बात यह है कि आप डेटा, व्यवहार और उपस्थिति को अलग करते हैं। Template.php फ़ाइल थीमिंग लेयर का हिस्सा है, और आपको इसका उपयोग अपनी साइट की दृश्य शैली को समायोजित करने के लिए करना चाहिए।

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

आपके मामले में (यदि मैं सही तरीके से समझता हूं) आप चाहते हैं कि टैक्सोनॉमी शब्द के फ़ील्ड को उस शब्द के साथ टैग किए गए नोड्स की सूची के ऊपर प्रदर्शित किया जाए। आप अपने विचार में URL से शब्द ID लेने वाले ब्लॉक को बनाकर फिर से बना सकते हैं और आपको आवश्यक जानकारी प्रदर्शित कर सकते हैं।


उत्तर के लिए धन्यवाद! मैं पहले से ही टैक्सोनॉमी पेज को ओवरराइड करने के लिए व्यूज़ का इस्तेमाल कर रहा हूं। हालाँकि, मैं एक पृष्ठ के बजाय ब्लॉक के रूप में व्यू ओवरराइड का उपयोग कर रहा हूं, क्योंकि मुझे टैक्सोनॉमी पृष्ठ पर फ़ील्ड को दृश्यमान रखने की आवश्यकता है। एकमात्र समस्या यह है कि टैक्सोनॉमी पेज अभी भी नोड्स को लोड करता है, जो अनावश्यक लगता है।
big_smile

मुझे समझ नहीं आ रहा है कि "टैक्सोनॉमी पेज पर फ़ील्ड्स" से आपका क्या मतलब है, लेकिन पेज कंटेंट को छुपाना और इसे ब्लॉक से बदलना सही समाधान की तरह नहीं लगता है। यदि आप नियमित पृष्ठ दृश्य के साथ टैक्सोनॉमी पृष्ठ को ओवरराइड करते हैं, तो वास्तव में आप किस कार्यक्षमता से गायब हैं? (हो सकता है कि आप अपने मूल प्रश्न को अपडेट कर सकते हैं, और मैं उसी के अनुसार अपने उत्तर में सुधार करूंगा।)
marcvangend

उत्तर के रूप में अच्छी तरह से अद्यतन किया।
marcvangend

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

0

मैं टैक्सोनॉमी सामान को छिपाने के लिए सीएसएस का उपयोग कर रहा था, लेकिन उनके प्रदर्शन को कस्टम और खाली करने के लिए सेट करना जो एक बेहतर विकल्प लगता है।

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