2013-06-05 10 views
21

レイアウトxmlファイルを使用して既存のブロックを削除するにはどうすればよいですか?具体的には、 "top.switches"という名前のブロックから "currency"という名前のブロックを削除したいとします。このように、directory.xmlファイルに挿入されている:Magento - 更新XMLを使用してブロックを削除

<default> 
    <reference name="top.switches"> 
     <action method="unsetChild"><name>currency</name></action> 
    </reference> 
</default> 

そして:別のXMLファイルを介して1つのレイアウトxmlファイルで定義されたブロックを、削除するには2つの方法があります

<default> 
    <reference name="top.switches"> 
     <block type="directory/currency" name="currency" before="store_language" template="directory/currency.phtml"/> 
    </reference> 
    <reference name="head"> 
     <block type="core/template" name="optional_zip_countries" as="optional_zip_countries" template="directory/js/optional_zip_countries.phtml" /> 
    </reference> 
</default> 

答えて

36

あなたは、従来、それを行うことが期待されている方法:あなたは、さまざまなレイアウトXML要素hereの説明を見つけることができますが、それはアクションに利用可能な方法をカバーしていない

<default> 
    <reference name="top.switches"> 
     <remove name="currency" /> 
    </reference> 
</default> 

タグ。そのためには、unsetChild、unsetCallChild、insert、sortChildrenなどのあらゆる有用な機能を備えたブロッククラスapp/code/core/Mage/Core/Block/Abstract.phpを見る必要があります。

8

レイアウトディレクトリにlocal.xmlという名前のファイルを追加します。 local.xmlで "remove"タグを持つブロックを削除できます。ところでタグは、ファイルがあるべき「レイアウト」と「デフォルト」 の間でなければなりません削除:私はこれはMagentoの2.0で動作しないと思います

<?xml version="1.0" encoding="UTF-8"?> 
<layout> 
    <default> 
    <remove name="BLOCK_NAME" /> 
    </default> 
</layout> 
+0

もう – CarComp

+1

@CarComp Magentoの1と2は、と完全に異なるプラットフォームですレイアウトXMLに対するアプローチが非常に異なるため、正しいと思います。 – Navarr

+0

@CarCompあなたはM1とM2がremove要素に関するどれほど似ているのか驚くでしょう:http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/xml-instructions.html –

関連する問題