Your IP : 127.0.0.1


Current Path : /home/dev2.destoffenstraat.com/app/code/Destoff/Custom/Rewrite/Product/
Upload File :
Current File : /home/dev2.destoffenstraat.com/app/code/Destoff/Custom/Rewrite/Product/Review.php

<?php

declare(strict_types=1);

namespace Destoff\Custom\Rewrite\Product;

use Magento\Review\Ui\DataProvider\Product\Form\Modifier\Review as CoreReview;
use Magento\Ui\Component\Form;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\Module\Manager as ModuleManager;

class Review extends CoreReview
{
    const GROUP_CONTENT = 'migration-meta-information';
    const SORT_ORDER = 20;

    /**
     * @var ModuleManager
     */
    private $moduleManager;

    public function modifyMeta(array $meta)
    {
        if (!$this->locator->getProduct()->getId() || !$this->getModuleManager()->isOutputEnabled('Magento_Review')) {
            return $meta;
        }

        $meta[static::GROUP_REVIEW] = [
            'children' => [
                'review_listing' => [
                    'arguments' => [
                        'data' => [
                            'config' => [
                                'autoRender' => true,
                                'componentType' => 'insertListing',
                                'dataScope' => 'review_listing',
                                'externalProvider' => 'review_listing.review_listing_data_source',
                                'selectionsProvider' => 'review_listing.review_listing.product_columns.ids',
                                'ns' => 'review_listing',
                                'render_url' => $this->urlBuilder->getUrl('mui/index/render'),
                                'realTimeLink' => false,
                                'behaviourType' => 'simple',
                                'externalFilterMode' => true,
                                'imports' => [
                                    'productId' => '${ $.provider }:data.product.current_product_id',
                                    '__disableTmpl' => ['productId' => false],
                                ],
                                'exports' => [
                                    'productId' => '${ $.externalProvider }:params.current_product_id',
                                    '__disableTmpl' => ['productId' => false],
                                ],
                            ],
                        ],
                    ],
                ],
            ],
            'arguments' => [
                'data' => [
                    'config' => [
                        'label' => __('Product Reviews'),
                        'collapsible' => true,
                        'opened' => false,
                        'componentType' => Form\Fieldset::NAME,
                        'sortOrder' =>
                            $this->getNextGroupSortOrder(
                                $meta,
                                static::GROUP_CONTENT,
                                static::SORT_ORDER
                            ),
                    ],
                ],
            ],
        ];

        return $meta;
    }

    private function getModuleManager()
    {
        if ($this->moduleManager === null) {
            $this->moduleManager = ObjectManager::getInstance()->get(ModuleManager::class);
        }
        return $this->moduleManager;
    }
}