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="" />メソッドもありますが、何も機能しません。

回答:


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は、人々がそれを使用する方法を知ると、「マウスにCookieを与える」カテゴリに分類されると思います。
ベンマーク

1
ページコレクションを設定するにはsetCollection関数が必要であるため、異なるタイプが問題を引き起こす可能性があります
アレックス

1
本当にイライラする、さらに邪魔にならないハックは、jQueryをjQuery(document).ready(function(){jQuery( '。limiter')。hide();});で使用して隠すことです。
ダニー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

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>

通常のカテゴリ、アンカーされたカテゴリ、および検索ページから削除されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.