Xóa thanh công cụ khỏi danh sách sản phẩm thông qua local.xml


13

Tôi đã quen với việc sử dụng local.xml cho các cập nhật bố cục của mình, tuy nhiên tôi dường như không thể xóa thanh công cụ khỏi khối danh sách sản phẩm bằng cách sử dụng các phương thức remove hoặc unsetChild.

Bất cứ ai có thể nói nếu điều này thực sự là không thể hoặc tôi đang làm gì đó sai?

Tôi đã thử:

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

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

và các <remove name="" />phương pháp cũng vậy nhưng không có gì hoạt động.

Câu trả lời:


11

Và bạn sẽ không thể xóa nó mà không ghi đè lên một cái gì đó. Đây là cách getToolbarBlock()phương thức trông như sau:

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

Điều này có nghĩa là nếu một khối có một tên nhất định (giá trị được trả về getToolbarBlockName) tồn tại trong bố cục thì khối đó sẽ được trả về. mặt khác, một khối mới được tạo với kiểu catalog/product_list_toolbarvà được phương thức trả về.

[EDIT] Tôi vừa có một ý tưởng điên rồ. Tại sao không thay đổi loại khối thanh công cụ? Bằng cách đó, nó sẽ không được hiển thị như một thanh công cụ. Tôi đã không thử nó nhưng tôi nghĩ nó đáng giá.
Cái gì đó như:

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

Tôi có nghĩa là thêm một khối có cùng tên nhưng một loại khác. Nếu nó không hoạt động, xin đừng donwvote; nó chỉ là trong ý tưởng :)


1
Mã của nó như thế này thực sự làm tôi khó chịu với Magento. Vì vậy, bây giờ tôi cần phải ghi đè các lớp hoặc mẫu trong đó một số bố cục xml đẹp sẽ có hiệu lực
Marty Wallace

Tôi đã cập nhật câu trả lời với một ý tưởng đủ điên rồ để làm việc.
Marius

@MartyWallace - ít nhất là có bố cục XML ở vị trí đầu tiên. Tôi nghĩ rằng bố cục XML rơi vào danh mục "cho chuột một cookie" khi mọi người biết cách sử dụng nó.
đánh dấu

1
Loại khác nhau có thể gây ra sự cố, vì chúng ta cần chức năng setCollection để đặt phân trang
Alex

1
thực sự bực bội, một hack thậm chí ít xâm phạm hơn sẽ là ẩn nó bằng cách sử dụng jquery với jQuery (document). yet (function () {jQuery ('. limiter'). hide ();});
Daniel Z

8

Trong local.xmltệp của bạn thêm vào như sau:

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

Đối với cập nhật bố cục tùy chỉnh trên trang danh mục, đây là câu trả lời tốt nhất.
Joseph tại SwiftOtter

2

Có vẻ như bạn không thể xóa cái này hoặc bỏ đặt cái này qua XML do một số cách kỳ lạ mà các nhà phát triển đã tạo ra thứ đó. Tuy nhiên, bạn có thể tạo một mẫu trống và thay vào đó là các thanh công cụ cho mẫu trống này.

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

Điều đó sẽ xóa nó khỏi danh mục Bình thường, danh mục Neo và trang tìm kiếm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.