स्थानीय सूची के माध्यम से उत्पाद सूची से टूलबार निकालें


13

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

क्या कोई कह सकता है कि यह वास्तव में संभव नहीं है या मैं कुछ गलत कर रहा हूं?

मैंने कोशिश की है:

<action method="unsetChild">  
    <alias>toolbar</alias>
</action>

तथा

<action method="unsetChild">  
    <alias>product_list_toolbar</alias>
</action>

और भी <remove name="" />तरीके भी, लेकिन कुछ भी नहीं काम करता है।

जवाबों:


11

और आप किसी चीज को ओवरराइड किए बिना इसे निकाल नहीं पाएंगे। यहां बताया गया है कि getToolbarBlock()विधि कैसी है:

public function getToolbarBlock()
{
    if ($blockName = $this->getToolbarBlockName()) {
        if ($block = $this->getLayout()->getBlock($blockName)) {
            return $block;
        }
    }
    $block = $this->getLayout()->createBlock($this->_defaultToolbarBlock, microtime());
    return $block;
} 

इसका मतलब यह है कि यदि getToolbarBlockNameलेआउट में एक निश्चित नाम (मान द्वारा लौटाया गया ) मौजूद है तो उस ब्लॉक को वापस कर दिया जाएगा। अन्यथा एक नया ब्लॉक प्रकार के साथ बनाया जाता है catalog/product_list_toolbarऔर इसे विधि द्वारा वापस कर दिया जाता है।

[संपादित] मैं सिर्फ एक पागल विचार था। टूलबार ब्लॉक प्रकार क्यों नहीं बदलते? इस तरह यह एक टूलबार के रूप में प्रदान नहीं किया जाएगा। मैंने इसकी कोशिश नहीं की है लेकिन मुझे लगता है कि यह इसके लायक है।
कुछ इस तरह:

<reference name="product_list">
    <block type="core/template" name="product_list_toolbar" />
</reference>

मेरा मतलब है कि एक ही नाम के साथ एक ब्लॉक जोड़ना लेकिन एक अलग प्रकार। अगर यह काम नहीं करता है तो कृपया डॉनवोट न करें; यह सिर्फ विचार में है :)


1
इसका कोड इस तरह है कि वास्तव में मुझे Magento के साथ परेशान करता है। तो अब मुझे ओवरराइड क्लासेस या टेम्प्लेट्स पर जाने की ज़रूरत है जहाँ कुछ अच्छा लेआउट xml पर्याप्त होगा
मार्टी वालेस

मैंने जवाब को अद्यतन करने के लिए पर्याप्त एक पागल विचार के साथ अद्यतन किया है।
मारियस

@MartyWallace - कम से कम पहले स्थान पर लेआउट XML है। मुझे लगता है कि लेआउट XML "एक माउस एक कुकी दें" श्रेणी में आता है, जब लोग जानते हैं कि इसका उपयोग कैसे करना है।
benmarks

1
विभिन्न प्रकार की समस्याएं पैदा कर सकती हैं, क्योंकि हमें पेजिंग सेट करने के लिए सेटकोलिशन फ़ंक्शन की आवश्यकता होती है
एलेक्स

1
वास्तव में निराशा होती है, एक भी कम घुसपैठ की हैकिंग इसे jQuery के साथ jQuery का उपयोग करके छिपाने के लिए होगी (दस्तावेज़ (।) (फ़ंक्शन () {jQuery ('सीमक'))। Hide ();})
डैनी जेड

8

अपनी local.xmlफ़ाइल में निम्नलिखित जोड़ें:

<catalog_category_default>
    <!-- Remove Toolbar by setting a blank template -->
    <reference name="product_list_toolbar">
        <action method="setTemplate"><template /></action>
    </reference>
</catalog_category_default>

श्रेणी पृष्ठ पर कस्टम लेआउट अपडेट के लिए, यह सबसे अच्छा उत्तर है।
जोसफ स्विफ्टऑटर में

2

ऐसा लगता है कि आप इसे हटा नहीं सकते हैं या एक्सएमएल के माध्यम से इसे परेशान कर सकते हैं क्योंकि कुछ अजीब तरीके से देवों ने इस चीज का निर्माण किया। हालाँकि आप एक खाली टेम्पलेट बना सकते हैं और इसके बजाय टूलबार को इस रिक्त टेम्पलेट पर इंगित कर सकते हैं।

<catalog_category_default>
    <reference name="product_list_toolbar">
        <action method="setTemplate">
            <template>theme/package/blank.phtml</template>
        </action>
    </reference>
</catalog_category_default>
<catalog_category_layered>
    <reference name="product_list_toolbar">
        <action method="setTemplate">
            <template>theme/package/blank.phtml</template>
        </action>
    </reference>
</catalog_category_layered>
<catalogsearch_result_index>
    <reference name="product_list_toolbar">
        <action method="setTemplate">
            <template>theme/package/blank.phtml</template>
        </action>
    </reference>
</catalogsearch_result_index>

वह इसे सामान्य श्रेणियों, एंकर श्रेणियों और खोज पृष्ठ से हटा देगा।

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