通过local.xml从产品列表中删除工具栏


13

我习惯于使用local.xml进行布局更新,但是似乎无法使用remove或unsetChild方法从产品列表块中删除工具栏。

谁能说这实际上是不可能的,或者我做错了吗?

我试过了:

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

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

,也是<remove name="" />方法太多,但没有任何作品。

Answers:


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就足够的类或模板
Marty Wallace

我已经用一个疯狂的想法来更新答案了。
马里斯(Marius)

@MartyWallace-至少首先存在布局XML。我认为,一旦人们知道如何使用布局XML,它就会属于“给cookie的鼠标”类别。
benmarks

1
不同的类型可能会造成问题,因为我们需要的setCollection功能设置页面
亚历

1
真正令人沮丧的是,一种更具侵入性的技巧是使用带有jQuery(document).ready(function(){jQuery('。limiter')。hide();})的jquery将其隐藏。
Danny Z

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>

对于类别页面上的自定义布局更新,这是最佳答案。
SwiftOtter上的约瑟夫,2017年

2

由于开发人员构建该事物的某种怪异方式,您似乎无法通过XML删除或取消设置此属性。但是,您可以创建一个空白模板,然后将工具栏指向该空白模板。

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

这会将其从“常规”类别,“锚定”类别和搜索页面中删除。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.