Magento2 - отсутствует пользовательский блок adminhtml после обновления до версии 2.2


У нас был пользовательский блок, введенный в раздел adminhtml. Этот блок управляется в модуле (назовем его поставщиком/модулем), и он отлично работал в Magento 2.1.*, следуя этой методологии magento 2 - Как создать пользовательский блок "администратор" и отобразить его на существующей странице администратора?

После обновления до 2.2 блок исчез

Я проверил конкретную планировку (в нашем случае sales_order_view.xml) на наличие каких-либо структурных изменений в новая версия, но контейнеры и блоки выглядят так же, как и у нас в 2.1.*

Есть какие-нибудь идеи по этому поводу?

Это файл конкретного макета, который отлично работал в 2.1.*

App/code/Vendor/Module/view/adminhtml/layout/sales_order_view.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="order_info">
            <block class="Vendor\Module\Block\Adminhtml\Sales\Order\View\Form" name="our_unique_block_name" template="Vendor_Module::our_template.phtml"/>
        </referenceBlock>
    </body>
</page> 

ОБНОВЛЕНИЕ

Щедрость: предоставьте XML-код для вставки блока в макет sales_order_view adminhtml, объяснив, как разместить его в разных разделах страницы

Author: Andhi Irawan, 2018-03-08

3 answers

Неро Фанг ответ был хорошей попыткой и привел меня к реальной проблеме, ища все sales_order_view появления в папке поставщика

2.2 версия добавляет модуль Temando_shipping, который переопределяет sales_order_view макет

Vendor/temando/module-shipping-m2/view/adminhtml/layout/sales_order_view.xml

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="order_tab_info">
            <block class="Temando\Shipping\Block\Adminhtml\Sales\Order\View\Info" name="order_info" template="Temando_Shipping::sales/order/view/info.phtml">
                <container name="extra_customer_info"/>
            </block>
        </referenceContainer>
    </body>
</page>

Чтобы я мог восстановить наш пользовательский блок (используя тот же XML-макет, что и тот, который мы использовали в 2.1.*) просто путем добавления зависимости модуля

<module name="Vendor_Module">
    <sequence>
        <module name="Temando_Shipping"/>
    </sequence>
</module>
 3
Author: Raul Sanchez, 2019-04-25 12:51:21

Как я вижу. Magento добавил новый контейнер внутри блока с именем order_info:

<block class="Magento\Sales\Block\Adminhtml\Order\View\Info" name="order_info" template="Magento_Sales::order/view/info.phtml">
    <container name="extra_customer_info"/>
</block>

Таким образом, вы можете попробовать использовать этот код ниже:

<referenceContainer name="extra_customer_info">
     <block class="Vendor\Module\Block\Adminhtml\Sales\Order\View\Form" name="our_unique_block_name" template="Vendor_Module::our_template.phtml"/>
</referenceBlock>

Надеюсь, это поможет!

 2
Author: Nero Phung, 2018-03-12 02:36:22

Можете ли вы попробовать с помощью referencecontainer?

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="order_info">
            <block class="Vendor\Module\Block\Adminhtml\Sales\Order\View\Form" name="our_unique_block_name" template="Vendor_Module::our_template.phtml"/>
        </referenceBlock>
    </body>
</page> 
 0
Author: Aurélien, 2018-03-11 20:07:10