Magento 2'deki düzenden bloğu kaldır


35

Magento 1’de, bir yerleşim dosyası tarafından eklenen bir bloğu, bunu yerleşim bloğuma ekleyerek kaldırabilirim.

<remove ="block_id_here" />

Magento 2 için nasıl aynı şeyi yapabilirim?
Pratik bir alıştırma olarak, kontrol paneli bloğunu yönetici paneli sayfasından kaldırmak istediğim kendi modülüm olduğunu varsayalım.
Blok app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_index.xmlbunu kullanarak eklenir :

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

Dosyayı modülümde oluşturmam view/adminhtml/layout/adminhtml_dashboard_index.xmlgerektiğini düşünüyorum, ancak içine koymak için neye ihtiyacım var?

Yanıtlar:


70

Magento2'nin daha yeni sürümlerinde, remove yöntemi şudur:

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

Örnek:

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

Bir öğeyi kaldırmaktan daha fazlasını yapmayı denediğiniz takdirde bunu bilmek önemlidir. Ad alanını bunun yerine mizanpaja değiştirmek, page_configurationyapmanız gereken her şeyi yapmanıza izin vermeyebilir.


Bu benim için çalıştı. Ancak garip olan şey, devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/… de belirtilen örneğin gerçekten -tag'i kullanmasıdır <remove />. Belgelerde hata mı var?
Giel Berkers

@GielBerkers Dokümantasyonda büyük olasılıkla bir hata - github.com/magento/devdocs
Alan Storm

Bunu bir phtml dosyası nasıl yapabilirim
Waqar Ali

8

Magento 2'nin en yeni dev dalında view / adminhtml / layout / adminhtml_dashboard_index.xml oluşturmayı deneyin

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

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


0

Öyleyse, başlık sayfasını başarı sayfasından kaldırmak istediğinizi varsayalım. Öncelikle, söz konusu sayfadan sorumlu olan xml'yi bulmanız gerekecek.vendor/magento/module-checkout/view/frontend/layout/checkout_onepage_success.xml

Ve bu dosyada aşağıdaki içeriğe sahip olacaksınız:

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

Şimdi bu xml'yi temanızda genişletmeniz gerekecek app/design/frontend/.../.../Magento_Checkout/layout/checkout_onepage_success.xml Ve bunun içinde kaldırmanız page.main.titleve şöyle eklemeniz gereken bloğa başvuruyor 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>

Tüm cms sayfalarından belirli bloğu kaldırmak istiyorsanız varsayılan xml uzatarak bunu başarabilirsiniz vendor/magento/module-theme/view/frontend/layout/default.xml sende tema klasörü app/design/frontend/.../.../Magento_Theme/layout/default.xmlşöyle:

<?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>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.