默认情况下如何关闭Magento2管理产品详细信息中的所有手风琴

时间:2017-01-30 23:50:56

标签: bundle admin accordion magento2

当我在Magento2中打开产品详细信息页面(例如捆绑产品)时,1手风琴始终打开,在这种情况下是其中一个捆绑项目。即使我关闭它并保存产品,它也会在重新加载后再次打开。由于我经常需要更改此手风琴下方的产品详细信息。默认情况下关闭它会很棒。到目前为止,我找不到在代码中覆盖此设置的正确位置。

非常感谢任何帮助。

由于 乔纳斯

1 个答案:

答案 0 :(得分:0)

您可以尝试覆盖(如下所述)该类 Magento \ Bundle \ Ui \ DataProvider \ Product \ Form \ Modifier \ BundlePane

我假设您将创建一个自定义模块名称“ Vendor_Module ”来执行此自定义任务

步骤1)

下创建 di.xml

/ app / code / Vendor / Module / etc / adminhtml /

文件: di.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Magento\Bundle\Ui\DataProvider\Product\Form\Modifier\BundlePanel" 
                type="Vendor\Module\Ui\DataProvider\Product\Form\Modifier\BundlePanel" />
</config>

步骤2:

下创建 BundlePanel.php

/ app / code / Vendor / Module / Ui / DataProvider / Product / Form / Modifier /

文件: BundlePanel.php

<?php

namespace Vendor\Module\Ui\DataProvider\Product\Form\Modifier;


class BundlePanel extends \Magento\Bundle\Ui\DataProvider\Product\Form\Modifier\BundlePanel
{


    /**
     * {@inheritdoc}
     * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
     */
    public function modifyMeta(array $meta)
    {
        $meta = parent::modifyMeta($meta);
        $path = $this->arrayManager->findPath(static::CODE_BUNDLE_DATA, $meta, null, 'children');
        $meta = $this->arrayManager->merge(
            $path,
            $meta,
            [
                'arguments' => [
                    'data' => [
                        'config' => [
                            'dataScope' => '',
                            'opened' => false,
                            'sortOrder' => $this->getNextGroupSortOrder(
                                $meta,
                                static::GROUP_CONTENT,
                                static::SORT_ORDER
                            )
                        ],
                    ],
                ],
            ]
           );
        return $meta;
    }


}

步骤3:运行di commnad

sudo php bin / magento设置:di:compile

步骤4:清理Magento缓存

================================================ =========

请注意:

显示/隐藏“捆绑商品”选项卡,请将 $ meta 阵列键“ 已打开”的值更改为 true / false 在覆盖类文件 Vendor \ Module \ Ui \ DataProvider \ Product \ Form \ Modifier \ BundlePanel.php 中,如下所示:

'已打开'=>

================================================ =========