Hapus bilah alat dari daftar produk melalui local.xml

13

Saya sudah terbiasa menggunakan local.xml untuk pembaruan tata letak saya, namun sepertinya saya tidak bisa menghapus bilah alat dari blok daftar produk menggunakan metode hapus atau tidak disetel.

Adakah yang bisa mengatakan kalau ini sebenarnya tidak mungkin atau saya melakukan sesuatu yang salah?

Saya telah mencoba:

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

dan

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

dan juga <remove name="" />metode tetapi tidak ada yang berhasil.

Marty Wallace
sumber

Jawaban:

11

Dan Anda tidak akan dapat menghapusnya tanpa mengabaikan sesuatu. Begini caranya 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;
} 

Ini berarti bahwa jika suatu blok dengan nama tertentu (nilai dikembalikan oleh getToolbarBlockName) ada di tata letak maka blok itu akan dikembalikan. jika tidak, blok baru dibuat dengan tipe catalog/product_list_toolbardan dikembalikan oleh metode.

[EDIT] Saya baru saja mendapat ide gila. Mengapa tidak mengubah jenis blok bilah alat? Dengan begitu tidak akan dirender sebagai bilah alat. Saya belum mencobanya tetapi saya pikir itu sangat berharga.
Sesuatu seperti:

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

Maksud saya menambahkan blok dengan nama yang sama tetapi jenis yang berbeda. Jika tidak berhasil, jangan donvote; itu hanya dalam ide :)

Marius
sumber
1
Kodenya seperti ini yang benar-benar mengganggu saya dengan Magento. Jadi sekarang saya perlu menimpa kelas atau template di mana beberapa tata letak bagus xml sudah cukup
Marty Wallace
Saya telah memperbarui jawabannya dengan ide yang cukup gila untuk berhasil.
Marius
@ MartyWallace - setidaknya ada tata letak XML di tempat pertama. Saya pikir tata letak XML termasuk dalam kategori "beri mouse" setelah orang tahu cara menggunakannya.
patokan
1
Jenis yang berbeda dapat menyebabkan masalah, karena kita memerlukan fungsi setCollection untuk mengatur paging
Alex
1
benar-benar membuat frustasi, peretasan yang bahkan kurang mengganggu adalah menyembunyikannya menggunakan jquery dengan jQuery (document) .ready (function () {jQuery ('. limiter'). hide ();});
Danny Z
8

Dalam local.xmlfile Anda, tambahkan yang berikut ini:

<catalog_category_default>
    <!-- Remove Toolbar by setting a blank template -->
    <reference name="product_list_toolbar">
        <action method="setTemplate"><template /></action>
    </reference>
</catalog_category_default>
Mojo
sumber
Untuk pembaruan tata letak khusus pada halaman kategori, ini adalah jawaban terbaik.
Joseph at SwiftOtter
2

Tampaknya Anda tidak dapat menghapus ini atau menghapusnya melalui XML karena beberapa cara aneh devs membangunnya. Namun Anda dapat membuat templat kosong dan mengarahkan bilah alat ke templat kosong ini.

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

Itu akan menghapusnya dari kategori Normal, Kategori berlabuh dan halaman pencarian.

Chris Morris
sumber