Magento 2のレイアウトからブロックを削除


36

Magento 1では、これをレイアウトブロックに追加することで、レイアウトファイルによって追加されたブロックを削除できました。

<remove ="block_id_here" />

Magento 2でも同じことができますか?
実際の演習として、管理ダッシュボードページからダッシュボードブロックを削除する独自のモジュールがあるとします。これ
app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_index.xml使用してブロックが追加されます。

<referenceContainer name="content">
    <block class="Magento\Backend\Block\Dashboard" name="dashboard"/>
</referenceContainer>

view/adminhtml/layout/adminhtml_dashboard_index.xmlモジュールでファイルを作成する必要があると思いますが、何を入れる必要がありますか?

回答:


70

Magento2の最近のバージョンでは、removeメソッドは次のとおりです。

<referenceBlock name="block_name" remove="true"/>

例:

<?xml version="1.0"?>
<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="block_name" remove="true"/>
    </body>
</page>

これは、単に要素を削除する以上のことをしようとしている場合に知っておくことが重要です。名前空間を代わりにレイアウトに変更すると、page_configuration必要なすべてのことを実行できない場合があります。


これは私のために働いた。奇妙なことは、devdocs.magento.com / guides / v2.0 / frontend-dev-guide / themes / ...に記載されている例では、実際に-tagが使用されていること<remove />です。ドキュメントに誤りがありますか?
ゲルバーカーズ

彼らが知っているようにしてください-非常に可能性の高いドキュメントのエラー@GielBerkers github.com/magento/devdocsを
アランストーム

私はこのにPHTMLファイルはどのように行うことができます
ワカー・アリ

8

magento 2の最新のdevブランチで、view / adminhtml / layout / adminhtml_dashboard_index.xmlを作成してみてください。

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-dashboard" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
<body>
    <referenceBlock name="dashboard" remove="true"/>

ソースhttps://github.com/magento/magento2/search?l=xml&q=remove&utf8=%E2%9C%93


0

成功ページからタイトルブロックを削除するとします。最初に、特定のページを担当するxmlを見つける必要があります。vendor/magento/module-checkout/view/frontend/layout/checkout_onepage_success.xml

このファイルには、次のコンテンツが含まれます。

<?xml version="1.0"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
        <title>Success Page</title>
    </head>
    <body>
        <referenceBlock name="page.main.title">
            <block class="Magento\Checkout\Block\Onepage\Success" name="checkout.success.print.button" template="Magento_Checkout::button.phtml"/>
            <action method="setPageTitle">
                <argument translate="true" name="title" xsi:type="string">Thank you for your purchase!</argument>
            </action>
        </referenceBlock>
        <referenceContainer name="content">
            <block class="Magento\Checkout\Block\Onepage\Success" name="checkout.success" template="Magento_Checkout::success.phtml" cacheable="false">
                <container name="order.success.additional.info" label="Order Success Additional Info"/>
            </block>
            <block class="Magento\Checkout\Block\Registration" name="checkout.registration" template="Magento_Checkout::registration.phtml" cacheable="false"/>
        </referenceContainer>
    </body>
</page>

テーマでこのxmlを拡張する必要があります。app/design/frontend/.../.../Magento_Checkout/layout/checkout_onepage_success.xml そして、その内部で次のように削除page.main.titleおよび追加する必要があるブロックを参照しますremove="true"

<?xml version="1.0"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
    </head>
    <body>
        <referenceBlock name="page.main.title" remove="true" />
    </body>
</page>

すべてのcmsページから特定のブロックを削除するvendor/magento/module-theme/view/frontend/layout/default.xml 場合、テーマフォルダーのデフォルトのxml を次のapp/design/frontend/.../.../Magento_Theme/layout/default.xmlように拡張することでこれを実現できます。

<?xml version="1.0"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="page.main.title" remove="true" />
    </body>
</page>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.