Araç çubuğunu local.xml ile ürün listesinden kaldırın


13

Düzen güncellemelerim için local.xml kullanmaya alışkınım, ancak araç çubuğunu ürün listesi bloğundan remove veya unsetChild yöntemlerini kullanarak kaldıramıyorum.

Herkes bu gerçekten mümkün olmadığını söyleyebilir miyim yoksa yanlış bir şey mi yapıyorum?

Denedim:

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

ve

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

ve aynı zamanda <remove name="" />yöntemler de ama hiçbir şey işe yaramıyor.

Yanıtlar:


11

Ve bir şeyi geçersiz kılmadan onu kaldıramazsınız. Burada nasıl getToolbarBlock()bir yöntem gibi görünüyor:

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

Bu getToolbarBlockName, mizanpajda belirli bir ada sahip bir değer (döndürülen değer ) varsa, o bloğun döndürüleceği anlamına gelir. aksi takdirde tür ile yeni bir blok oluşturulur catalog/product_list_toolbarve bu yöntem yöntem tarafından döndürülür.

[EDIT] Sadece çılgın bir fikrim vardı. Araç çubuğu blok türünü neden değiştirmiyorsunuz? Bu şekilde bir araç çubuğu olarak görüntülenmez. Ben denemedim ama bence buna değer.
Gibi bir şey:

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

Aynı adı taşıyan ancak farklı türde bir blok eklemek demek. Eğer işe yaramazsa, lütfen kullanmayın; sadece fikirde :)


1
Magento ile beni gerçekten sinirlendiren kod böyle. Bu yüzden şimdi bazı güzel düzen xml yeterli olurdu sınıfları veya şablonları geçersiz kılmalıyım
Marty Wallace

Cevabı çalışacak kadar çılgın bir fikirle güncelledim.
Marius

@MartyWallace - en azından ilk etapta XML düzeni var. Ben insanlar nasıl kullanılacağını bilmek kez düzen XML "fare bir çerez vermek" kategorisine düşüyor düşünüyorum.
benmarks

1
Disk belleği ayarlamak için setCollection işlevine ihtiyacımız olduğu için farklı tip sorunlara neden olabilir
Alex

1
gerçekten sinir bozucu, daha az müdahaleci bir kesmek jQuery (belge) .ready (function () {jQuery ('. limiter'). hide ();});
Danny Z

8

Sizin de local.xmldosyaya aşağıdakileri ekleyin:

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

Bir kategori sayfasındaki özel düzen güncellemesi için bu en iyi yanıttır.
SwiftOtter'de Joseph

2

Geliştiricilerin bir şeyleri inşa etmesinin tuhaf bir yolu nedeniyle bunu kaldıramazsınız veya XML aracılığıyla ayarlayamazsınız. Ancak boş bir şablon oluşturabilir ve araç çubuklarını bunun yerine bu boş şablona yönlendirebilirsiniz.

<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>

Bu, Normal kategorilerinden, Bağlantılı kategorilerinden ve arama sayfasından kaldırır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.